def test_signature(): ping = Ping(nonce=0, current_protocol_version=constants.PROTOCOL_VERSION) ping.sign(signer) assert ping.sender == ADDRESS # test that the valid v values are accepted message_data = ping._data_to_sign() # This signature will sometimes end up with v being 0, sometimes 1 signature = signer.sign(data=message_data, v=0) assert ADDRESS == recover(message_data, signature) # This signature will sometimes end up with v being 27, sometimes 28 signature = signer.sign(data=message_data, v=27) assert ADDRESS == recover(message_data, signature) # test that other v values are rejected signature = signature[:-1] + bytes([29]) with pytest.raises(InvalidSignature): recover(message_data, signature) signature = signature[:-1] + bytes([37]) with pytest.raises(InvalidSignature): recover(message_data, signature) signature = signature[:-1] + bytes([38]) with pytest.raises(InvalidSignature): recover(message_data, signature)
def test_signature(): ping = Ping(nonce=0, current_protocol_version=constants.PROTOCOL_VERSION) ping.sign(PRIVKEY) assert ping.sender == ADDRESS # test that the valid v values are accepted message_data = ping._data_to_sign() # This signature will sometimes end up with v being 0, sometimes 1 signature = eth_sign(privkey=PRIVKEY, data=message_data, v=0) assert ADDRESS == eth_recover(message_data, signature) # This signature will sometimes end up with v being 27, sometimes 28 signature = eth_sign(privkey=PRIVKEY, data=message_data, v=27) assert ADDRESS == eth_recover(message_data, signature) # test that other v values are rejected signature = signature[:-1] + bytes([29]) with pytest.raises(InvalidSignature): eth_recover(message_data, signature) signature = signature[:-1] + bytes([37]) with pytest.raises(InvalidSignature): eth_recover(message_data, signature) signature = signature[:-1] + bytes([38]) with pytest.raises(InvalidSignature): eth_recover(message_data, signature)