本人菜鸟,最近用C语言自己编写一个基于SM2 的数字证书。
证书完成后,使用电脑的密钥外壳扩展打开时无法识别为证书,报错信息为:无效的公钥安全对象文件,此文件作为下列运行是无效的:安全证书。(目前猜测是不能识别为证书)。
证书的基本域是按照GM/T 0015----2012中的示例标准用ASN.1 DER编码。然后有证书基本域+签名算法+签名结果=证书。得到的结果是一个*.cer文件,运行报错如上。
和其他证书比较后发现证书的签名结果过并不是直接等于SM2签名算法的签名结果。SM2签名结果还要结果其他的处理才行。
请问sm2签名的结果还要经过什么处理才能是证书的签名结果?
图中01b0到01f9是证书的签名结果,其中01ba到01f9是sm2签名算法的签名结果。对于01b3到01b9的字段是什么意思不知道,并且该字段是从另外的证书中抄过来的