按照官网上写的openssl/pem.h里面应该定义了
EVP_PKEY PEM_read_PrivateKey(FILE fp, EVP_PKEY *x,pem_password_cb cb, void *u);
这样一个函数,可以返回一个EVP_PKEY的结构体指针,但使用 openssl-1.0.2g.tar.gz版本在ubuntu 14.04编译之后发现pem.h里并没有这个声明,请问有其他方法读入私匙文件吗?或者哪里可以找到openssl的相关api函数说明?
找到解决方法了,从文件中读入私匙的方法:
RSA createRSAWithFilename (const char filename, int publicKey)
{
FILE * fp = fopen (filename, "rb");
if (fp == NULL)
{
printf ("Unable to open file %s \n", filename);
return NULL;
}
RSA *rsa = RSA_new ();
if (publicKey)
rsa = PEM_read_RSA_PUBKEY (fp, &rsa, NULL, NULL);
else
rsa = PEM_read_RSAPrivateKey (fp, &rsa, NULL, NULL);
return rsa;
}
参考这里
另外再一次对自己无语了,虽然在openssl/pem.h中没有找到PEM_read_PrivateKey这个函数的声明,但编译的时候其实没有报错(不知道这个函数声明在哪里),报错是我忘加-ldl选项了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。