W3CHINA Blog首页    管理页面    写新日志    退出

Blue blue sky

用CryptoAPI从证书中提取公钥的方法
小工头 发表于 2007/4/12 21:58:11

 这段时间一直在和CryptoAPI做斗争。被上面的这道题憋了很久,在网上没有查到直接的解决办法,后来瞎试八试的不小心给试出来了。郁闷的是,相关的代码没维护好,一不留神给删掉了,害得俺今天又被憋了一下午,好不容易才回想起来,赶快记录一下首先,读入一个CER文件,用CertCreateCertificate生成CERT_CONTEXT。CERT_CONTEXT这个数据结构中有一项CERT_INFO,CERT_INFO里面有一项SubjectPublicKeyInfo(从前有座山,山上有个庙,庙里有个老和尚,还有一个小和尚……)。SubjectPublicKeyInfo是一段PUBLICKEY_INFO类型的数据段,里面保存的是算法的ID和DER编码的公钥。有了这段DER编码,我们就可以用其他工具(比如openssl)来解析公钥的各项参数。遗憾的是,CryptoAPI定义的接口却不能直接处理DER编码,必须把它们再包装成CryptoAPI自己定义的PUBLICKEYBLOB。该怎么做呢?先用CryptAcqiureContext(...NEWKEYSET)来新建一个容器,容器名称可以自己起。然后,用CryptImportPublicKeyInfo()把刚才得到的SubjectPublicKeyInfo导进建好的容器中,再用CryptExportKey(...PUBLICKEYBLOB)导出公钥,就得到了CryptAPI接口普遍支持的PUBLICKEYBLOB。说穿了其实很简单,呵呵。

阅读全文(11736) | 回复(7) | 编辑 | 精华

 


回复:用CryptoAPI从证书中提取公钥的方法
喜鹊174(游客)发表评论于2007/4/17 10:59:51

呵呵~听工头一席话,胜读两天半书~~

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

 


回复:用CryptoAPI从证书中提取公钥的方法
ahava99(游客)发表评论于2007/4/15 17:35:50

天书啊~~~ 雁过留名~~~~

 


回复:用CryptoAPI从证书中提取公钥的方法
小工头发表评论于2007/4/15 13:44:49

CERT_PUBLIC_KEY_INFO保存的公钥的确是BLOB类型,但那是BITEBLOB,说穿了就是一段原始的二进制串。真正的PUBLICKEYBLOB里面有BLOBHEADER,有RSAPUBKEY,还有modulus,这些都是转换后才能得到的结果。那一段BITEBLOB的价值在于使得CryptoAPI能够与其他基于DER编码的程序交互使用。事实上,DER以及X.509等等才是真正的国际标准,与操作系统无关,而CryptoAPI只适用于Windows,是一套非标准的接口。只是M$势力太大,所以……

 


回复:用CryptoAPI从证书中提取公钥的方法
喜鹊174(游客)发表评论于2007/4/13 22:55:17

CERT_PUBLIC_KEY_INFO保存的公钥不是BLOB类型么,为什么不能直接使用?如果是编码不同的原因话,这个接口也太~~ 向工头请教

 


回复:用CryptoAPI从证书中提取公钥的方法
小工头发表评论于2007/4/12 23:32:56

偶尔SHOW一下专业嘛

 


回复:用CryptoAPI从证书中提取公钥的方法
鑫粉MM(游客)发表评论于2007/4/12 22:55:09

ME TOO

 


回复:用CryptoAPI从证书中提取公钥的方法
fish(游客)发表评论于2007/4/12 22:46:41

貌似看不懂呐

 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



This is home

.: 公告

有人的地方就有恩怨

有恩怨的地方就是江湖

人在江湖漂,谁能不挨刀


Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(629)
杂项(69)
我喜欢过的声音(35)
耳机评测(18)
七天乐(127)
工作八卦(174)


In the Bowl

.: 最新日志

变化:俺的2012
迟来的总结,俺的2011
暂停更新:娶了媳妇不上网
一次坦诚的大会
妹子,妹子!
领导满月
当了领导能怎样
俺的播放列表
俺的重构总结
开会的故事

.: 最新回复

回复:迟来的总结,俺的2011
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:小学生作文之记一次拔河比赛
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:一次坦诚的大会
回复:一次坦诚的大会
回复:一次坦诚的大会


The Fishkeeper
blog名称:少年包工头的工作日记
日志总数:629
评论数量:1458
留言数量:56
访问次数:8978002
建立时间:2004年12月8日



Text Me

.: 留言板

签写新留言

你太客气了
工作是为了更好的生活。。。
飘过!
初烧耳机
路过留声
自动浇花
节日快乐
向您请教
HAHA
咨询下呵呵


Other Fish in the Sea

.: 链接



Lake JJ

真!鱼家MM

传说中的99

王小四的自留地

挣扎中的职场新人tintin同学




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.363 second(s), page refreshed 144760254 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号