guanzhi / GmSSL

支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱
http://gmssl.org
Apache License 2.0
5.19k stars 1.67k forks source link

可否在sm2_signtest.c添加secp256r1曲线的相关代码? #1680

Open EvanHou1998 opened 5 months ago

EvanHou1998 commented 5 months ago

在使用gmssl的过程中,由于开发需求,我们必须使用secp256r1椭圆曲线来开发ECC256签名和验签。我是一个初学者,主要参考了sm2_signtest.c文件。我发现简单的替换p,n,a,b等参数不能直接实现我们的需求。目前在替换一些事先define的数组,如P_PRIME和N_PRIME过程中遇到了困难。我不知道库是否中有相关部分的代码我没有找到,又或者其他曲线暂时不能在sm2_signtest.c中使用。希望开发者在test文件中提供更多种曲线的选择,也顺便求助领域内专业人士如何计算这些数组。

lpilp commented 5 months ago

gmssl是针对国密 整个算法体体系与你的需求有所差距,按你的需求可以使用 openssl1.1.x 的版本就行, 先看下你的版本是否支持该椭圆 ,openssl ecparam -list_curves,不支持的话,下载openssl的源码,添加上你要的椭圆,重编译

lpilp commented 5 months ago

不好意思,现在最新的 openssl 支持了更多的椭圆, secp256r1 好像与 prime256v1是同一个椭圆,在新版的openssl应该是都支持的,直接就可以用了

EvanHou1998 commented 5 months ago

不好意思,现在最新的 openssl 支持了更多的椭圆, secp256r1 好像与 prime256v1是同一个椭圆,在新版的openssl应该是都支持的,直接就可以用了

好的,感谢您的回复。我下载新版openssl试试看。

lpilp commented 5 months ago

学艺不精,刚特意去确认了下 secp256r1 与 prime256v1的椭圆参数是一样的,这个在很早的版本就有了,不用新的,-