[−][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. More precisely, the RSA SSA asymmetric scheme with SHA256 is used for all created and imported keys.
Methods
impl TransientKeyContext
[src]
pub fn create_rsa_signing_key(
&mut self,
key_size: u16,
auth_size: usize
) -> Result<(TpmsContext, Vec<u8>)>
[src]
&mut self,
key_size: u16,
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
create_unrestricted_signing_rsa_public
function. The authentication value is
generated by the TPM. Key size is provided by user as a parameter, and must be
given in bits.
If successful, the result contains the saved context of the key and a vector of bytes forming the authentication value for said key.
Constraints
key_size
must be 1024, 2048, 3072 or 4096auth_size
must be at most 32
Errors
- if the authentication size is larger than 32 or if the requested key size is not
1024, 2048, 3072 or 4096, 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, 256, 384 or 512 bytes (i.e. slice elements) long, corresponding to 1024, 2048, 3072 or 4096 bits
Errors
- if the public key length is different than 128, 256, 384 or 512 bytes, 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>,