You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
885 B
31 lines
885 B
from lib.gmssl import sm2, func
|
|
|
|
kp = sm2.CryptSM2(public_key='', private_key='')
|
|
|
|
private_key = kp.get_random_d(16)
|
|
public_key = kp.get_pa(private_key)
|
|
|
|
print("\nprivate_key & public_key")
|
|
print("private_key:%s" % private_key)
|
|
print("public_key:%s" % public_key)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sm2_crypt = sm2.CryptSM2(public_key=public_key, private_key=private_key)
|
|
data = "Python测试".encode()
|
|
|
|
print("\nencrypt & decrypt")
|
|
enc_data = sm2_crypt.encrypt(data)
|
|
print("enc_data:%s" % enc_data)
|
|
dec_data = sm2_crypt.decrypt(enc_data)
|
|
print("dec_data:%s" % dec_data.decode())
|
|
assert data == dec_data
|
|
|
|
print("\nsign & verify")
|
|
random_hex_str = func.random_hex(sm2_crypt.para_len)
|
|
sign = sm2_crypt.sign(data, random_hex_str)
|
|
print('sign:%s' % sign)
|
|
verify = sm2_crypt.verify(sign, data)
|
|
print('verify:%s' % verify)
|
|
assert verify
|