use tss_keyfile::TPMKey;
#[test]
fn test_der_round_trip() {
let pubkey = vec![0x01, 0x02, 0x03, 0x04];
let privkey = vec![0x05, 0x06, 0x07, 0x08];
let parent = 0x40000001;
let original = TPMKey::new_loadable(parent, &pubkey, &privkey);
let der_encoded = original.try_to_der().unwrap();
let decoded = TPMKey::try_from_der(&der_encoded).unwrap();
assert_eq!(original, decoded);
}
#[cfg(feature = "pem")]
#[test]
fn test_pem_round_trip() {
let pubkey = vec![0x01, 0x02, 0x03, 0x04];
let privkey = vec![0x05, 0x06, 0x07, 0x08];
let parent = 0x40000001;
let original = TPMKey::new_loadable(parent, &pubkey, &privkey);
let pem_encoded = original.try_to_pem().unwrap();
let decoded = TPMKey::try_from_pem(pem_encoded.as_bytes()).unwrap();
assert_eq!(original, decoded);
}
#[test]
fn test_complex_key_serialization() {
let pubkey = vec![0x01; 256];
let privkey = vec![0x02; 128];
let parent = 0x81000001;
let mut key = TPMKey::new_importable(parent, &pubkey, &privkey);
key.secret = Some(vec![0x03; 32].into());
key.description = Some("Test Key".into());
key.empty_auth = Some(false);
key.rsa_parent = Some(true);
let der_encoded = key.try_to_der().unwrap();
let decoded = TPMKey::try_from_der(&der_encoded).unwrap();
assert_eq!(key, decoded);
}