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

Encryption PEM_read_bio_PrivateKey()仅在ECB模式下返回NULL,encryption,openssl,private-key,pem,Encryption,Openssl,Private Key,Pem,PEM_read_bio_PrivateKey()如果DES EDE在ECB模式下加密私钥,则返回NULL。问题发生在EVP\u DecryptFinal\u ex(): 4128:错误:06065064:数字信封例程:EVP\u DecryptFinal\u ex:错误解密:EVP\u enc.c:330: 如果相同的私钥在CBC模式下由DES EDE加密,则此功能正常工作 我检查过了,这个问题在openssl 0.9.8r/y版本(没有FIP)上是可以重现的。如果openssl是用FIPS构

PEM_read_bio_PrivateKey()
如果DES EDE在ECB模式下加密私钥,则返回
NULL
。问题发生在
EVP\u DecryptFinal\u ex()

4128:错误:06065064:数字信封例程:EVP\u DecryptFinal\u ex:错误解密:EVP\u enc.c:330:

如果相同的私钥在CBC模式下由DES EDE加密,则此功能正常工作

我检查过了,这个问题在openssl 0.9.8r/y版本(没有FIP)上是可以重现的。如果openssl是用FIPS构建的,那么问题就不会发生

是什么导致了这种行为


谢谢

查看OpenSSL源代码,只有当加密数据中的填充无效时,才会发生这种情况。不同的钥匙是否会出现这种情况,您能否提供一个示例?以及,使用什么工具生成此类密钥(即是否使用相同的OpenSSL)?它可能会忽略填充或写入零填充而不是正确的填充。

欢迎使用crypto.SE。你的问题可能更适合在邮件列表中提问。你确定了吗?是的,我称之为OpenSSL_add_all_algorithms()。我还检查了是否为读取私钥选择了正确的密码。看起来很奇怪,它只适用于FIPS。为了更快地获得更好的帮助,请将您的代码发布为演示您的问题的。这允许用户复制/粘贴和复制您的问题。为什么使用ECB模式?也许它返回空值是因为欧洲央行不安全。