基于SM2算法的证书签名问题

miner_realm 2015-04-27 09:05:01
本人菜鸟,最近用C语言自己编写一个基于SM2 的数字证书。
证书完成后,使用电脑的密钥外壳扩展打开时无法识别为证书,报错信息为:无效的公钥安全对象文件,此文件作为下列运行是无效的:安全证书。(目前猜测是不能识别为证书)。

证书的基本域是按照GM/T 0015----2012中的示例标准用ASN.1 DER编码。然后有证书基本域+签名算法+签名结果=证书。得到的结果是一个*.cer文件,运行报错如上。

和其他证书比较后发现证书的签名结果过并不是直接等于SM2签名算法的签名结果。SM2签名结果还要结果其他的处理才行。

请问sm2签名的结果还要经过什么处理才能是证书的签名结果?


图中01b0到01f9是证书的签名结果,其中01ba到01f9是sm2签名算法的签名结果。对于01b3到01b9的字段是什么意思不知道,并且该字段是从另外的证书中抄过来的
...全文
974 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
百里灬登风 2016-07-14
  • 打赏
  • 举报
回复
将待签名数据用SM2签名后,将得到的数据只要按证书结构加到最后面的“签名数据”处组成新的一组数据,就是证书了,证书是不能用了签名的。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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