Пример #1
0
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)
Пример #2
0
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
Пример #3
0
    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)
Пример #4
0
def test_pubkey_roundtrip(p):
    k = UmbralPublicKey(p, params)
    assert(k == UmbralPublicKey.from_bytes(k.to_bytes(), params=params))
Пример #5
0
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