Skip to main content

BootIntegrity

Struct BootIntegrity 

Source
pub struct BootIntegrity {
    pub image_check: Option<String>,
    pub image_check_evidence: Option<String>,
    pub image_check_result: Option<String>,
    pub image_hash_algorithms: Vec<String>,
    pub image_signature_checked: bool,
    pub image_signature_evidence: Option<String>,
    pub image_check_failed: Option<String>,
    pub hab_fuse: Option<String>,
    pub hab_evidence: Option<String>,
    pub ubifs_unauthenticated: Option<String>,
    pub env_crc_failed: Option<String>,
}
Expand description

What the bootloader actually DID about verifying the image it booted, as opposed to what the environment says it is configured to do.

The distinction this type exists to preserve: a checksum is not a signature. Verifying Checksum ... OK proves the image was not corrupt. Anyone who can write the image can recompute the CRC, so it stops bit-rot, not an attacker. Only a signature establishes that the image came from the signer, and on i.MX none of it is enforced while the HAB fuse is unblown.

Unlike the engine, this does not raise findings for any of it: the Rust and browser detector sets are pinned to the same 14 labels, and a fifteenth would break that parity. The facts and the verdicts are what the two implementations share.

Fields§

§image_check: Option<String>

uimage_crc or fit_hash.

§image_check_evidence: Option<String>§image_check_result: Option<String>

passed, failed, or not_captured when the check began but the capture lost its result. “The check ran” is a different claim from “the check passed”.

§image_hash_algorithms: Vec<String>§image_signature_checked: bool§image_signature_evidence: Option<String>§image_check_failed: Option<String>§hab_fuse: Option<String>

not_enabled or enabled.

§hab_evidence: Option<String>§ubifs_unauthenticated: Option<String>§env_crc_failed: Option<String>

Trait Implementations§

Source§

impl Clone for BootIntegrity

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for BootIntegrity

Source§

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

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

impl Default for BootIntegrity

Source§

fn default() -> Self

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

impl Eq for BootIntegrity

Source§

impl PartialEq for BootIntegrity

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for BootIntegrity

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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.