2013-04-30 200 views
1

我创建mykey.pem使用命令无法读取的.pem文件私有密钥在C

"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函数?

或使用其他一些函数来检索私钥?

+0

http://stackoverflow.com/questions/13659613/reading-rsa-keys-from -pem-file-to-rsa-structure-in-c根据此线程,我不必将任何其他参数发送到PEM_read_RSAPrivateKey() – Andrew 2013-04-30 23:17:19

回答

0

您不需要摆脱文件中的标题。但是,如果文件受密码保护,则需要将密码传递到函数PEM_read_RSAPrivateKey。

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

如果fp指向一个带有PEM形式的RSA私钥并且没有任何密码的文件,则它应该成功。

2

如果你仍然无法检索使用私钥

PEM_read_RSAPrivateKey() 

甚至提供了密码后,一个原因可能是你没有初始化OpenSSL库正常,尝试添加

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

打电话之前

PEM_read_RSAPrivateKey() 
相关问题