duanhongyi / gmssl

a python crypto for sm2/sm3/sm4
MIT License
488 stars 141 forks source link

无法使用压缩后的公钥加密,会报错 #72

Open Pedro-null opened 1 year ago

Pedro-null commented 1 year ago

使用压缩后的公钥进行加密时报错,如下图

image

sm2算法的公钥是64字节,私钥是32字节,公钥其实是由坐标点(x,y)组合构成,即每个点都是32字节的大数构成的。但是大多数情况下在使用的时候都是对公钥进行压缩使用,以节省空间。但是根据点压缩方式,我们在使用的时候看到的压缩公钥有两种,一种是02,一种是03。还有04的标识未压缩。

建议初始化时添加对公钥类型的判断,对压缩后的公钥进行还原

CharliHui commented 1 year ago

遇到同样的问题…求解决办法…

Pedro-null commented 1 year ago

遇到同样的问题…求解决办法…

临时可以看看这里提到的解决方法:https://www.pedronull.xyz/archives/164