无法从c中的.pem文件中读取私钥

时间:2013-04-30 23:16:24

标签: security openssl rsa

我使用命令

创建了mykey.pem

"openssl genrsa -out mykey.pem 1024"

然后我使用命令

分隔公钥

'openssl rsa -in key.pem -pubout -out pubkey.pem'

我正在使用函数

读取私钥
PEM_read_RSAPrivateKey(fp,NULL,NULL,NULL)

但我无法检索私钥。

我是否必须摆脱诸如“开始RSA私钥”和“结束RSA私钥”之类的标题? //我尝试但没有工作

我是否必须向PEM_read_RSAPrivateKey函数发送任何其他值?

或使用其他功能来检索私钥?

2 个答案:

答案 0 :(得分:2)

如果您仍然无法使用

检索私钥
PEM_read_RSAPrivateKey()

即使提供了密码短语,原因可能是您没有正确初始化OpenSSL库,请尝试添加

OpenSSL_add_all_algorithms();
OpenSSL_add_all_ciphers();
OpenSSL_add_all_digests();

之前打电话

PEM_read_RSAPrivateKey()

答案 1 :(得分:0)

您无需从文件中删除标头。但是,如果文件受密码保护,则需要将密码传递给函数PEM_read_RSAPrivateKey。

您还可以看到PEM_read_PrivateKey。其他功能列于here

如果fp指向具有PEM格式的RSA私钥且没有任何密码的文件,那么它应该会成功。