2015-12-21 96 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密碼以解密封裝的密鑰。