PEM_read_bio_PrivateKey()仅在ECB模式下返回NULL

如果私钥在ECB模式下由DES EDEencryption,则PEM_read_bio_PrivateKey()返回NULL 。 问题发生在EVP_DecryptFinal_ex()

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

如果相同的私钥在CBC模式下由DES EDEencryption,则此function正常工作。

我查了一下,这个问题在openssl 0.9.8r / y版本(没有FIPS)上是可重现的。 如果使用FIPS构buildopenssl,则问题不会发生。

是什么导致了这种行为

谢谢!

查看OpenSSL源代码,只有在encryption数据填充无效的情况下才会发生这种情况。 这是否发生在不同的键上,你能提供一个样本吗? 而且,使用什么工具来生成这样的密钥(即相同的OpenSSL或不)? 可能,它省略填充/或写零填充,而不是正确的填充。