def test_keypairs(self): keypairs = load_ts_fixtures(path_join("keypairs.fixtures.ts")) for pair in keypairs: key_from_private = crypto.ZilKey(str_private=pair["private"]) key_from_public = crypto.ZilKey(str_public=pair["public"]) assert key_from_private.pub_key == key_from_public.pub_key
def test_zil_mykey(self): key = crypto.ZilKey.load_mykey_txt(path_join("mykey.txt")) assert key.address == "967e40168af66f441b73c0146e26069bfc3accc7" with pytest.raises(AssertionError): crypto.ZilKey( "02A349FA10F0E6A614A38D6033588A422357F2C60AF2EEBAE15D06498DF8AF0B05", "75889EA1AF5D402B69E61C654C74D8B569E363D2E271E1E6E2B63FDB9B635173" ) new_key = crypto.ZilKey( "02A349FA10F0E6A614A38D6033588A422357F2C60AF2EEBAE15D06498DF8AF0B05", "75889EA1AF5D402B69E61C654C74D8B569E363D2E271E1E6E2B63FDB9B635174") assert key == new_key assert key != crypto.ZilKey.generate_key_pair() pub_key = "0x03949D29723DA4B2628224D3EC8E74C518ACA98C6630B00527F86B8349E982CB57" private_key = "05C3CF3387F31202CD0798B7AA882327A1BD365331F90954A58C18F61BD08FFC" wallet_address = "95B27EC211F86748DD985E1424B4058E94AA5814" new_key = crypto.ZilKey(str_public=pub_key) assert new_key.address == wallet_address.lower() new_key = crypto.ZilKey(str_private=private_key) assert crypto.hex_str_to_int( new_key.keypair_str.public) == crypto.hex_str_to_int(pub_key) assert new_key.address == wallet_address.lower()
def valid_pub_key(pub_key: str): # noinspection PyBroadException try: key = crypto.ZilKey(str_public=pub_key) except: return None return "0x" + key.keypair_str.public
def load_keys(file_path): keys = [] if not os.path.isfile(file_path): print(f"keys file not found, pls run 'keys gen' first") exit(1) with open(file_path, "r") as f: for line in f.readlines(): line = line.strip() if len(line) <= 0: continue parts = line.split(" ") if len(parts) < 1: print(f"Invalid Key in {line}") continue public = parts[0] private = None key = crypto.ZilKey(str_public=public, str_private=private) keys.append(key) print("add nodes") for key in keys: pub_key, pow_fee, authorized = key.keypair_str.public, 0.0, True if not pub_key.startswith("0x"): pub_key = "0x" + pub_key node = zilnode.ZilNode(pub_key=pub_key, email="", pow_fee=pow_fee, authorized=authorized) node = node.save() print(f"create node: {node}")
def verify_signature(pub_key, signature, *parameters): if zil_config["verify_sign"] is False: return True key = crypto.ZilKey(str_public=pub_key) msg_to_verify = b"" for param in parameters: if isinstance(param, bytes): b_param = param elif isinstance(param, str): b_param = crypto.hex_str_to_bytes(param) elif isinstance(param, bool): b_param = b"\x01" if param else b"\x00" elif isinstance(param, int): b_param = crypto.int_to_bytes(param, n_bytes=8) else: logging.warning(f"wrong data type") return False msg_to_verify += b_param return key.verify(signature, msg_to_verify)