c - BIO_new_mem_buf 未能创建 EVP_PKEY key ``

标签 c openssl private-key

我需要创建一个包含私钥的 EVP_PKEY key 。 最初 PEM 格式的私钥存储在变量 pKey 中。

现在我正在尝试使用 BIO 内存创建一个 EVP_PKEY key 。

 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() 失败的可能原因是什么?

最佳答案

您可能有一个加密的 pKey 并且缺少密码和/或您没有调用 OpenSSL_add_all_algorithms(); 来初始化 EVP 密码以解密封装的 key 。

关于c - BIO_new_mem_buf 未能创建 EVP_PKEY key ``,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34400522/

相关文章:

C:如何在不使用标准 I/O 库的情况下将数据附加到文件

c - 如何在c中扫描行,每行不同?

c - Base64 解码不工作

c - 为什么我在二维数组中得到相同的地址?

C系统无法运行hello world

c openssl 错误

c++ - 将 OpenSSL 静态库添加到 vc++ 项目

c# - 在 .NET Core 中从 PEM 文件创建 X509Certificate2

macos - 以编程方式从钥匙串(keychain)中删除私钥(与证书匹配)