python实现gm算法
snowland-smx的Python项目详细描述
- sm2
- 总经理签名 a.生成密钥对
>>> from pysmx.SM2 import generate_keypair >>> pk, sk = generate_keypair()
- signature
>>> from pysmx.SM2 import Sign >>> len_para = 64 >>> sig = Sign("hello", sk, '12345678abcdef', len_para)
- verify
>>> from pysmx.SM2 import Verify >>> len_para = 64 >>> Verify(sig, "hello", pk, len_para)
- encrpto
>>> from pysmx.SM2 import Encrypt >>> e = b'hello' >>> len_para = 64 >>> C = Encrypt(e, pk, len_para, 0) # 0 means var e is not a hex string
- decrpto
>>> from pysmx.SM2 import Decrypt >>> len_para = 64 >>> m = Decrypt(C, sk, len_para)
- sm3
- 哈希 a.方法1:
>>> from pysmx.SM3 import SM3 >>> sm3 = SM3() >>> sm3.update('abc') >>> sm3.hexdigest()
- method 2:
>>> from pysmx.SM3 import hash_msg >>> s = 'abc' >>> hash_msg(s)
- sm4
- 块encrpto a.附件
>>> from pysmx.SM4 import Sm4, ENCRYPT, DECRYPT >>> key_data = b'hello word errrr...' # 16 bytes at least >>> sm4 = Sm4() >>> input_data = [1,2,3] >>> sm4.sm4_set_key(key_data, ENCRYPT) >>> msg = sm4.sm4_crypt_ecb()
- decryto
>>> from pysmx.SM4 import Sm4, ENCRYPT, DECRYPT >>> key_data = b'hello word errrr...' # 16 bytes at least >>> sm4 = Sm4() >>> sm4.sm4_set_key(key_data, DECRYPT) >>> sm4.sm4_crypt_ecb(msg)
- zuc
- 等待更新