文章预览
SM2算法正常不进行编码的签名长度为64个字节,即为R+S,各32个字节;密钥管理服务(KMS)针对签名结果使用ASN.1进行编码。 根据SM2密码算法使用规范,SM2算法签名数据格式的ASN.1定义为: SM2Signature ::= SEQUENCE{ R INTEGER,-- 签名值的第一部分 S INTEGER -- 签名值的第二部分} 其中R和S的长度各为256位。但是在大数INTEGER做der编码时,如果首字节的第一个二进制位为1时,前面需要补00字节,所以导致der编码长度多一个字节,这种情况下SM2签名值的编码长度最大会有两个字节的差距。 其中R和S分别对应: 70个字节,R值,S值均不补00:3044+0220+32个字节R+0220+32个字节S 71个字节,(1)R值补00:3045+022100+32个字节R+0220+32个字节S (2)S值补00:3045+0220+32个字节R+022100+32个字节S 72个字节,R值,S值均补00:3046+022100 +32个字节R+022100+32个字节S 部分特殊场景会存在69字节。R或S的
………………………………