@@ -1626,24 +1626,35 @@ iy6KC991zzvaWY/Ys+q/84Afqa+0qJKQnPuy/7F5GkVdQA/lfbhi
1626
1626
}
1627
1627
}
1628
1628
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
+
1629
1640
#[ test]
1630
1641
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 ( ) ;
1632
1643
let components = RsaPrivateComponents :: WithPrimes {
1633
1644
p : & pk. rsa_private_prime1 ( ) . unwrap ( ) ,
1634
1645
q : & pk. rsa_private_prime2 ( ) . unwrap ( ) ,
1635
1646
e : & Mpi :: new ( pk. rsa_public_exponent ( ) . unwrap ( ) as _ ) . unwrap ( ) ,
1636
1647
} ;
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) ;
1639
1650
1640
1651
let components = RsaPrivateComponents :: WithPrivateExponent {
1641
1652
n : & pk. rsa_public_modulus ( ) . unwrap ( ) ,
1642
1653
d : & pk. rsa_private_exponent ( ) . unwrap ( ) ,
1643
1654
e : & Mpi :: new ( pk. rsa_public_exponent ( ) . unwrap ( ) as _ ) . unwrap ( ) ,
1644
1655
} ;
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) ;
1647
1658
}
1648
1659
1649
1660
#[ test]
0 commit comments