如果私钥在ECB模式下由DES EDE加密,则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 EDE加密了相同的私钥,则此功能正常。
我检查了一下,在openssl 0.9.8r / y版本(没有FIPS)上可以重现此问题。如果openssl是使用FIPS构建的,则不会发生此问题。
是什么导致这种行为?
谢谢!
最佳答案
查看OpenSSL源,只有在加密数据中的填充无效时才可能发生。使用不同的键会发生这种情况吗?您能提供一个示例吗?而且,使用什么工具来生成此类密钥(即是否使用相同的OpenSSL)?可能会省略填充或写零填充而不是正确的填充。
关于encryption - PEM_read_bio_PrivateKey()仅在ECB模式下返回NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17463166/