数字证书
一、基本证书域
版本号、序列号、签名算法、颁发者、有效日期、主题、主题公钥信息、颁发者唯一标识符、主体唯一标识符、扩展项
二、签名算法域
三、签名值域
公钥信息获取
这里的公钥信息是要获取颁发者的公钥信息,可以直接从windows自带的.cer文件中详细信息中公钥粘贴获取。
注意:粘贴时前面的04需要删除,这里的04表示非压缩格式。
02、03表示压缩格式。
待签名数据
一、这里的数据是指使用者证书的数据。这里用到工具asn1view这个工具。
二、打开后显示的SEQUENCE,展开后分别代表着基本证书域、签名算法域、签名值域。
三、这里的待签名数据,从基本证书域中获得绿色底色一直复制到黄色底色结束,创建一个文本文件,命名为“待签名数据”并将数据粘贴进去。
四、打开待签名数据,使用查找和替换这里我使用的文本文件是sublime text,使用ctrl+H打开查找和替换,将换行符和空格给替换掉。这里换行符直接用ctrl+enter来代替。
五、将信息粘贴至离线验签工具中的消息栏
注:这里使用的都是十六进制,勾选十六进制。
签名值
一、同样是在asn1view这个工具中,点击签名值域,从绿色底色复制至黄色底色尾端。
二、建立一个签名值的文本文件,SM2的签名值一共有64个字节,由两个32字节的R和S组成的。
三、这里一样的先将换行和空格给替换掉。
四、删除一些多余的字节如类型、长度、填充00、类型(序列)、长度、类型(整数)、长度、填充00
五、上面删除的是R的字节和类型,然后直接往后找看到如四中一样的值类型删除,后面的就是S的值。如果不分R和S 的值将类型删除后直接复制粘贴即可。
结果输出
这里的没有签名值R和S 所以直接放在一起输入就好了!