Updated Ragger client for get pub key

This commit is contained in:
Alexandre Paillier
2023-08-09 10:42:38 +02:00
parent b05b16143d
commit 0461928355
3 changed files with 61 additions and 0 deletions

View File

@@ -13,3 +13,39 @@ def signature(data: bytes) -> tuple[bytes, bytes, bytes]:
def challenge(data: bytes) -> int:
assert len(data) == 4
return int.from_bytes(data, "big")
def pk_addr(data: bytes, has_chaincode: bool = False):
idx = 0
if len(data) < (idx + 1):
return None
pk_len = data[idx]
idx += 1
if len(data) < (idx + pk_len):
return None
pk = data[idx:idx + pk_len]
idx += pk_len
if len(data) < (idx + 1):
return None
addr_len = data[idx]
idx += 1
if len(data) < (idx + addr_len):
return None
addr = data[idx:idx + addr_len]
idx += addr_len
if has_chaincode:
if len(data) < (idx + 32):
return None
chaincode = data[idx:idx + 32]
idx += 32
else:
chaincode = None
if idx != len(data):
return None
return pk, addr.decode(), chaincode