use pki::{PrivateKey, PrivateKeyType}; fn do_test(key: PrivateKey) { let der = key.to_der().unwrap(); let parsed = PrivateKey::from_der(&der).unwrap(); assert_eq!(parsed.to_der().unwrap(), der); let pkcs8 = key.to_pkcs8_der("test").unwrap(); PrivateKey::from_pkcs8_der(&pkcs8, "test").unwrap(); let pkcs8 = key.to_pkcs8_pem().unwrap(); PrivateKey::from_pkcs8_pem(&pkcs8).unwrap(); } #[test] fn test_private_key() { let key = PrivateKey::new_ec(384).unwrap(); assert_eq!(key.bits(), 384); assert_eq!(key.key_type(), PrivateKeyType::Ec); do_test(key); let key = PrivateKey::new_ec(256).unwrap(); assert_eq!(key.bits(), 256); assert_eq!(key.key_type(), PrivateKeyType::Ec); do_test(key); let key = PrivateKey::new_rsa(2048).unwrap(); assert_eq!(key.bits(), 2048); assert_eq!(key.key_type(), PrivateKeyType::Rsa); do_test(key); let key = PrivateKey::new_rsa(4096).unwrap(); assert_eq!(key.bits(), 4096); assert_eq!(key.key_type(), PrivateKeyType::Rsa); do_test(key); }