Skip to main content

BootAttestation

Struct BootAttestation 

Source
#[repr(C)]
pub struct BootAttestation { pub rvf_hash: [u8; 32], pub capability_table_hash: [u8; 32], pub region_layout_hash: [u8; 32], pub boot_timestamp_ns: u64, pub boot_sequence: u64, pub platform_id: u64, pub reserved: [u8; 16], }
Expand description

Boot attestation entry recorded as the first witness log entry.

Contains cryptographic hashes of the initial system state for later verification and audit.

Fields§

§rvf_hash: [u8; 32]

SHA-256 hash of the RVF package that was booted.

§capability_table_hash: [u8; 32]

SHA-256 hash of the initial capability table.

§region_layout_hash: [u8; 32]

SHA-256 hash of the region layout.

§boot_timestamp_ns: u64

Boot timestamp in nanoseconds since UNIX epoch.

§boot_sequence: u64

Boot sequence number (for multi-boot detection).

§platform_id: u64

Platform identifier.

§reserved: [u8; 16]

Reserved for future use.

Implementations§

Source§

impl BootAttestation

Source

pub const SIZE: usize

Size of boot attestation in bytes.

Source

pub fn new( rvf_hash: [u8; 32], capability_table_hash: [u8; 32], region_layout_hash: [u8; 32], boot_timestamp_ns: u64, ) -> Self

Creates a new boot attestation.

Source

pub fn with_metadata( rvf_hash: [u8; 32], capability_table_hash: [u8; 32], region_layout_hash: [u8; 32], boot_timestamp_ns: u64, boot_sequence: u64, platform_id: u64, ) -> Self

Creates a boot attestation with full metadata.

Source

pub fn hash(&self) -> [u8; 32]

Computes the hash of this attestation.

Source

pub fn to_bytes(&self) -> [u8; 136]

Serializes the attestation to bytes.

Source

pub fn from_bytes(bytes: &[u8]) -> Option<Self>

Deserializes an attestation from bytes.

Source

pub fn verify(&self, expected_rvf_hash: &[u8; 32]) -> bool

Verifies that this attestation matches expected values.

Trait Implementations§

Source§

impl Clone for BootAttestation

Source§

fn clone(&self) -> BootAttestation

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BootAttestation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for BootAttestation

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for BootAttestation

Source§

fn eq(&self, other: &BootAttestation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for BootAttestation

Source§

impl Eq for BootAttestation

Source§

impl StructuralPartialEq for BootAttestation

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.