用PEM_read_bio_RSAPublicKey读取公钥失败

lfisher 2009-02-18 09:28:40
先用openssl genrsa -out rsakey0.pem 1024
生成了私钥文件,然后在用openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub.pem生成公钥文件

用VC开发加解密的程序:
私钥部分:
BIO *key=NULL;
RSA *r=NULL;
ERR_load_crypto_strings();
key=BIO_new(BIO_s_file());
BIO_read_filename(key,"rsakey0.pem");

r = PEM_read_bio_RSAPrivateKey(key,NULL,NULL,NULL);

正常!!

公钥部分:
BIO *key=NULL;
RSA *r=NULL;
ERR_load_crypto_strings();
key=BIO_new(BIO_s_file());
BIO_read_filename(key,"rsakey0-pub.pem");

r = PEM_read_bio_RSAPublicKey(key,NULL,NULL,NULL);

r返回为NULL.

百思不得其解,望高手指教!!!!!
...全文
6752 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
melochale 2012-09-27
  • 打赏
  • 举报
回复
对应的很工整是不是,你生成一个私钥,然后用它生成一个公钥。
openssl genrsa -out private.pem 1024
openssl rsa -in priv.pem -pubout -out public.pem
用任何一种方法打开私钥,读取私钥信息,得到RSA,查看RSA,ok,没有问题,一切都还看起来比较正常。
然后用任何一种方法打开公钥,读取公钥信息,问题出现了:RSA对象为空,你失败了。

通过openssl的手册和帮助,你会发现两个函数:
PEM_read_bio_RSA_PUBKEY()
PEM_read_RSA_PUBKEY()
他们才是你要找的对应的,而上面两个函数是从任何.h里面找不到的,但是他们的确是真实存在的符号连接,在对应的.o文件中用objdump可以查看到他们的符号,很诡异!
现象描述完了,还未探其究竟。
转自:http://blog.chinaunix.net/uid-233938-id-162630.html
bm425 2012-08-10
  • 打赏
  • 举报
回复
没看懂,还是没办法
nicky_yangke 2012-05-29
  • 打赏
  • 举报
回复
支付宝iOS版Demo的Bug
iOS版的Demo(2012年4月19日版)AlixPayDemo中RSADataSigner.m文件中Ln 62和Ln 79行中要加上RSA
原来:

[result appendString:@"-----BEGIN PRIVATE KEY-----\n"];



[result appendString:@"\n-----END PRIVATE KEY-----"];



应改为:
[result appendString:@"-----BEGIN RSA PRIVATE KEY-----\n"];


[result appendString:@"\n-----END RSA PRIVATE KEY-----"];




否则无法读取私钥,会报 Private Key Read error
nicky_yangke 2012-05-29
  • 打赏
  • 举报
回复
支付宝iOS版Demo的Bug
iOS版的Demo(2012年4月19日版)AlixPayDemo中RSADataSigner.m文件中Ln 62和Ln 79行中要加上RSA
原来:
复制代码
[result appendString:@"-----BEGIN PRIVATE KEY-----\n"];


复制代码
[result appendString:@"\n-----END PRIVATE KEY-----"];



应改为:
复制代码
[result appendString:@"-----BEGIN RSA PRIVATE KEY-----\n"];


复制代码
[result appendString:@"\n-----END RSA PRIVATE KEY-----"];




否则无法读取私钥,会报 Private Key Read error
Tom_殇子 2012-04-23
  • 打赏
  • 举报
回复
大哥!我遇到了类拟的问题!请问你这个问题怎么解决的?
youthboy 2012-04-15
  • 打赏
  • 举报
回复

0down voteaccepted
You might try PEM_read_RSA_PUBKEY() instead of PEM_read_RSAPublicKey().
This is all about formats.
The default public key file format generated by openssl is the PEM format.
PEM_read_RSA_PUBKEY() reads the PEM format. PEM_read_RSAPublicKey() reads the PKCS#1 format.
So if you want to stick to PEM_read_RSAPublicKey() you could generate the public key file using the PKCS#1 format by specifying the -outform DER option when generating the public key.


http://stackoverflow.com/questions/7818117/why-i-cant-read-openssl-generated-rsa-pub-key-with-pem-read-rsapublickey

找到相关提示,目前还在测试中,能读出r,但是i2d_RSAPublicKey 读出的publickey不正确。
ku281 2011-07-18
  • 打赏
  • 举报
回复
和你一样啊。两年了 也没有见人解决吗?
lfisher 2009-02-20
  • 打赏
  • 举报
回复
请高手指点!
lfisher 2009-02-19
  • 打赏
  • 举报
回复
没人懂么?
自己先顶一个!
内容概要:本文详细介绍了利用二维时域有限差分法(2D FDTD)对光子晶体90度弯曲波导进行数值仿真的Matlab代码实现。该仿真方法旨在精确分析光子晶体波导在弯曲结构下的光传输特性,揭示其导光机制与缺陷模式的调控原理。资源包含完整的Matlab程序代码,支持对空间网格划分、介电常数分布、边界条件(如PML吸收边界)及光源参数等关键仿真要素的灵活设置与优化,便于用户复现结果并开展深入研究。通过仿真可直观获得光场在波导中的传播动态、透射谱特性以及能量损耗情况,为高性能光子器件的设计与优化提供理论依据和技术支持。; 适合人群:具备电磁场理论、光学基础和Matlab编程能力,从事光子学、集成光学或纳米光子器件研究的研究生、科研人员及工程技术开发者。; 使用场景及目标:①学习和掌握FDTD方法在周期性介质(光子晶体)器件仿真中的具体应用流程;②研究90度弯波导的光传输性能,分析弯曲损耗来源并探索低损耗结构优化方案;③作为光子集成电路中关键无源器件的设计与教学参考案例,服务于学术研究与工程实践。; 阅读建议:建议结合光子晶体能带理论与FDTD算法基本原理进行系统学习,运行代码时应逐步调整结构参数与仿真设置,观察光场演化和输出结果的变化,以深化对物理现象的理解,并可在此基础上拓展至其他复杂光子结构(如分束器、谐振腔)的仿真分析。
内容概要:本文系统研究了基于共识的捆绑算法(Consensus-Based Bundle Algorithm, CBBA)在多智能体多任务分配中的应用,重点聚焦于远程太空船交会与维修任务中的相对运动规划(RPO)问题。通过构建多航天器协同任务场景,采用Matlab代码实现了CBBA算法的全过程仿真,展示了其在分布式决策框架下高效完成任务分配的能力。研究深入探讨了任务收益建模、路径规划约束、通信延迟与动态重规划等关键环节,验证了CBBA在确保任务分配一致性、避免资源冲突、适应动态环境变化以及优化整体任务效能方面的优越性能,为复杂空间任务中的自主协同提供了可靠的技术路径。; 适合人群:具备控制理论、航天动力学、分布式优化或多智能体系统等相关背景,从事航天任务规划、智能优化算法研究或相关工程实践的研究生、科研人员及航空航天领域工程师。; 使用场景及目标:①为多航天器在轨服务(如交会对接、空间维修)提供高效、鲁棒的分布式任务分配解决方案;②深入理解CBBA算法的核心机制及其在高动态、强约束空间任务中的适应性与优化潜力;③推动分布式人工智能算法在航天工程实际系统中的集成与应用验证。; 阅读建议:建议读者结合提供的Matlab代码,重点剖析任务建模逻辑、收益函数设计、共识迭代过程及收敛性分析模块,通过修改场景参数进行仿真实验,以深化对多智能体协同决策机制与算法性能边界条件的理解。

4,451

社区成员

发帖
与我相关
我的任务
社区描述
云计算 云安全相关讨论
社区管理员
  • 云安全社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧