gmssl icon indicating copy to clipboard operation
gmssl copied to clipboard

a python crypto for sm2/sm3/sm4

Results 43 gmssl issues
Sort by recently updated
recently updated
newest added

用sign函数签名后可以用verify函数验证通过,但是sign_with_sm3后verify_with_sm3得到的结果却是False

使用压缩后的公钥进行加密时报错,如下图 ![image](https://github.com/duanhongyi/gmssl/assets/75029827/92b8b5fe-04f3-4ad3-8184-8e4215911992) sm2算法的公钥是64字节,私钥是32字节,公钥其实是由坐标点(x,y)组合构成,即每个点都是32字节的大数构成的。但是大多数情况下在使用的时候都是对公钥进行压缩使用,以节省空间。但是根据点压缩方式,我们在使用的时候看到的压缩公钥有两种,一种是02,一种是03。还有04的标识未压缩。 建议初始化时添加对公钥类型的判断,对压缩后的公钥进行还原

1.sm2算法,修改默认使用模式为C1C3C2 2.其他加密工具产生的加密密文会自带04头,如果自己解密会失败 这个库产生的密文不带04头,其他解密工具会解密失败,所以加上04头判断

多次签名和验签,会出现如下错误: ``` Traceback (most recent call last): File "/Users/yid/Documents/Workspace/Haiyu/MpcAgentBackend/test.py", line 22, in jiemi() File "/Users/yid/Documents/Workspace/Haiyu/MpcAgentBackend/test.py", line 17, in jiemi print(encrypt.verify('jello', sign)) File "/Users/yid/Documents/Workspace/Haiyu/MpcAgentBackend/common/encrypt/encrypt.py", line 62, in verify return self._actuators.verify(plain_text, signature)...

func.py的12行,padding函数存在问题。如果data的长度正好是16字节的整数倍,利用该函数执行完的结果是又填充了16字节,这不太符合实际情况,应该增加判断。

crypt_sm4 = CryptSM4() sm4_key = bytes(value_list[1]) crypt_sm4.set_key(sm4_key, SM4_DECRYPT) 上述是报错代码,执行之后抛出以下异常 Traceback (most recent call last): File "test.py", line 22, in crypt_sm4.set_key(sm4_key, SM4_DECRYPT) File "/usr/lib/python2.7/site-packages/gmssl/sm4.py", line 95, in set_key MK[0] = get_uint32_be(key[0:4])...

java生成的公私钥与python的有点出入,Python用java的私钥签名后,验签失败 java生成的公私钥对: KeyPair keyPair = generateSm2KeyPair(); String pri = java.util.Base64.getEncoder().encodeToString(keyPair.getPrivate().getEncoded()); String puk = java.util.Base64.getEncoder().encodeToString(keyPair.getPublic().getEncoded()); pubKey:MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEtKnAlS64hZCIEpX42KY6VTgHoySczY8ELCHiat7wObuyWAiItnDP9HmPXZiLMzWmeCNlzmZsu/MpVjtLyBRd9Q== priKey:MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgQ5HEtGmOW7XrQFYJmBMsu0o1tCkNYvaRhf04vzdYxUugCgYIKoEcz1UBgi2hRANCAAS0qcCVLriFkIgSlfjYpjpVOAejJJzNjwQsIeJq3vA5u7JYCIi2cM/0eY9dmIszNaZ4I2XOZmy78ylWO0vIFF31 (不知道对不对,被网上的教程弄晕了) python 代码: @staticmethod def sm2withsm3(sign_data: str): """ 此处签名需要公钥 :param sign_data: :param private_key: 私钥...

如下图所示 ![image](https://user-images.githubusercontent.com/55662947/211700743-21bc83ce-e8f5-4d9b-b47e-88612d780159.png)

做成可选配置 pkcs5 pkcs7 0填充什么的