55"""Test RPC commands for signing and verifying messages."""
66
77from test_framework .test_framework import BitcoinTestFramework
8+ from test_framework .util import assert_equal
89
910class SignMessagesTest (BitcoinTestFramework ):
1011 def set_test_params (self ):
@@ -14,20 +15,24 @@ def set_test_params(self):
1415 def run_test (self ):
1516 message = 'This is just a test message'
1617
17- # Test the signing with a privkey
18- privKey = 'cUeKHd5orzT3mz8P9pxyREHfsWtVfgsfDjiZZBcjUBAaGk1BTj7N'
18+ self . log . info ( 'test signing with priv_key' )
19+ priv_key = 'cUeKHd5orzT3mz8P9pxyREHfsWtVfgsfDjiZZBcjUBAaGk1BTj7N'
1920 address = 'mpLQjfK79b7CCV4VMJWEWAj5Mpx8Up5zxB'
20- signature = self . nodes [ 0 ]. signmessagewithprivkey ( privKey , message )
21-
22- # Verify the message
21+ expected_signature = 'INbVnW4e6PeRmsv2Qgu8NuopvrVjkcxob+sX8OcZG0SALhWybUjzMLPdAsXI46YZGb0KQTRii+wWIQzRpG/U+S0='
22+ signature = self . nodes [ 0 ]. signmessagewithprivkey ( priv_key , message )
23+ assert_equal ( expected_signature , signature )
2324 assert (self .nodes [0 ].verifymessage (address , signature , message ))
2425
25- # Test the signing with an address with wallet
26+ self . log . info ( 'test signing with an address with wallet' )
2627 address = self .nodes [0 ].getnewaddress ()
2728 signature = self .nodes [0 ].signmessage (address , message )
28-
29- # Verify the message
3029 assert (self .nodes [0 ].verifymessage (address , signature , message ))
3130
31+ self .log .info ('test verifying with another address should not work' )
32+ other_address = self .nodes [0 ].getnewaddress ()
33+ other_signature = self .nodes [0 ].signmessage (other_address , message )
34+ assert (not self .nodes [0 ].verifymessage (other_address , signature , message ))
35+ assert (not self .nodes [0 ].verifymessage (address , other_signature , message ))
36+
3237if __name__ == '__main__' :
3338 SignMessagesTest ().main ()
0 commit comments