Skip to main content

TpmField

Trait TpmField 

Source
pub trait TpmField<'a> {
    type View;

    // Required method
    fn cast_prefix_field(buf: &'a [u8]) -> TpmResult<(Self::View, &'a [u8])>;
}
Expand description

Reads one field from a TPM wire structure.

Required Associated Types§

Required Methods§

Source

fn cast_prefix_field(buf: &'a [u8]) -> TpmResult<(Self::View, &'a [u8])>

Reads the first field from buf and returns the remaining bytes.

§Errors

Returns Err(TpmError) when buf does not start with a valid field.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'a, T: TpmCast + ?Sized + 'a> TpmField<'a> for T

Source§

impl<'a, T: TpmField<'a> + Copy, const CAPACITY: usize> TpmField<'a> for TpmList<T, CAPACITY>

Source§

type View = &'a Tpml<CAPACITY>

Source§

impl<'a, const CAPACITY: usize> TpmField<'a> for TpmBuffer<CAPACITY>

Source§

type View = &'a Tpm2b<CAPACITY>

Source§

impl<'a> TpmField<'a> for Tpm2bAttest
where TpmsAttest: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for Tpm2bCreationData
where TpmsCreationData: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for Tpm2bEccPoint
where TpmsEccPoint: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for Tpm2bIdObject
where TpmsIdObject: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for Tpm2bNvPublic2
where TpmtNvPublic2: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for Tpm2bNvPublic
where TpmsNvPublic: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for Tpm2bPublic
where TpmtPublic: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for Tpm2bSensitive
where TpmtSensitive: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for Tpm2bSensitiveCreate
where TpmsSensitiveCreate: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmAlgId

Source§

impl<'a> TpmField<'a> for TpmAt

Source§

impl<'a> TpmField<'a> for TpmCap

Source§

impl<'a> TpmField<'a> for TpmCc

Source§

impl<'a> TpmField<'a> for TpmClockAdjust

Source§

impl<'a> TpmField<'a> for TpmEccCurve

Source§

impl<'a> TpmField<'a> for TpmEo

Source§

impl<'a> TpmField<'a> for TpmHt

Source§

impl<'a> TpmField<'a> for TpmPt

Source§

impl<'a> TpmField<'a> for TpmRcBase

Source§

impl<'a> TpmField<'a> for TpmRh

Source§

impl<'a> TpmField<'a> for TpmSe

Source§

impl<'a> TpmField<'a> for TpmSt

Source§

impl<'a> TpmField<'a> for TpmSu

Source§

impl<'a> TpmField<'a> for TpmaAlgorithm

Source§

impl<'a> TpmField<'a> for TpmaCc

Source§

impl<'a> TpmField<'a> for TpmaLocality

Source§

impl<'a> TpmField<'a> for TpmaNv

Source§

impl<'a> TpmField<'a> for TpmaNvExp

Source§

impl<'a> TpmField<'a> for TpmaObject

Source§

impl<'a> TpmField<'a> for TpmaSession

Source§

impl<'a> TpmField<'a> for TpmiEccKeyExchange

Source§

impl<'a> TpmField<'a> for TpmiYesNo

Source§

impl<'a> TpmField<'a> for TpmsAcOutput
where TpmAt: for<'b> TpmField<'b>, TpmUint32: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsAlgProperty
where TpmAlgId: for<'b> TpmField<'b>, TpmaAlgorithm: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsAlgorithmDetailEcc
where TpmEccCurve: for<'b> TpmField<'b>, TpmUint16: for<'b> TpmField<'b>, TpmtKdfScheme: for<'b> TpmField<'b>, TpmtEccScheme: for<'b> TpmField<'b>, Tpm2bEccParameter: for<'b> TpmField<'b> + for<'b> TpmField<'b> + for<'b> TpmField<'b> + for<'b> TpmField<'b> + for<'b> TpmField<'b> + for<'b> TpmField<'b> + for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsAuthCommand
where TpmHandle: for<'b> TpmField<'b>, Tpm2bNonce: for<'b> TpmField<'b>, TpmaSession: for<'b> TpmField<'b>, Tpm2bAuth: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsAuthResponse
where Tpm2bNonce: for<'b> TpmField<'b>, TpmaSession: for<'b> TpmField<'b>, Tpm2bAuth: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsCertifyInfo
where Tpm2bName: for<'b> TpmField<'b> + for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsClockInfo
where TpmUint64: for<'b> TpmField<'b>, TpmUint32: for<'b> TpmField<'b> + for<'b> TpmField<'b>, TpmiYesNo: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsCommandAuditInfo
where TpmUint64: for<'b> TpmField<'b>, TpmAlgId: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b> + for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsContext
where TpmUint64: for<'b> TpmField<'b>, TpmHandle: for<'b> TpmField<'b>, TpmRh: for<'b> TpmField<'b>, Tpm2b: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsCreationData
where TpmlPcrSelection: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>, TpmaLocality: for<'b> TpmField<'b>, TpmAlgId: for<'b> TpmField<'b>, Tpm2bName: for<'b> TpmField<'b> + for<'b> TpmField<'b>, Tpm2bData: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsCreationInfo
where Tpm2bName: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsEccParms
where TpmtSymDefObject: for<'b> TpmField<'b>, TpmtEccScheme: for<'b> TpmField<'b>, TpmEccCurve: for<'b> TpmField<'b>, TpmtKdfScheme: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsEccPoint
where Tpm2bEccParameter: for<'b> TpmField<'b> + for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsEmpty

Source§

impl<'a> TpmField<'a> for TpmsIdObject
where Tpm2bDigest: for<'b> TpmField<'b> + for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsKeyedhashParms
where TpmtKeyedhashScheme: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsNvCertifyInfo
where Tpm2bName: for<'b> TpmField<'b>, TpmUint16: for<'b> TpmField<'b>, Tpm2bMaxNvBuffer: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsNvDigestCertifyInfo
where Tpm2bName: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsNvPublic
where TpmHandle: for<'b> TpmField<'b>, TpmAlgId: for<'b> TpmField<'b>, TpmaNv: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>, TpmUint16: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsNvPublicExpAttr
where TpmiRhNvExpIndex: for<'b> TpmField<'b>, TpmAlgId: for<'b> TpmField<'b>, TpmaNvExp: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>, TpmUint16: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsPcrSelect

Source§

type View = &'a [u8]

Source§

impl<'a> TpmField<'a> for TpmsPcrSelection

Source§

type View = (TpmAlgId, &'a [u8])

Source§

impl<'a> TpmField<'a> for TpmsQuoteInfo
where TpmlPcrSelection: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsRsaParms
where TpmtSymDefObject: for<'b> TpmField<'b>, TpmtRsaScheme: for<'b> TpmField<'b>, TpmUint16: for<'b> TpmField<'b>, TpmUint32: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsSchemeHash
where TpmiAlgHash: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsSchemeXor
where TpmiAlgHash: for<'b> TpmField<'b>, TpmtKdfScheme: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsSensitiveCreate
where Tpm2bAuth: for<'b> TpmField<'b>, Tpm2bSensitiveData: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsSessionAuditInfo
where TpmiYesNo: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsSignatureEcc
where TpmAlgId: for<'b> TpmField<'b>, Tpm2bEccParameter: for<'b> TpmField<'b> + for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsSignatureRsa
where TpmAlgId: for<'b> TpmField<'b>, Tpm2bPublicKeyRsa: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsSymcipherParms
where TpmtSymDefObject: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsTaggedProperty
where TpmPt: for<'b> TpmField<'b>, TpmUint32: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsTimeAttestInfo
where TpmsTimeInfo: for<'b> TpmField<'b>, TpmUint64: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmsTimeInfo
where TpmUint64: for<'b> TpmField<'b>, TpmsClockInfo: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmtEccScheme

Source§

impl<'a> TpmField<'a> for TpmtHa

Source§

impl<'a> TpmField<'a> for TpmtKdfScheme

Source§

impl<'a> TpmField<'a> for TpmtKeyedhashScheme

Source§

impl<'a> TpmField<'a> for TpmtNvPublic2

Source§

impl<'a> TpmField<'a> for TpmtPublicParms

Source§

impl<'a> TpmField<'a> for TpmtRsaDecrypt

Source§

impl<'a> TpmField<'a> for TpmtRsaScheme

Source§

impl<'a> TpmField<'a> for TpmtSigScheme

Source§

impl<'a> TpmField<'a> for TpmtSignature

Source§

impl<'a> TpmField<'a> for TpmtSymDef

Source§

impl<'a> TpmField<'a> for TpmtTkAuth
where TpmSt: for<'b> TpmField<'b>, TpmRh: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmtTkCreation
where TpmSt: for<'b> TpmField<'b>, TpmRh: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmtTkHashcheck
where TpmSt: for<'b> TpmField<'b>, TpmRh: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>,

Source§

impl<'a> TpmField<'a> for TpmtTkVerified
where TpmSt: for<'b> TpmField<'b>, TpmRh: for<'b> TpmField<'b>, Tpm2bDigest: for<'b> TpmField<'b>,