pub struct PcrSelection { /* private fields */ }
Expand description

This module contains the PcrSelection struct. The TSS counterpart of this struct is the TPMS_PCR_SELECTION.

Implementations§

source§

impl PcrSelection

source

pub fn create( hashing_algorithm: HashingAlgorithm, size_of_select: PcrSelectSize, selected_pcr_slots: &[PcrSlot] ) -> Result<Self>

Creates new PcrSelection

Errors

Returns InconsistentParams error if a pcr slot has been provided that ends up in an octet outside the range specified by the size_of_select parameter.

source

pub const fn hashing_algorithm(&self) -> HashingAlgorithm

Returns the hashing algorithm for the selection

source

pub const fn size_of_select(&self) -> PcrSelectSize

Returns ‘Size of Select’

NB! This is not the same as how many PcrSlot there are in the selection but rather how many octets that are needed to hold the bit field that indicate what slots that are selected.

source

pub fn selected(&self) -> Vec<PcrSlot>

Returns the selected pcrs.

source

pub fn is_selected(&self, pcr_slot: PcrSlot) -> bool

Returns true if the specified PcrSlot is selected in the PcrSelection.

source

pub fn deselect_exact(&mut self, pcr_slot: PcrSlot) -> Result<()>

Removes the specified PcrSlots from the selected pcrs.

Errors

If one of the specified pcr slots does not exist in the selected pcrs.

source

pub fn deselect(&mut self, pcr_slot: PcrSlot)

Removes the specified PcrSlots from the selected pcrs.

source

pub fn merge_exact(&mut self, other: &Self) -> Result<()>

Merges another PcrSelection into self if the elements in the collection does not already exist in self.

Constraints
  • Cannot be called with other that has a hashing_algorithm that is different from the one in self.
  • Cannot be called with other that has a size_of_select that is different from the one in self.
  • Cannot be called with otherthat contains pcr slots present in self.
Errors

Returns InvalidParam if there is a hashing algorithm mismatch Returns InvalidParam if there is size of select mismatch. Returns InvalidParam if other contains items that are present in self

source

pub fn subtract_exact(&mut self, other: &Self) -> Result<()>

Removes the selected pcr slots in other from selfif none of the pcr slots are present in self.

Constraints
  • Cannot be called with other that has a hashing_algorithm that is different from the one in self.
  • Cannot be called with other that has a size_of_select that is different from the one in self.
  • Cannot be called with otherthat contains pcr slots not present in self.
source

pub fn is_empty(&self) -> bool

Indicates whether the pcr selection is empty.

Trait Implementations§

source§

impl Clone for PcrSelection

source§

fn clone(&self) -> PcrSelection

Returns a copy 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 PcrSelection

source§

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

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

impl From<PcrSelection> for TPMS_PCR_SELECTION

source§

fn from(pcr_selection: PcrSelection) -> Self

Converts to this type from the input type.
source§

impl PartialEq<PcrSelection> for PcrSelection

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<TPMS_PCR_SELECTION> for PcrSelection

§

type Error = Error

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

fn try_from(tss_pcr_selection: TPMS_PCR_SELECTION) -> Result<Self>

Performs the conversion.
source§

impl Copy for PcrSelection

source§

impl Eq for PcrSelection

source§

impl StructuralEq for PcrSelection

source§

impl StructuralPartialEq for PcrSelection

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> Free for T

source§

default unsafe fn free(ptr_ref: NonNull<T>)

Drops the content pointed by this pointer and frees it. 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 Twhere 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 Twhere T: Clone,

§

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 Twhere 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 Twhere 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.