openssl pem文件的读取


准备工作

生成私钥文件(里面已包含公钥)

openssl genrsa -out private.pem 1024

从私钥文件中提取公钥
openssl rsa -in private.pem -pubout -out public.pem

如果用
openssl rsa -in private.pem -RSAPublicKey_out -out public.pem
报错 unknown option -RSAPublicKey_out
openssl 是0.9.8e版本的,不知道为啥没这个参数
没了这个参数,读取公钥的时候只能用 PEM_read_RSA_PUBKEY
而不能用PEM_read_RSAPublicKey,因为带-RSAPublicKey_out参数生成的pem文件不一样(不仅仅是头尾)

网上抄来的
函数PEM_read_RSA_PUBKEY读取的是
-----BEGIN PUBLIC KEY-----
函数PEM_read_RSAPublicKey读取的是
-----BEGIN RSA PUBLIC KEY-----

但是!!!,为毛private.pem里面是
-----BEGIN RSA PRIVATE KEY-----
这样的,

而生成的public.pem竟然是
-----BEGIN PUBLIC KEY-----
的?


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <openssl/bn.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>

int main()
{
	RSA *rsa;
	
	
	FILE *fp;
	if ((fp = fopen("C:\\openssl_test\\public.pem", "r")) == NULL) {
        return -1;
    }
	
    rsa = PEM_read_RSA_PUBKEY(fp, NULL, NULL, NULL);
	RSA_free(rsa);
	fclose(fp);

	if ((fp = fopen("C:\\openssl_test\\private.pem", "r")) == NULL) {
        return -1;
    }
    rsa = PEM_read_RSAPrivateKey(fp,NULL,NULL,NULL);

	RSA_free(rsa);
	return 0;   
}





转载于:https://www.cnblogs.com/ruanjianxian/p/6126842.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值