def test_valid_id_nonce_signature_validation(private_key, id_nonce, ephemeral_key): ephemeral_public_key = PrivateKey(ephemeral_key).public_key.to_bytes() signature = V4HandshakeScheme.create_id_nonce_signature( signature_inputs=SignatureInputs(id_nonce, ephemeral_public_key), private_key=private_key, ) public_key = PrivateKey(private_key).public_key.to_compressed_bytes() V4HandshakeScheme.validate_id_nonce_signature( signature_inputs=SignatureInputs(id_nonce, ephemeral_public_key), signature=signature, public_key=public_key, )
def test_invalid_id_nonce_signature_validation(): id_nonce = b"\xff" * 10 private_key = b"\x11" * 32 ephemeral_public_key = b"\x22" * 64 signature = V4HandshakeScheme.create_id_nonce_signature( signature_inputs=SignatureInputs(id_nonce, ephemeral_public_key), private_key=private_key, ) public_key = PrivateKey(private_key).public_key.to_compressed_bytes() different_public_key = PrivateKey(b"\x22" * 32).public_key.to_compressed_bytes() different_id_nonce = b"\x00" * 10 different_ephemeral_public_key = b"\x00" * 64 assert different_public_key != public_key assert different_id_nonce != id_nonce assert different_ephemeral_public_key != ephemeral_public_key with pytest.raises(ValidationError): V4HandshakeScheme.validate_id_nonce_signature( signature_inputs=SignatureInputs(id_nonce, ephemeral_public_key), signature=signature, public_key=different_public_key, ) with pytest.raises(ValidationError): V4HandshakeScheme.validate_id_nonce_signature( signature_inputs=SignatureInputs(different_id_nonce, ephemeral_public_key), signature=signature, public_key=public_key, ) with pytest.raises(ValidationError): V4HandshakeScheme.validate_id_nonce_signature( signature_inputs=SignatureInputs(id_nonce, different_ephemeral_public_key), signature=signature, public_key=public_key, )