pub struct LaunchMeasurementV2 {
pub vmsa: Vec<u8>,
pub value: Vec<u8>,
}Expand description
Generation 2 launch measurement: pre-VMSA digest and raw VMSA bytes stored separately so the vCPU count can change without invalidating the signed system version.
Fields§
§vmsa: Vec<u8>Raw oak_sev_guest::vmsa::Vmsa bytes shared by all vCPUs.
value: Vec<u8>SHA-384 digest of all measured pages except VMSA pages.
Implementations§
Source§impl LaunchMeasurementV2
impl LaunchMeasurementV2
Sourcepub fn try_resolve(
&self,
vcpus: usize,
) -> Result<[u8; 48], LaunchMeasurementError>
pub fn try_resolve( &self, vcpus: usize, ) -> Result<[u8; 48], LaunchMeasurementError>
Resolves the full 48-byte launch measurement by applying the VMSA page update once per vCPU.
§Errors
Returns an error if the measurement is not 48 bytes or the VMSA is larger than 4096 bytes.
Trait Implementations§
Source§impl Clone for LaunchMeasurementV2
impl Clone for LaunchMeasurementV2
Source§fn clone(&self) -> LaunchMeasurementV2
fn clone(&self) -> LaunchMeasurementV2
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LaunchMeasurementV2
impl Debug for LaunchMeasurementV2
Source§impl<'de> Deserialize<'de> for LaunchMeasurementV2
impl<'de> Deserialize<'de> for LaunchMeasurementV2
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for LaunchMeasurementV2
impl RefUnwindSafe for LaunchMeasurementV2
impl Send for LaunchMeasurementV2
impl Sync for LaunchMeasurementV2
impl Unpin for LaunchMeasurementV2
impl UnsafeUnpin for LaunchMeasurementV2
impl UnwindSafe for LaunchMeasurementV2
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more