@@ -83,7 +83,26 @@ pub const SECP384R1_TESTVEC: &[EcdsaTestVec] = &[
8383] ;
8484
8585
86- pub fn run_ecdsa_tests < C > ( uart : & mut UartController , verifier : & mut impl EcdsaVerify < C , PublicKey = PublicKey , Signature = Signature > )
86+ pub fn run_ecdsa_tests ( uart : & mut UartController , verifier : & mut impl EcdsaVerify < Secp384r1Curve , PublicKey = PublicKey , Signature = Signature > )
87+ {
88+ writeln ! ( uart, "\r \n Running ECDSA test" ) . unwrap ( ) ;
89+ for ( i, vec) in SECP384R1_TESTVEC . iter ( ) . enumerate ( ) {
90+ let pubkey = PublicKey { qx : Scalar48 ( vec. qx ) , qy : Scalar48 ( vec. qy ) } ;
91+ let sig = Signature { r : Scalar48 ( vec. r ) , s : Scalar48 ( vec. s ) } ;
92+ let mut digest = <<Secp384r1Curve as Curve >:: DigestType as DigestAlgorithm >:: DigestOutput :: default ( ) ;
93+ digest. as_mut ( ) . copy_from_slice ( & vec. m ) ;
94+
95+ let result = verifier. verify ( & pubkey, digest, & sig) ;
96+
97+ writeln ! ( uart, "\r \n Test case {}... " , i) . unwrap ( ) ;
98+
99+ let _ = match ( result. is_ok ( ) , vec. result ) {
100+ ( true , true ) => writeln ! ( uart, "\r result expected (pass), Pass" ) ,
101+ ( false , false ) => writeln ! ( uart, "\r result expected (fail), Pass" ) ,
102+ _ => writeln ! ( uart, "\r result unexpected (got {:?}), Failed" , result) ,
103+ } ;
104+ }
105+ }
87106where
88107 C : Curve <Scalar = Scalar48 >,
89108 C :: DigestType : DigestAlgorithm ,
0 commit comments