我需要创建一个包含私钥的EVP_PKEY密钥。 最初,PEM格式的私钥存储在变量pKey中。
现在我正在尝试使用BIO mem创建EVP_PKEY密钥。
EVP_PKEY *privkey;
BIO *mem;
mem = BIO_new_mem_buf(pKey, -1);
privkey = PEM_read_bio_PrivateKey(mem, NULL, NULL, 0);
为什么PEM_read_bio_PrivateKey返回NULL?
pKey contains valid Key bytes in PEM format.
PEM_read_bio_PrivateKey()失败的原因可能是什么?
答案 0 :(得分:0)
这是因为BIO的内容已经结束,需要重绕 - 请参阅https://www.openssl.org/docs/manmaster/crypto/BIO_s_mem.html(在错误下)
答案 1 :(得分:0)
您可能有加密的pKey且密码短缺,并且/或者您没有调用OpenSSL_add_all_algorithms();
来初始化EVP密码以解密封装的密钥。