From 420bfac3f661a180c81d6c1252ac6e994d7134ce Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Mon, 8 Apr 2024 09:57:55 +0200 Subject: [PATCH] Refactor key type tests --- tests/key_type.rs | 84 +++++++++++++++++------------------------------ 1 file changed, 31 insertions(+), 53 deletions(-) diff --git a/tests/key_type.rs b/tests/key_type.rs index 2406c08..b15e9ca 100644 --- a/tests/key_type.rs +++ b/tests/key_type.rs @@ -2,63 +2,41 @@ use rustls_pki_types::PrivateKeyDer; #[test] fn test_private_key_from_der() { - fn is_pkcs8(key: &PrivateKeyDer<'_>) -> bool { - matches!(key, PrivateKeyDer::Pkcs8(_)) - } - fn is_pkcs1(key: &PrivateKeyDer<'_>) -> bool { - matches!(key, PrivateKeyDer::Pkcs1(_)) - } - fn is_sec1(key: &PrivateKeyDer<'_>) -> bool { - matches!(key, PrivateKeyDer::Sec1(_)) + const NIST_P256_KEY_SEC1: &[u8] = include_bytes!("../tests/keys/nistp256key.der"); + const NIST_P384_KEY_SEC1: &[u8] = include_bytes!("../tests/keys/nistp384key.der"); + const NIST_P521_KEY_SEC1: &[u8] = include_bytes!("../tests/keys/nistp521key.der"); + for bytes in [NIST_P256_KEY_SEC1, NIST_P384_KEY_SEC1, NIST_P521_KEY_SEC1] { + assert!(matches!( + PrivateKeyDer::try_from(bytes).unwrap(), + PrivateKeyDer::Sec1(_) + )); } - let test_cases: &[(&[u8], fn(&PrivateKeyDer<'_>) -> bool); 11] = &[ - (&include_bytes!("../tests/keys/eddsakey.der")[..], is_pkcs8), - ( - &include_bytes!("../tests/keys/nistp256key.der")[..], - is_sec1, - ), - ( - &include_bytes!("../tests/keys/nistp256key.pkcs8.der")[..], - is_pkcs8, - ), - ( - &include_bytes!("../tests/keys/nistp384key.der")[..], - is_sec1, - ), - ( - &include_bytes!("../tests/keys/nistp384key.pkcs8.der")[..], - is_pkcs8, - ), - ( - &include_bytes!("../tests/keys/nistp521key.der")[..], - is_sec1, - ), - ( - &include_bytes!("../tests/keys/nistp521key.pkcs8.der")[..], - is_pkcs8, - ), - ( - &include_bytes!("../tests/keys/rsa2048key.pkcs1.der")[..], - is_pkcs1, - ), - ( - &include_bytes!("../tests/keys/rsa2048key.pkcs8.der")[..], - is_pkcs8, - ), - ( - &include_bytes!("../tests/keys/rsa4096key.pkcs8.der")[..], - is_pkcs8, - ), - ( - &include_bytes!("../tests/keys/edd25519_v2.der")[..], - is_pkcs8, - ), + const RSA_2048_KEY_PKCS1: &[u8] = include_bytes!("../tests/keys/rsa2048key.pkcs1.der"); + assert!(matches!( + PrivateKeyDer::try_from(RSA_2048_KEY_PKCS1).unwrap(), + PrivateKeyDer::Pkcs1(_) + )); + + const NIST_P256_KEY_PKCS8: &[u8] = include_bytes!("../tests/keys/nistp256key.pkcs8.der"); + const NIST_P384_KEY_PKCS8: &[u8] = include_bytes!("../tests/keys/nistp384key.pkcs8.der"); + const NIST_P521_KEY_PKCS8: &[u8] = include_bytes!("../tests/keys/nistp521key.pkcs8.der"); + const RSA_2048_KEY_PKCS8: &[u8] = include_bytes!("../tests/keys/rsa2048key.pkcs8.der"); + const RSA_4096_KEY: &[u8] = include_bytes!("../tests/keys/rsa4096key.pkcs8.der"); + const ED25519_KEY: &[u8] = include_bytes!("../tests/keys/edd25519_v2.der"); + const PKCS8_KEYS: &[&[u8]] = &[ + NIST_P256_KEY_PKCS8, + NIST_P384_KEY_PKCS8, + NIST_P521_KEY_PKCS8, + RSA_2048_KEY_PKCS8, + RSA_4096_KEY, + ED25519_KEY, ]; - for (key_bytes, expected_check_fn) in test_cases.iter() { - assert!(expected_check_fn( - &PrivateKeyDer::try_from(*key_bytes).unwrap() + for &bytes in PKCS8_KEYS { + assert!(matches!( + PrivateKeyDer::try_from(bytes).unwrap(), + PrivateKeyDer::Pkcs8(_) )); } }