diff --git a/dpe b/dpe index c145caf8e0..e89d899bae 160000 --- a/dpe +++ b/dpe @@ -1 +1 @@ -Subproject commit c145caf8e080778aa87c54920bad94b8dd8e8011 +Subproject commit e89d899bae4732e795475f1476a0680353b3ce23 diff --git a/runtime/src/dpe_platform.rs b/runtime/src/dpe_platform.rs index 3519276946..f757f67bb0 100644 --- a/runtime/src/dpe_platform.rs +++ b/runtime/src/dpe_platform.rs @@ -39,7 +39,7 @@ pub struct DpePlatform<'a> { not_before: &'a NotBefore, not_after: &'a NotAfter, dmtf_device_info: Option<&'a [u8]>, - ueid: Option<&'a [u8; 17]>, + ueid: Option<&'a Ueid>, } pub const VENDOR_ID: u32 = u32::from_be_bytes(*b"CTRA"); @@ -53,7 +53,7 @@ impl<'a> DpePlatform<'a> { not_before: &'a NotBefore, not_after: &'a NotAfter, dmtf_device_info: Option<&'a [u8]>, - ueid: Option<&'a [u8; 17]>, + ueid: Option<&'a Ueid>, ) -> Self { Self { auto_init_locality, @@ -196,6 +196,6 @@ impl Platform for DpePlatform<'_> { } fn get_ueid(&mut self) -> Result { - Ok(*self.ueid.ok_or(PlatformError::MissingUeidError)?) + Ok(self.ueid.ok_or(PlatformError::MissingUeidError)?.clone()) } } diff --git a/runtime/src/invoke_dpe.rs b/runtime/src/invoke_dpe.rs index 0951b33420..8a7e849504 100644 --- a/runtime/src/invoke_dpe.rs +++ b/runtime/src/invoke_dpe.rs @@ -15,6 +15,7 @@ Abstract: use crate::{ CptraDpeTypes, DpeCrypto, DpeEnv, DpePlatform, Drivers, PauserPrivileges, PL0_PAUSER_FLAG, }; +use arrayvec::ArrayVec; use caliptra_cfi_derive_git::cfi_impl_fn; use caliptra_common::mailbox_api::{InvokeDpeReq, InvokeDpeResp, MailboxResp, MailboxRespHeader}; use caliptra_drivers::{CaliptraError, CaliptraResult}; @@ -64,7 +65,7 @@ impl InvokeDpeCmd { ); let pl0_pauser = pdata.manifest1.header.pl0_pauser; let (nb, nf) = Drivers::get_cert_validity_info(&pdata.manifest1); - let ueid = &drivers.soc_ifc.fuse_bank().ueid(); + let ueid = ArrayVec::from(drivers.soc_ifc.fuse_bank().ueid()); let mut env = DpeEnv:: { crypto, platform: DpePlatform::new( @@ -74,7 +75,7 @@ impl InvokeDpeCmd { &nb, &nf, None, - Some(ueid), + Some(&ueid), ), };