2017-10-25 4 views
1

Ich begann mit der Entwicklung einer App in node.js für die deutsche Sparkasse (Bankanbieter). Sie bieten eine API zu ihrem Dienst. German Link to their APIOpenSSL Node.js Fehler Keine Startlinie

im Sekundenschritt bekomme ich einen RSA-2048-SHA1 Publickey von ihrem Server. im vierten Schritt, soll ich diesen öffentlichen Schlüssel verwenden, um einen Sitzungsschlüssel in Schritt erstellt zu verschlüsseln 3. aber wenn sie mit Verschlüsselung:

var key = 'password'; 
var sha256 = crypto.createHash('sha256'); 
sha256.update(key); 
var iv = new Buffer([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]); 
var cipher = crypto.createCipheriv('aes-256-cbc', sha256.digest(), iv);   
let sessionKey = cipher.final('base64') 
let publicKey = response.publicKey.value 
crypto.publicEncrypt(publicKey,new Buffer(sessionKey)) 

ich die folgenden Fehlermeldung erhalten, dass ich glaube, von OpenSSL ist. Ich weiß nicht wirklich, wie ich dieses Problem beheben kann, da ich nicht beurteilen kann, ob der publicKey, den ich von der API bekomme, gültig ist.

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line

Antwort

1

Der öffentliche Schlüssel, den Sie erhalten haben, ist im falschen Format. Es muss ein "PEM" formatierter Schlüssel sein. Sie müssen es umwandeln, indem Sie es in die Zeilen "BEGIN ..." und "END ..." einfügen und es möglicherweise in 64 Zeichenzeilen aufteilen. Hier

ist ein Beispiel für eine korrekt formatierte öffentlichen Schlüssel:

-----BEGIN PUBLIC KEY----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAytBCDJR5/6JAlB7ErBge 
22YwN/u0K63wrnCMLde+hQQCYs7pBuYtbyxXF2PBFuHS+ytD9PSpY9t3NiGbk/9U 
s9GYCnqaK+vg2hz+T86LjJVkTJe0HWuE6g+HQ9GjyDGiO7ZBQw31HKxHYA2cMMVj 
tiO97VKLR9Fp6c6X33uNtdAaUZg57PjyNl6TjPwc52tJz8H5g0aV4tYelsTMaSSE 
4nVwPLBoDzZaT84ktW1RuGToC4gEB/bctFrRBVaxp/KSebpds9P2xGMVweWgrvml 
cLnHGLKBxcCxh9kbgHS/nrgYXPjj92hxk2se/C7QmYeRSUs4ikEWO06NJ7Cgk+bQ 
8wIDAQAB 
-----END PUBLIC KEY----- 
Verwandte Themen