2016-09-28 31 views
3

私は、Java Bouncycastleを使用するクライアントとPython RSAライブラリを使用する鍵サーバーとの間で秘密鍵を交換するのが難しいです。 PEM形式は、REST経由でキーを転送するために使用されます。Bouncycastle暗号化された秘密鍵PEM出力:RSAプライベートキーとプライベートキー

-----BEGIN PRIVATE KEY----- 
Proc-Type: 4,ENCRYPTED 
DEK-Info: DES-EDE3-CBC,ACCB65DDEB20F5AB 

EcU3fekuLeUc0viPJ20vAG+Jg1Igkvm+JTjnLmMBE6SwDS/hkf3KP0bFto7Pv6fJ 

しかしはBouncyCastleの出力を: キーサーバーは、私が供給しています(暗号化パスワードの変更に必要な)キーを解読することはできません、次のように、それはPEMとPKCS#1またはPKCS#8鍵を期待しています私はいくつかの研究を行ったように

-----BEGIN RSA PRIVATE KEY----- 
Proc-Type: 4,ENCRYPTED 
DEK-Info: DES-EDE3-CBC,ACCB65DDEB20F5AB 

EcU3fekuLeUc0viPJ20vAG+Jg1Igkvm+JTjnLmMBE6SwDS/hkf3KP0bFto7Pv6fJ 

が、私はPEMはRSA PRIVATE KEYは、PKCS#1を使用してエンコードされたキーを示しBEGIN開始することを学んだ:、JcePEMEncryptorBuilderとJcaMiscPEMGeneratorを使用すると、わずかに異なるBEGIN文字列を持っています。

私はJceOpenSSLPKCS8EncryptorBuilderとJcaPKCS8Generatorを使用してPKCS#8暗号化された出力を取得しようとすると、次のように私はPEMを得る:

-----BEGIN ENCRYPTED PRIVATE KEY----- 
MIICrjAoBgoqhkiG9w0BDAEDMBoEFP+MLFFaKGC6J/37jF7wRgL3coZdAgIIAASC 
AoAdWVo4kAQ1S0stQZbzca7wL876nzlKfcOa4BKsCttPnFVPugJOvGDnATgUK5P/ 

をだから私の質問は次のとおりです。と出力にPEMをはBouncyCastleを取得する方法がありますBEGIN PRIVATE KEY形式の暗号化された秘密鍵、または間違った形式を予期しているPythonライブラリですか?

次に、BouncycastleがJcePEMEncryptorBuilderでPKCS#1またはPKCS#8を使用しているかどうかを把握することはできません。 PrivateKeyInfo#getEncodedを使用していますが、PKCS形式についてのドキュメントが明確ではありません。

はBouncyCastleバージョン:bcpkix-jdk15on 1.52

+0

私は、PythonのlibがPKCS#1形式のRSAキーの正しいヘッダーを期待していないと言います。 BCから「RSA」を取り除くと、サーバーはそれを受け入れますか? –

+0

私は実際に運がないとそれを試みた;) –

答えて

0

これは、Pythonのlibには正しく、すべての標準フォーマットを処理していなかったが判明したので、私たちははBouncyCastleを送信しているフォーマットをサポートする別のPythonのlibを使用して、それを修正しました。

関連する問題