gmssl
gmssl copied to clipboard
a python crypto for sm2/sm3/sm4
公私钥怎么生成
您好, 我想问一下,除了demo里提供的公私钥,如果我想要自己生成程序能用的公私钥的话,应该怎么办呢。 谢谢
请问,python pip 安装的gmssl就是您的这个吗?里面sm4.py的crypt_ecb函数,这里会对SM4明文数据强制填充,比如我以HEX输入,送入16字节数据,这里仍然会强制填充16字节0x10 0x10...,这样就会输出32字节数据,同样的还有解密时的unpadding,以hex直接送入16字节数据就会报错。此处为什么要强制填充呢?SM4算法是按16字节分组加密,那送入16字节就算可以直接加密不需填充的。如需填充的话,能以让开发者自己在工程代码里选择是否更好?此处能否修改下? 
` #!/usr/bin/env python3 # coding=utf-8 from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT key = b'Dem0_wants_girls' value = bytes.fromhex('5919238bfabd4e4e9622035cb7b1471c') # bytes类型 iv = bytes.fromhex('6dc783252ef5e96363cb48e544342f0b') # bytes类型 crypt_sm4 = CryptSM4(SM4_DECRYPT) crypt_sm4.set_key(key, SM4_DECRYPT) encrypt_value...
`sign()` allow the user to provide the random `k`, while `encrypt()` does not allow it... Could it be possible to change the `encrypt()` in order to add the `k` param...
建议提供密文排列选项,有些小众情况会需要用到C1C2C3排列方式 以及自定义密文排列情况
公钥长度问题
示例中私钥长度是66位,按标准是不是应该是64位?
SM2._kg(self, k, Point): # kP运算 This function may have problem, given k = B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5, Point = g (base point), the calculated result shall be equal to publick key = B9C9A6E04E9C91F7BA880429273747D7EF5DDEB0BB2FF6317EB00BEF331A83081A6994B8993F3F5D6EADDDB81872266C87C018FB4162F5AF347B483E24620207...
根据PBOC3.0规范第17部分8.2《中国金融集成电路(IC)卡规范 第17部分:借记贷记应用安全增强规范》描述,签名,验签时需要先生成一个Za值,把原始数据和Za拼接起来,再进行sm2签名。 规范节选: 对任意长度的数据组成的报文MSG计算签名S的过程如下: a) 计算ZA=SM3[ENTLA || IDA || a || b || xG ||yG || xA || yA]。其中IDA固定设置为16字节定 长的十六进制数据0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x31, 0x32, 0x33,...
请问一下有SM4 (CFB 模式)的使用例子吗?
使用sm3计算一个6MB大小的文件,要使用约55秒。 sm4Ecb计算一个6MB大小的文件,要使用约43秒。 同算法在golang上运算只要0.12秒。 这个算是python原生计算加解密的硬伤吗?有没有优化方案?