Skip to main content

Firmware

Struct Firmware 

Source
pub struct Firmware(/* private fields */);

Implementations§

Source§

impl Firmware

Source

pub fn open() -> Result<Firmware>

Create a handle to the CSV platform.

Source

pub fn platform_reset(&mut self) -> Result<(), Indeterminate<Error>>

Reset the platform persistent state.

Source

pub fn platform_status(&mut self) -> Result<Status, Indeterminate<Error>>

Query the platform status.

Source

pub fn pek_generate(&mut self) -> Result<(), Indeterminate<Error>>

Generate a new Platform Encryption Key (PEK).

Source

pub fn pek_csr(&mut self) -> Result<Certificate, Indeterminate<Error>>

Request a signature for the PEK.

Source

pub fn pdh_generate(&mut self) -> Result<(), Indeterminate<Error>>

Generate a new Platform Diffie-Hellman (PDH) key pair.

Source

pub fn pdh_cert_export(&mut self) -> Result<Chain, Indeterminate<Error>>

Export the CSV certificate chain.

Source

pub fn pek_cert_import( &mut self, pek: &Certificate, oca: &Certificate, ) -> Result<(), Indeterminate<Error>>

Take ownership of the CSV platform.

Source

pub fn get_identifier(&mut self) -> Result<Identifier, Indeterminate<Error>>

Get the unique CPU identifier.

This is especially helpful for sending HYGON an HTTP request to fetch the signed CEK certificate.

Trait Implementations§

Source§

impl AsRawFd for Firmware

Source§

fn as_raw_fd(&self) -> RawFd

Extracts the raw file descriptor. Read more

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> 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, 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,