测试程序中的,先调用公钥加密,然后调用私钥解密。公钥加密publi是1,私钥解密publi 是0.
RSA* createRSA(unsigned char*key,int publi)
{
RSA *rsa= NULL;
BIO*keybio;
keybio= BIO_new_mem_buf(key, -1);
if(keybio==NULL)
{
printf("Failed to create key BIO\n");
return 0;
}
size_t nSize = BIO_ctrl_pending(keybio);
if(publi)
{
rsa = PEM_read_bio_RSA_PUBKEY(keybio, &rsa,NULL, NULL);
}
else
{
rsa= PEM_read_bio_RSAPrivateKey(keybio, &rsa,NULL, NULL);
}
if(rsa== NULL)
{
printf("Failed to create RSA\n");
}
return rsa;
}
PEM_read_bio_RSA_PUBKEY 返回值正常
PEM_read_bio_RSAPrivateKey 返回值是NULL
第一次接触,在网上找了很多都没得结果.
C++ OPENSSL 中PEM_read_bio_RSAPrivateKey 返回NULL 求教呀
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 一米阳光620 2020-05-20 16:46关注
rsa加密的public key格式有多种,常见的有两种,一种密钥头为‘-----BEGIN RSA PUBLIC KEY-----’,一种开头为‘-----BEGIN PUBLIC KEY-----’,二者分别对应rsa的PKCS#1和PKCS#8格式。
使用openssl库加载rsa的公钥时,使用的函数也不同。以字符串公钥为例,对PKCS#1格式的密钥加载使用PEM_read_bio_RSAPublicKey()函数,对PKCS#8格式公钥的加载使用PEM_read_bio_RSA_PUBKEY()函数。也是看其他人碰到的问题。
解决 无用评论 打赏 举报
悬赏问题
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型
- ¥15 求学软件的前人们指明方向🥺
- ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
- ¥20 双层网络上信息-疾病传播
- ¥50 paddlepaddle pinn
- ¥20 idea运行测试代码报错问题