linux - openssl c函数库如何读入私匙文件?
高洛峰
高洛峰 2017-04-17 14:42:34
[Linux讨论组]

按照官网上写的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函数说明?

https://www.openssl.org/docs/man1.0.2/cr...

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHP中文网

找到解决方法了,从文件中读入私匙的方法:

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选项了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号