Make escrow bag an optional pairing file field

This commit is contained in:
Jackson Coxson
2025-12-23 08:18:41 -07:00
parent 328224d46c
commit 35c3d61355

View File

@@ -38,7 +38,7 @@ pub struct PairingFile {
/// Host identifier /// Host identifier
pub host_id: String, pub host_id: String,
/// Escrow bag allowing for access while locked /// Escrow bag allowing for access while locked
pub escrow_bag: Vec<u8>, pub escrow_bag: Option<Vec<u8>>,
/// Device's WiFi MAC address /// Device's WiFi MAC address
pub wifi_mac_address: String, pub wifi_mac_address: String,
/// Device's Unique Device Identifier (optional) /// Device's Unique Device Identifier (optional)
@@ -73,7 +73,7 @@ struct RawPairingFile {
system_buid: String, system_buid: String,
#[serde(rename = "HostID")] #[serde(rename = "HostID")]
host_id: String, host_id: String,
escrow_bag: Data, escrow_bag: Option<Data>, // None on Apple Watch
#[serde(rename = "WiFiMACAddress")] #[serde(rename = "WiFiMACAddress")]
wifi_mac_address: String, wifi_mac_address: String,
#[serde(rename = "UDID")] #[serde(rename = "UDID")]
@@ -206,7 +206,7 @@ impl TryFrom<RawPairingFile> for PairingFile {
root_certificate: CertificateDer::from_pem_slice(&root_certificate_pem)?, root_certificate: CertificateDer::from_pem_slice(&root_certificate_pem)?,
system_buid: value.system_buid, system_buid: value.system_buid,
host_id: value.host_id, host_id: value.host_id,
escrow_bag: value.escrow_bag.into(), escrow_bag: value.escrow_bag.map(|x| x.into()),
wifi_mac_address: value.wifi_mac_address, wifi_mac_address: value.wifi_mac_address,
udid: value.udid, udid: value.udid,
}) })
@@ -230,7 +230,7 @@ impl TryFrom<RawPairingFile> for PairingFile {
root_certificate: X509::from_pem(&Into::<Vec<u8>>::into(value.root_certificate))?, root_certificate: X509::from_pem(&Into::<Vec<u8>>::into(value.root_certificate))?,
system_buid: value.system_buid, system_buid: value.system_buid,
host_id: value.host_id, host_id: value.host_id,
escrow_bag: value.escrow_bag.into(), escrow_bag: value.escrow_bag.map(|x| x.into()),
wifi_mac_address: value.wifi_mac_address, wifi_mac_address: value.wifi_mac_address,
udid: value.udid, udid: value.udid,
}) })
@@ -258,7 +258,7 @@ impl From<PairingFile> for RawPairingFile {
root_certificate: Data::new(root_cert_data), root_certificate: Data::new(root_cert_data),
system_buid: value.system_buid, system_buid: value.system_buid,
host_id: value.host_id.clone(), host_id: value.host_id.clone(),
escrow_bag: Data::new(value.escrow_bag), escrow_bag: value.escrow_bag.map(Data::new),
wifi_mac_address: value.wifi_mac_address, wifi_mac_address: value.wifi_mac_address,
udid: value.udid, udid: value.udid,
} }
@@ -278,7 +278,7 @@ impl TryFrom<PairingFile> for RawPairingFile {
root_certificate: Data::new(value.root_certificate.to_pem()?), root_certificate: Data::new(value.root_certificate.to_pem()?),
system_buid: value.system_buid, system_buid: value.system_buid,
host_id: value.host_id.clone(), host_id: value.host_id.clone(),
escrow_bag: Data::new(value.escrow_bag), escrow_bag: value.escrow_bag.map(Data::new),
wifi_mac_address: value.wifi_mac_address, wifi_mac_address: value.wifi_mac_address,
udid: value.udid, udid: value.udid,
}) })