Closed Holy-Shine closed 11 months ago
作者好, 使用库来做签名的时候,拿到的签名长度从70-72变化 用的密钥是32字节的,理论上使用sm2signwithsm3得到的是固定64位长度的签名才对。 下面是代码:
local sm2, err = require("resty.sm2").new({ private_key=pri_key, publick_key=pub_key, algorithm="sm3" }) ngx.say(tostring(#sm2:sign("ABC"))) -- 输出70
原因找到了,openssl的sm2签名会对r,s做asn1编码,所以字节会多几个
自己手动做了asn1解码后用java验签还是失败,是openssl做了额外的处理吗
作者好, 使用库来做签名的时候,拿到的签名长度从70-72变化 用的密钥是32字节的,理论上使用sm2signwithsm3得到的是固定64位长度的签名才对。 下面是代码: