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 sign(self, message: bytes) -> bytes: """ Signs a hashed message and returns a signature. :param message: The message to sign :return: Signature in bytes """ signature_der_bytes = API.ecdsa_sign(message, self._privkey) return Signature.from_bytes(signature_der_bytes, der_encoded=True)
def test_signature_rs_serialization(): privkey = UmbralPrivateKey.gen_key() message = b"peace at dawn" der_sig_bytes = ecdsa_sign(message, privkey) signature_from_der = Signature.from_bytes(der_sig_bytes, der_encoded=True) rs_sig_bytes = bytes(signature_from_der) assert len(rs_sig_bytes) == 64 signature_from_rs = Signature.from_bytes(rs_sig_bytes, der_encoded=False) assert signature_from_rs == signature_from_der assert signature_from_rs == der_sig_bytes assert signature_from_rs.verify(message, privkey.get_pubkey())