use super::replay;
use crate::{
AppPermissions, DetailedVersionInfo, Key, KeyCount, KeyPermissions, Permissions, VersionInfo,
};
replay!(metadata, "metadata.replay", |card| {
let mut out = [0; 0xffff];
let mut card = card
.authenticate_with_rnd_a(
0x00,
Key::Des([0; 8]),
Key::Des(hex_literal::hex!("32 c2 8f da fd 39 60 de")),
)
.await
.unwrap();
let (permissions, key_count) = card.get_key_settings().await.unwrap();
assert_eq!(
Permissions {
app: AppPermissions {
anyone_can_delete: true,
anyone_can_list: true,
can_change_key_settings: true,
can_change_picc_key: true,
},
key: KeyPermissions::RequiresPicc,
},
permissions,
);
assert_eq!(KeyCount::Des(1), key_count);
assert_eq!(0, card.get_key_version(0x00).await.unwrap());
assert_eq!(0, card.list_applications(&mut out).await.unwrap().len());
assert_eq!(
hex_literal::hex!("04 64 d5 9a dd 1e 90"),
card.get_uid().await.unwrap()
);
assert_eq!(
VersionInfo {
hardware: DetailedVersionInfo {
vendor_id: 4,
r#type: 1,
sub_type: 1,
major_version: 51,
minor_version: 0,
storage_size: 24,
protocol_type: 5
},
software: DetailedVersionInfo {
vendor_id: 4,
r#type: 1,
sub_type: 1,
major_version: 3,
minor_version: 0,
storage_size: 24,
protocol_type: 5
},
uid: [4, 100, 213, 154, 221, 30, 144],
production_batch_number: [33, 19, 98, 48, 48],
production_calendar_week: 64,
production_year: 36
},
card.get_version_info().await.unwrap()
);
});