2015-12-21 67 views
1

我需要创建一个包含私钥的EVP_PKEY密钥。 初始PEM格式的私钥存储在变量pKey中。BIO_new_mem_buf未能创建EVP_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

你的pKey的每一行是用'\ r \ n'完成的吗?这对于PEM_read函数是必需的。 –

+0

[ERR_print_errors()](https://www.openssl.org/docs/manmaster/crypto/ERR_print_errors.html)可能会提供更多信息。 –

回答

0

你可能有一个加密PKEY和密码丢失和/或你没叫OpenSSL_add_all_algorithms();它初始化EVP密码以解密封装的密钥。