Skip to content

Commit a438919

Browse files
authored
Merge pull request #351 from fortanix/mz/fix-private_from_rsa_components_sanity
Fix private_from_rsa_components_sanity test
2 parents b01b42e + 17f95ac commit a438919

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

mbedtls/src/pk/mod.rs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)