GitHub |
您所在的位置:网站首页 › go调用python算法 › GitHub |
tongsuo-python-sdk
Tongsuo-Python-SDK基于Tongsuo密码库, 为Python应用提供密码学原语和安全传输协议的支持,目前以支持中国商用密码算法和安全协议为主。 SM2签名和验签,详见sm2_sign_verify.py from tongsuopy.crypto import hashes, serialization from tongsuopy.crypto.asymciphers import ec msg = b"hello" key = ec.generate_private_key(ec.SM2()) pem = key.public_key().public_bytes( encoding=serialization.Encoding.PEM, format=serialization.PublicFormat.SubjectPublicKeyInfo, ) pubkey = serialization.load_pem_public_key(pem) signature = key.sign(msg, ec.ECDSA(hashes.SM3())) pubkey.verify(signature, msg, ec.ECDSA(hashes.SM3()))SM2加密和解密,详见sm2_encrypt_decrypt_from_pem.py from tongsuopy.crypto import serialization from tongsuopy.crypto.asymciphers import ec msg = b"hello" key = ec.generate_private_key(ec.SM2()) pem = key.public_key().public_bytes( encoding=serialization.Encoding.PEM, format=serialization.PublicFormat.SubjectPublicKeyInfo, ) pubkey = serialization.load_pem_public_key(pem) ciphertext = pubkey.encrypt(msg) decrypt_text = key.decrypt(ciphertext) assert decrypt_text == msgSM3杂凑,详见sm3.py from tongsuopy.crypto import hashes h = hashes.Hash(hashes.SM3()) h.update(b"abc") res = h.finalize()SM4-CBC加密,详见sm4_cbc.py from tongsuopy.crypto.ciphers import Cipher, algorithms, modes c = Cipher(algorithms.SM4(key), modes.CBC(iv)) enc = c.encryptor() ciphertext = enc.update(plaintext) ciphertext += enc.finalize()SM4-GCM加密,详见sm4_gcm.py from tongsuopy.crypto.ciphers import Cipher, algorithms, modes c = Cipher(algorithms.SM4(key), modes.GCM(iv)) enc = c.encryptor() enc.authenticate_additional_data(aad) ciphertext = enc.update(plaintext) ciphertext += enc.finalize() 安装 pip install tongsuopy要求Python >= 3.6。 功能特性 支持SM2加密和解密 支持SM2签名和验签 支持SM3杂凑算法 支持SM4加解密,包括ECB、CBC、OFB、CFB、CTR模式 支持SM4-GCM和SM4-CCM [TODO] TLCP协议支持 交流群欢迎加入铜锁社区交流群,使用钉钉扫描二维码或者钉钉内搜索群号44810299。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |