Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问SM2 有不输入Userid的验签吗 #1785

Open
hkj8 opened this issue Jan 17, 2025 · 5 comments
Open

请问SM2 有不输入Userid的验签吗 #1785

hkj8 opened this issue Jan 17, 2025 · 5 comments

Comments

@hkj8
Copy link

hkj8 commented Jan 17, 2025

最近一个客户描述,他们使用的sm2 不带userid,使用的应该也不是默认的1234567812345678,通过gmssl验签不成功。gmssl 不输入userid 就是使用的默认的1234567812345678,想问一下有不带userid的这种操作吗

@emmansun
Copy link

sm2_verify,传入自己计算好的杂凑值,确保杂凑算法和签名的杂凑算法一样。

@lpilp
Copy link

lpilp commented Jan 17, 2025

签名预处理计算 ZA时要用到向量 userId, 但实际计算中,这个userId 等于空字符串也不是不可以,只要签名验签双方用一样的就行,或者他们就把这个usrId写死了,封装的类中就没有这个参数了,对于使用的人来说无感,但底层计算中是一定要有这个参数的

@hkj8
Copy link
Author

hkj8 commented Jan 20, 2025

sm2_verify,传入自己计算好的杂凑值,确保杂凑算法和签名的杂凑算法一样。

感谢,现在遇到一个问题点是,我只有提供的公钥 十六进制,和签名值,杂凑数也是十六进制,但sm2_do_verify 函数输入的都是SM2_KEY 这个结构体,而我只有公钥的64个字节,有方法转换为SM2_KEY 结构体吗

@emmansun
Copy link

sm2_verify,传入自己计算好的杂凑值,确保杂凑算法和签名的杂凑算法一样。

感谢,现在遇到一个问题点是,我只有提供的公钥 十六进制,和签名值,杂凑数也是十六进制,但sm2_do_verify 函数输入的都是SM2_KEY 这个结构体,而我只有公钥的64个字节,有方法转换为SM2_KEY 结构体吗

  1. 先把公钥点unmarshal:sm2_z256_point_from_bytes,这个是固定64字节公钥X||Y;其它如sm2_z256_point_from_octets,具体可以自己检索;
  2. 对SM2_KEY赋值:sm2_key_set_public_key

@hkj8
Copy link
Author

hkj8 commented Jan 20, 2025

sm2_verify,传入自己计算好的杂凑值,确保杂凑算法和签名的杂凑算法一样。

感谢,现在遇到一个问题点是,我只有提供的公钥 十六进制,和签名值,杂凑数也是十六进制,但sm2_do_verify 函数输入的都是SM2_KEY 这个结构体,而我只有公钥的64个字节,有方法转换为SM2_KEY 结构体吗

  1. 先把公钥点unmarshal:sm2_z256_point_from_bytes,这个是固定64字节公钥X||Y;其它如sm2_z256_point_from_octets,具体可以自己检索;
  2. 对SM2_KEY赋值:sm2_key_set_public_key

太感谢了,方法好用有效。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants