Struct uefi::proto::tcg::v1::Tcg

source ·
#[repr(C)]
pub struct Tcg { /* private fields */ }
Expand description

Protocol for interacting with TPM 1.1 and 1.2 devices.

The corresponding C type is EFI_TCG_PROTOCOL.

Implementations§

source§

impl Tcg

source

pub fn status_check(&mut self) -> Result<StatusCheck<'_>>

Get information about the protocol and TPM device, as well as the TPM event log.

source

pub fn log_event(&mut self, event: &PcrEvent) -> Result

Add an entry to the event log without extending a PCR.

Usually hash_log_extend_event should be used instead. An entry added via log_event cannot be verified, so it is mainly intended for adding an informational entry.

source

pub fn hash_log_extend_event( &mut self, event: &mut PcrEvent, data_to_hash: Option<&[u8]> ) -> Result

Extend a PCR and add an entry to the event log.

If data_to_hash is None then the digest field of the event should be used as-is. Otherwise, the digest field will be overwritten with the SHA-1 hash of the data.

source

pub fn pass_through_to_tpm( &mut self, input_parameter_block: &[u8], output_parameter_block: &mut [u8] ) -> Result

Send a command directly to the TPM.

Constructing the input block and parsing the output block are outside the scope of this crate. See the TPM 1.2 Main Specification documents for details of these blocks, in particular Part 3, Commands.

Note that TPM structures are big endian.

Trait Implementations§

source§

impl Debug for Tcg

source§

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

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

impl Identify for Tcg

source§

const GUID: Guid = _

Unique protocol identifier.
source§

impl Protocol for Tcg

Auto Trait Implementations§

§

impl Freeze for Tcg

§

impl RefUnwindSafe for Tcg

§

impl Send for Tcg

§

impl Sync for Tcg

§

impl Unpin for Tcg

§

impl UnwindSafe for Tcg

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> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<P> ProtocolPointer for P
where P: Protocol,

source§

unsafe fn ptr_from_ffi(ptr: *const c_void) -> *const P

Create a const pointer to a Protocol from a c_void pointer. Read more
source§

unsafe fn mut_ptr_from_ffi(ptr: *mut c_void) -> *mut P

Create a mutable pointer to a Protocol from a c_void pointer. Read more
source§

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

§

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>,

§

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.