lpilp/phpsm2sm3sm4

sm2怎么取消asn1签名

Closed this issue · 4 comments

sm2怎么取消asn1签名

lpilp commented

不明白你什么意思, 标准签名asn1(r,s), 你是指,你指的取消是返回直接是r + s的字符串组合?
这个你可以修改sm2Singer类的返回值,或者把签名的asn1串解开,只有两个字符串的asn1直接用substr 截出r, s就行,

现在使用asn1(r,s)是142位的,想取消asn1;return new Signature( $r, $s );是在这里修改吗

lpilp commented

是的,但不建议用 r+s的形式,可以其他的组合形式,比如json串什么的, 这个r,s的大数运算后,结果上 result%n , 这时就可能算出来的大数就位数就不固定了,就是 r,s的位数有小概率不固定长度,,签名给别人的时候,就不知道如何拆开,所以还得加上补0操作,保证 r, s的位数固定,这种做法不太可取

明白了,非常感谢