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

 wuming66486 发布于 2022-11-01 23:51

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

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

    2022-11-02 23:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有