-
-
Notifications
You must be signed in to change notification settings - Fork 7.5k
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算法的优化以及新规定的迭代 #3630
Comments
@CherryRum 你要自己实现么,哈哈 |
看看有啥问题 哈哈,明确下文档 |
@cxhello 密钥格式的问题。 Hutool中使用密钥支持: 私钥:支持D值、PKCS#8、PKCS#1 密钥标识符使用的是: 见: |
@looly 您说的密钥格式的问题,是指的我使用openssl命令不对是吗? |
@cxhello 我意思是国密的Oid是固定的,只是密钥存储的格式不同。 如果在使用中有问题,可以附上测试的密钥,我这边回复。 |
证书解析网址:https://lapo.it/asn1js 压缩包里面有公私钥和证书,我使用证书解析网址解析出来看到OID使用的是 |
@cxhello Java生成的密钥确实不是Asni格式,是pkcs8和x509。 现在Hutool只能保证js生成的密钥可以用,但是Java生成的密钥没法在js中使用。 |
好的,我自己再研究下。 |
@cxhello 您的问题是一个历史遗留问题 建议您使用OpenSSL 3.x版本。OpenSSL 3.x版本中,SM2公钥密码算法已经使用了正确的OID 1.2.156.10197.1.301(参见《GB/T 33560-2017 信息安全技术 密码应用标识规范》附录A)。虽然这一更改可能导致一些后向兼容性问题,但这是为了遵循最新的国密标准,并解决之前版本存在的标准落后于实践的问题。
|
@CherryRum 其实我想表达的是 我使用的hutool-5.7.22版本,生成的公私钥OID也是:1.2.840.10045.2.1,是需要更新版本吗?😂 |
那我建议您先升级版本吧,这个虽然不错,但是不符合现有的文档定义的曲线,虽然说这俩oid的椭圆曲线是一样的(没记错的话) |
@CherryRum 我们需要给客户演示的时候在他们的环境使用openss命令生成,所以如果客户的环境上使用openssl 1.x 其实没什么问题。我刚刚测试了,可以正常加解密了。 感谢大佬说的这个历史遗留问题。还有个问题想问下,hutool升级到5.8.29 OID就是1.2.156.10197.1.301了吗? 我是在我电脑上使用openssl生成公私钥发现这个问题的,我电脑上openssl版本是3.2.0。所以前端在使用私钥解密的时候报错了,前端用的应该也恰好是以前的库。😂 |
确实没注意,我想新版本要做下更新了。 |
我公司 arm kylin v10 的服务器上 openssl 版本是 1.1.1f,生成的国密公私钥OID就是 |
这个算是个bug,升级到openssl最新版本就能解决。 |
也不算是bug吧,上面我引用了很多,其中就有这个,只是标准太模糊了 |
参考文档
GMT 0009-2012.pdf
GMT 0009-2023.pdf
The text was updated successfully, but these errors were encountered: