1- use crate :: ec :: {EcPoint , EcPointTrait , EcStateTrait };
1+ use crate :: ec :: {EcPoint , EcPointTrait , EcStateTrait , stark_curve };
22use crate :: ecdsa;
33use crate :: option :: OptionTrait ;
44use crate :: test :: test_utils :: assert_eq;
@@ -116,13 +116,11 @@ fn test_ecdsa_recover_public_key() {
116116 let message_hash = 0x503f4bea29baee10b22a7f10bdc82dda071c977c1f25b8f3973d34e6b03b2c ;
117117 let signature_r = 0xbe96d72eb4f94078192c2e84d5230cde2a70f4b45c8797e2c907acff5060bb ;
118118 let signature_s = 0x677ae6bba6daf00d2631fab14c8acf24be6579f9d9e98f67aa7f2770e57a1f5 ;
119- assert_eq (
120- @ ecdsa :: recover_public_key (: message_hash , : signature_r , : signature_s , y_parity : false )
121- . unwrap (),
122- @ 0x7b7454acbe7845da996377f85eb0892044d75ae95d04d3325a391951f35d2ec ,
123- ' recover_ecdsa_public_key failed' ,
119+ assert_eq! (
120+ ecdsa :: recover_public_key (: message_hash , : signature_r , : signature_s , y_parity : false ),
121+ Some (0x7b7454acbe7845da996377f85eb0892044d75ae95d04d3325a391951f35d2ec ),
124122 );
125- assert (
123+ assert! (
126124 ecdsa :: check_ecdsa_signature (
127125 : message_hash ,
128126 public_key : ecdsa :: recover_public_key (
@@ -132,7 +130,26 @@ fn test_ecdsa_recover_public_key() {
132130 : signature_r ,
133131 : signature_s ,
134132 ),
135- ' ecdsa returned false' ,
133+ );
134+ assert_eq! (
135+ ecdsa :: recover_public_key (: message_hash , signature_r : 0 , : signature_s , y_parity : true ),
136+ None ,
137+ );
138+ assert_eq! (
139+ ecdsa :: recover_public_key (
140+ : message_hash , signature_r : stark_curve :: ORDER , : signature_s , y_parity : true ,
141+ ),
142+ None ,
143+ );
144+ assert_eq! (
145+ ecdsa :: recover_public_key (: message_hash , : signature_r , signature_s : 0 , y_parity : true ),
146+ None ,
147+ );
148+ assert_eq! (
149+ ecdsa :: recover_public_key (
150+ : message_hash , : signature_r , signature_s : stark_curve :: ORDER , y_parity : true ,
151+ ),
152+ None ,
136153 );
137154}
138155
0 commit comments