def test_public_key_to_uncompressed_bytes(random_ec_curvebn1): priv_key = random_ec_curvebn1 params = default_params() pub_key = priv_key * params.g umbral_key = UmbralPublicKey(pub_key, params) key_bytes = umbral_key.to_bytes(is_compressed=False) assert len(key_bytes) == Point.expected_bytes_length(is_compressed=False)
def test_public_key_serialization(random_ec_curvebn1): priv_key = random_ec_curvebn1 params = default_params() pub_key = priv_key * params.g umbral_key = UmbralPublicKey(pub_key, params) encoded_key = umbral_key.to_bytes() decoded_key = UmbralPublicKey.from_bytes(encoded_key) assert pub_key == decoded_key.point_key
def _generate_credential( self, voter_short_public_key: UmbralPublicKey ) -> Tuple[UmbralPublicKey, Signer]: """generate credential Arguments: voter_short_public_key {UmbralPublicKey} Returns: Tuple[UmbralPublicKey, Signer] """ signature = self.signer(voter_short_public_key.to_bytes()) return (voter_short_public_key, signature)
def test_pubkey_roundtrip(p): k = UmbralPublicKey(p, params) assert(k == UmbralPublicKey.from_bytes(k.to_bytes(), params=params))
def canonical_address_from_umbral_key(public_key: UmbralPublicKey) -> bytes: pubkey_raw_bytes = public_key.to_bytes(is_compressed=False)[1:] eth_pubkey = EthKeyAPI.PublicKey(pubkey_raw_bytes) canonical_address = eth_pubkey.to_canonical_address() return canonical_address