[−][src]Struct tss_esapi::abstraction::transient::TransientKeyContext
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]
&mut self,
key_size: usize,
auth_size: usize
) -> Result<(TpmsContext, Vec<u8>)>
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 2048auth_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]
&mut self,
public_key: &[u8]
) -> Result<TpmsContext>
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]
&mut self,
key_context: TpmsContext,
key_auth: &[u8],
digest: &[u8]
) -> Result<Signature>
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]
&mut self,
key_context: TpmsContext,
digest: &[u8],
signature: Signature
) -> Result<TpmtTkVerified>
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
Auto Trait Implementations
impl RefUnwindSafe for TransientKeyContext
impl Send for TransientKeyContext
impl Sync for TransientKeyContext
impl Unpin for TransientKeyContext
impl UnwindSafe for TransientKeyContext
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[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]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,