[][src]Struct tss_esapi::abstraction::transient::TransientKeyContext

pub struct TransientKeyContext { /* fields omitted */ }

Structure offering an abstracted programming experience.

The TransientKeyContext makes use of a root key from which the other, client-controlled keyes are derived.

Currently, only functionality necessary for RSA key creation and usage (for signing and verifying signatures) is implemented.

Methods

impl TransientKeyContext[src]

pub fn create_rsa_signing_key(
    &mut self,
    key_size: usize,
    auth_size: usize
) -> Result<(TpmsContext, Vec<u8>)>
[src]

Create a new RSA signing key.

The key is created with most parameters defaulted as described for the get_rsa_public method. The authentication value is generated by the TPM and returned along with the key context.

Constraints

  • key_size must be 1024 or 2048
  • auth_size must be at most 32

Errors

  • if the authentication size is given larger than 32 or if the requested key size is not 1024 or 2048, a WrongParamSize wrapper error is returned
  • errors are returned if any method calls return an error: Context::get_random, TransientKeyContext::set_session_attrs, Context::create_key, Context::load, Context::context_save, Context::context_flush

pub fn load_external_rsa_public_key(
    &mut self,
    public_key: &[u8]
) -> Result<TpmsContext>
[src]

Load a previously generated RSA public key.

Returns the key context.

Constraints

  • public_key must be 128 or 256 elements long

Errors

  • if the public key length is different than 1024 or 2048 bits, a WrongParamSize wrapper error is returned
  • errors are returned if any method calls return an error: TransientKeyContext::set_session_attrs, Context::load_external_public, Context::context_save, Context::flush_context`

pub fn read_public_key(&mut self, key_context: TpmsContext) -> Result<Vec<u8>>[src]

Read the public part from a previously generated key.

The method takes the key as a parameter and returns its public part.

Errors

  • errors are returned if any method calls return an error: Context::context_load, Context::read_public, Context::flush_context, TransientKeyContext::set_session_attrs

pub fn sign(
    &mut self,
    key_context: TpmsContext,
    key_auth: &[u8],
    digest: &[u8]
) -> Result<Signature>
[src]

Sign a digest with an existing key.

Takes the key as a parameter, signs and returns the signature.

Errors

  • errors are returned if any method calls return an error: Context::context_load, Context::sign, Context::flush_context, TransientKeyContext::set_session_attrs Context::set_handle_auth

pub fn verify_signature(
    &mut self,
    key_context: TpmsContext,
    digest: &[u8],
    signature: Signature
) -> Result<TpmtTkVerified>
[src]

Verify a signature against a digest.

Given a digest, a key and a signature, this method returns a Verified ticket if the verification was successful.

Errors

  • if the verification fails (i.e. the signature is invalid), a TPM error is returned
  • errors are returned if any method calls return an error: Context::context_load, Context::verify_signature, Context::flush_context, TransientKeyContext::set_session_attrs

Trait Implementations

impl Debug for TransientKeyContext[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Free for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.