开发者社区> 问答> 正文

openssl c函数库如何读入私匙文件?

按照官网上写的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...

展开
收起
a123456678 2016-06-27 14:56:42 2124 0
1 条回答
写回答
取消 提交回答
  • 找到解决方法了,从文件中读入私匙的方法:

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

    2019-07-17 19:47:39
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载