Ich verwende das Modul pkcs11js, um RSA-Schlüssel mit einer Smart Card HSM wie here in the Example #3 gezeigt zu generieren.Knoten js - Verwenden Sie Schlüssel generiert von einer SmartCard HSM mit NodeRSA-Modul
var publicKeyTemplate = [
{ type: pkcs11js.CKA_CLASS, value: pkcs11js.CKO_PUBLIC_KEY },
{ type: pkcs11js.CKA_TOKEN, value: false },
{ type: pkcs11js.CKA_LABEL, value: "My RSA Public Key" },
{ type: pkcs11js.CKA_PUBLIC_EXPONENT, value: new Buffer([1, 0, 1]) },
{ type: pkcs11js.CKA_MODULUS_BITS, value: 2048 },
{ type: pkcs11js.CKA_VERIFY, value: true }
];
var privateKeyTemplate = [
{ type: pkcs11js.CKA_CLASS, value: pkcs11js.CKO_PRIVATE_KEY },
{ type: pkcs11js.CKA_TOKEN, value: false },
{ type: pkcs11js.CKA_LABEL, value: "My RSA Private Key" },
{ type: pkcs11js.CKA_SIGN, value: true },
];
var keys = pkcs11.C_GenerateKeyPair(session, { mechanism: pkcs11js.CKM_RSA_PKCS_KEY_PAIR_GEN }, publicKeyTemplate, privateKeyTemplate);
Wenn ich keys
drucken, erhalte ich so etwas wie:
{ privateKey: <Buffer 70 97 f7 03 00 00 00 00>,
publicKey: <Buffer b0 ea f2 03 00 00 00 00> }
Jetzt möchte ich zum Verschlüsseln/Entschlüsseln mit NodeRSA module, aber nicht wissen, wie das Schlüsselobjekt erstellen (mit new NodeRSA(...)
), dass wird verwendet, um von diesem zuvor erzeugten Schlüsselpaar zu verschlüsseln/entschlüsseln.
Es ist nicht die Verwendung von NodeRSA erforderlich, ich brauche nur eine Möglichkeit zum Verschlüsseln/Entschlüsseln in Node JS mit einem Schlüsselpaar von der Smartcard, falls jemand ein Beispiel dafür hat, wie man das mit einer anderen Bibliothek macht. Vielen Dank!
Danke, ich finde den Modul und öffentlichen Exponenten mit 'C_GetAttributeValue' wie Sie vorgeschlagen haben, wissen Sie, wie man den öffentlichen Schlüssel erstellt oder wie man mit dem öffentlichen Schlüssel auf der Chipkarte mit dieser Bibliothek verschlüsselt? Beispiel 7 ist zum Signieren/Verifizieren, ich habe versucht [Beispiel 8] (https://www.npmjs.com/package/pkcs11js#example-8) - das zweite Argument zu ändern - aber ich bekomme: 'Fehler: CKR_FUNCTION_NOT_SUPPORTED', obwohl Ich weiß, dass die Chipkarte RSA Verschlüsselung/Beschreibung unterstützt, also mache ich etwas falsches ... – myrmix
@myrmix Die PKCS # 11 Bibliothek muss es auch unterstützen. Oftmals unterstützen Smartcards nur die * Entschlüsselung * mit dem privaten Schlüssel (für die Verschlüsselung mit dem öffentlichen Schlüssel auf der Karte ist wenig zu gebrauchen). Wie beim Erstellen des öffentlichen Schlüssels zeigt eine Schnellsuche "http: // nullege.com/codes/search/M2Crypto.RSA.new_pub_key" von M2Crypto, wahrscheinlich gibt es andere. –