def test_gmaccount_spec(): privkey = "82dcd33c98a23d5d06f9331554e14ab4044a1d71b169b7a38b61c214f0690f80" account = GM_Account() account.from_key(privkey) signer = Signer_GM(account) data = b"1234567890" (v, r, s) = signer.sign(data) #print("hex v:",hex(v)) print("create account detail: ", account.getdetail()) print("after sign result is ", (r, s, v)) sigdata = "49889ee5e24e9fac262e04e82aab58aa0a2d29368e0a105913b20e96d0df6e1d887b8200d1d23052eae96419e21675cc579c759335226a16726f9d480f06b83f" print("sigdata len = ", len(decode_hex(sigdata))) sm2_crypt = sm2.CryptSM2(public_key=account.keypair.public_key, private_key=privkey) #sigdata= sm2_crypt.combine_signed_R_S(r,s) print("sigdata :", sigdata) vres = sm2_crypt.verify(sigdata[0:128], data) print("verify result : {}", vres) r = int("49889ee5e24e9fac262e04e82aab58aa0a2d29368e0a105913b20e96d0df6e1d", 16) s = int("887b8200d1d23052eae96419e21675cc579c759335226a16726f9d480f06b83f", 16) sigdata = sm2_crypt.combine_signed_R_S(r, s) vres = sm2_crypt.verify(sigdata, data) print("verify result 2: {}", vres)
''' 私钥:77afa2e920597092d3374993bcc98e82911b5302337d3e4cc5d457c3dee3f96d 公钥:0d91c4a0712cb8bd826dadc3458458d0ae120d54b4f3d8dc914d3bf18cfc41ec9ee30ca57402f80b6c847cd684d0382d295b4b497e6d11b56d9bb24df7d44e4d 地址:0xb925aa05369c23ab1b46d9f4faca08126536ae85 ''' print("\n\ntest create new account") account = GM_Account() account.create() print("create account detail: ", account.getdetail()) privatekey = "77afa2e920597092d3374993bcc98e82911b5302337d3e4cc5d457c3dee3f96d" print("\n\ntest from private key and set to crypto content,key:", privatekey) filename = "bin/accounts/gm_account1.json" print("filename :", filename) account1 = GM_Account() account1.from_key(privatekey) print(account1.getdetail()) account1.save_to_file(filename, "123456") account11 = GM_Account() account11.load_from_file(filename, "123456") print("load account detail: ", account11.getdetail()) print("\n\ntest account save to plain file ,from key: ", privatekey) filename = "bin/accounts/gm_account2.json" print("filename: ", filename) account2 = GM_Account() account2.from_key(privatekey) account2.save_to_file(filename) account21 = GM_Account() account21.load_from_file(filename) print("load from plain file: ", account21.getdetail())
def from_privkey(privkey): account = GM_Account() account.from_key(privkey) return account