2013-07-03 13 views
58

PEM_read_bio_PrivateKey()は、秘密鍵がDES EDEによってECBモードで暗号化されている場合はNULLを返します。問題はEVP_DecryptFinal_ex()で起こる:ECBモードでPEM_read_bio_PrivateKey()がNULLを返します。

4128:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:330:

同じ秘密鍵は、この関数はOK働き、CBCモードのDES EDEによって暗号化されている場合。

この問題は、openssl 0.9.8r/yバージョン(FIPSなし)で再現可能です。 opensslがFIPSで構築されている場合、問題は発生しません。

この現象は何の原因ですか?

ありがとうございます!

+1

crypto.SEへようこそ。あなたの質問はおそらく、[openssl-users](http://www.openssl.org/support/community.html)メーリングリストで質問するのに適しています。 – archie

+2

あなたは[適切なアルゴリズムをロードする]を確認しましたか?(http://www.openssl.org/docs/crypto/OpenSSL_add_all_algorithms.html) – javex

+0

はい、私はOpenSSL_add_all_algorithms()を呼び出します。また、秘密鍵の読み取りに正しい暗号が選択されていることを確認しました。 FIPSのみで動作することが奇妙に見えます。 – Alex

答えて

1

OpenSSLソースを見ると、暗号化されたデータの埋め込みが無効な場合にのみ発生します。これは別のキーでも起こりますか、サンプルを提供できますか?そして、そのような鍵(すなわち、同じOpenSSLかどうか)を生成するためにどのようなツールが使われますか?おそらく、パディングを省略したり、正しいパディングの代わりにゼロパディングを書き込んだりします。

関連する問題