@@ -1626,24 +1626,35 @@ iy6KC991zzvaWY/Ys+q/84Afqa+0qJKQnPuy/7F5GkVdQA/lfbhi
16261626 }
16271627 }
16281628
1629+ fn assert_rsa_private_key_eq ( pk1 : & Pk , pk2 : & Pk ) {
1630+ assert_eq ! ( pk1. rsa_public_modulus( ) . unwrap( ) , pk2. rsa_public_modulus( ) . unwrap( ) ) ; // n
1631+ assert_eq ! ( pk1. rsa_public_exponent( ) . unwrap( ) , pk2. rsa_public_exponent( ) . unwrap( ) ) ; // e
1632+ assert_eq ! ( pk1. rsa_private_exponent( ) . unwrap( ) , pk2. rsa_private_exponent( ) . unwrap( ) ) ; // d
1633+ let p1 = pk1. rsa_private_prime1 ( ) . unwrap ( ) ;
1634+ let p2 = pk2. rsa_private_prime1 ( ) . unwrap ( ) ;
1635+ let q1 = pk1. rsa_private_prime2 ( ) . unwrap ( ) ;
1636+ let q2 = pk2. rsa_private_prime2 ( ) . unwrap ( ) ;
1637+ assert ! ( ( ( p1 == p2) && ( q1 == q2) ) || ( ( p1 == q2) && ( q1 == p2) ) ) ;
1638+ }
1639+
16291640 #[ test]
16301641 fn private_from_rsa_components_sanity ( ) {
1631- let mut pk = Pk :: generate_rsa ( & mut crate :: test_support:: rand:: test_deterministic_rng ( ) , 2048 , 0x10001 ) . unwrap ( ) ;
1642+ let pk = Pk :: generate_rsa ( & mut crate :: test_support:: rand:: test_rng ( ) , 2048 , 0x10001 ) . unwrap ( ) ;
16321643 let components = RsaPrivateComponents :: WithPrimes {
16331644 p : & pk. rsa_private_prime1 ( ) . unwrap ( ) ,
16341645 q : & pk. rsa_private_prime2 ( ) . unwrap ( ) ,
16351646 e : & Mpi :: new ( pk. rsa_public_exponent ( ) . unwrap ( ) as _ ) . unwrap ( ) ,
16361647 } ;
1637- let mut pk2 = Pk :: private_from_rsa_components ( components) . unwrap ( ) ;
1638- assert_eq ! ( pk . write_private_der_vec ( ) . unwrap ( ) , pk2. write_private_der_vec ( ) . unwrap ( ) ) ;
1648+ let pk2 = Pk :: private_from_rsa_components ( components) . unwrap ( ) ;
1649+ assert_rsa_private_key_eq ( & pk , & pk2) ;
16391650
16401651 let components = RsaPrivateComponents :: WithPrivateExponent {
16411652 n : & pk. rsa_public_modulus ( ) . unwrap ( ) ,
16421653 d : & pk. rsa_private_exponent ( ) . unwrap ( ) ,
16431654 e : & Mpi :: new ( pk. rsa_public_exponent ( ) . unwrap ( ) as _ ) . unwrap ( ) ,
16441655 } ;
1645- let mut pk3 = Pk :: private_from_rsa_components ( components) . unwrap ( ) ;
1646- assert_eq ! ( pk . write_private_der_vec ( ) . unwrap ( ) , pk3. write_private_der_vec ( ) . unwrap ( ) ) ;
1656+ let pk3 = Pk :: private_from_rsa_components ( components) . unwrap ( ) ;
1657+ assert_rsa_private_key_eq ( & pk , & pk3) ;
16471658 }
16481659
16491660 #[ test]
0 commit comments