Updated Ragger client for get pub key
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user