def test_signature_can_verify(): privkey = UmbralPrivateKey.gen_key() message = b"peace at dawn" der_sig_bytes = ecdsa_sign(message, privkey) assert verify_ecdsa(message, der_sig_bytes, privkey.get_pubkey()) signature = Signature.from_bytes(der_sig_bytes, der_encoded=True) assert signature.verify(message, privkey.get_pubkey())
def test_actor_with_signing_power_can_sign(): """ However, simply giving that character a PowerUp bestows the power to sign. Instead of having a Character verify the signature, we'll use the lower level API. """ message = b"Llamas." signer = Character(crypto_power_ups=[SigningPower], is_me=True, start_learning_now=False, federated_only=True) stamp_of_the_signer = signer.stamp # We can use the signer's stamp to sign a message (since the signer is_me)... signature = stamp_of_the_signer(message) # ...or to get the signer's public key for verification purposes. # (note: we use the private _der_encoded_bytes here to test directly against the API, instead of Character) verification = api.verify_ecdsa(message, signature._der_encoded_bytes(), stamp_of_the_signer.as_umbral_pubkey()) assert verification is True