Ich habe Schwierigkeiten beim Austausch von privaten Schlüsseln zwischen einem Client mit Java Bouncycastle und einem Schlüsselserver mit Python RSA-Bibliotheken. Das PEM-Format wird verwendet, um die Schlüssel über REST zu übertragen. Die Keyserver kann den Schlüssel (erforderlich, wenn die Verschlüsselung Kennwortänderungen) Ich bin Versorgung nicht entschlüsseln, eine PKCS # 1 oder PKCS # 8-Schlüssel mit einer PEM rechnet wie folgt:Bouncycastle verschlüsselten privaten Schlüssel PEM-Ausgabe: RSA PRIVATE KEY vs PRIVATE KEY
-----BEGIN PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,ACCB65DDEB20F5AB
EcU3fekuLeUc0viPJ20vAG+Jg1Igkvm+JTjnLmMBE6SwDS/hkf3KP0bFto7Pv6fJ
Aber bouncycastle der Ausgang hat JcePEMEncryptorBuilder und JcaMiscPEMGenerator mit verschiedenen leicht Zeichenfolge BEGIN:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,ACCB65DDEB20F5AB
EcU3fekuLeUc0viPJ20vAG+Jg1Igkvm+JTjnLmMBE6SwDS/hkf3KP0bFto7Pv6fJ
Als ich einige der Forschung getan hat, habe ich gelernt, dass eine PEM-RSA PRIVATE KEY BEGIN Start der Schlüssel anzeigt, codierte PKCS # 1 verwendet wird.
Wenn ich versuche, eine PKCS # 8 verschlüsselt Ausgabe zu erhalten mit JceOpenSSLPKCS8EncryptorBuilder und JcaPKCS8Generator erhalte ich eine PEM wie folgt:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICrjAoBgoqhkiG9w0BDAEDMBoEFP+MLFFaKGC6J/37jF7wRgL3coZdAgIIAASC
AoAdWVo4kAQ1S0stQZbzca7wL876nzlKfcOa4BKsCttPnFVPugJOvGDnATgUK5P/
Also meine Frage ist: Gibt es eine Möglichkeit bouncycastle zur Ausgabe eines PEM zu bekommen ein verschlüsselter privater Schlüssel in Form von BEGIN PRIVATE KEY oder erwartet die Python-Bibliothek das falsche Format?
Nebenbei kann ich nicht herausfinden, ob Bouncycletle PKCS # 1 oder PKCS # 8 im JcePEMEncryptorBuilder verwendet. Es verwendet PrivateKeyInfo # getEncoded, aber die Dokumentation ist nicht klar über das PKCS-Format.
BouncyCastle Version: bcpkix-jdk15on 1,52
Ich würde sagen, dass die Python-lib nicht den richtigen Header für einen PKCS # 1-Format RSA-Schlüssel erwartet. Wenn Sie den "RSA" aus dem BC entfernen, wird der Server dann akzeptieren? –
Ich habe das tatsächlich ohne Glück versucht;) –