Beispiel #1
0
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)
 def show_gm_account(name, password):
     account = GM_Account()
     keyfile = "{}/{}.json".format(client_config.account_keyfile_path,
                                   name)
     account.load_from_file(keyfile, password)
     print("load account from file: ", keyfile)
     print(account.getdetail())
Beispiel #3
0
    def create_gm_account(self, name, password):
        keyfile = "{}/{}.json".format(client_config.account_keyfile_path, name)
        if not os.path.exists(keyfile):  # 如果默认文件不存在,直接写
            forcewrite = True
        else:
            forcewrite = common.backup_file(keyfile)  # 如果备份失败,不要覆盖写

        account = GM_Account()
        account.create()
        if forcewrite:
            account.save_to_file(keyfile, password)
        print("account created:")
        print(account.getdetail())
        if forcewrite:
            print("account save to :", keyfile)
Beispiel #4
0
    sigdata = sm2_crypt.combine_signed_R_S(r, s)
    vres = sm2_crypt.verify(sigdata, data)
    print("verify result 2: {}", vres)


test_gmaccount_spec()
sys.exit(0)
'''
私钥: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"
Beispiel #5
0
from eth_utils.hexadecimal import encode_hex
from utils.contracts import (
    encode_transaction_data, )

from eth_utils.crypto import set_crypto_type, CRYPTO_TYPE_GM, CRYPTO_TYPE_ECDSA

set_crypto_type("Gm")

data = b'\x87-\x8dP\xab\x0f"N\xf9\x111Dp17\xd0Q\t\xeeDNa\x04Da\xee\x8e\xe9]\x96\xa1<'
print("hexdata", data.hex())
data = b'7551ab5643a1690f7b128d0d1790ca6b02a2b5a34653d4311673588d0fa42789'

keyfile = "bin/account1.json"
account = GM_Account()
account.load_from_file(keyfile)
print(account.getdetail())
signer = SignTx()
signer.KeyPair = account
# 从abi文件获得abi的文本定义
parser = DatatypeParser()
abi_file = "contracts/HelloWorld.abi"
parser.load_abi_file(abi_file)
inputparam = ['test123789111']
# print(parser.contract_abi)
functiondata = encode_transaction_data("set", parser.contract_abi, None,
                                       inputparam)
result = parser.parse_transaction_input(functiondata)
print("parse tx input :", result)
print("functiondata ", functiondata)
sighash = keccak(b"set(string)")
print(sighash)