pub struct SealingKeysSynchronousProxy { /* private fields */ }
Implementations§
Source§impl SealingKeysSynchronousProxy
impl SealingKeysSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<SealingKeysEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<SealingKeysEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
Sourcepub fn create_sealing_key(
&self,
key_info: &[u8],
___deadline: MonotonicInstant,
) -> Result<SealingKeysCreateSealingKeyResult, Error>
pub fn create_sealing_key( &self, key_info: &[u8], ___deadline: MonotonicInstant, ) -> Result<SealingKeysCreateSealingKeyResult, Error>
Generates a new sealing key to seal and unseal secrets.
|key_info| is information to be cryptographically bound to the returned key.
- The client will have to supply it in all uses (other than key deletion) of the returned key.
- It serves two purposes: (1) internally by the key manager to identify the key owner and (2) as a password to mitigate potential attacks from the key manager and as well as other clients.
- It is recommended to include sufficient entropy in it (using it as a password) to mitigage potential attacks from the secure world (the key manager’s execution environment) or from other clients.
- It is acceptible to pass a constant if deriving and persisting a password is too cumbersome and the client fully trust the secure world and there are not many other clients.
The client is responsible for persisting both |key_info| and the returned |key_blob|. The key blob is encrypted with a TEE-private key. It is guaranteed to be unique for each call (even with the same key info). It can be stored in unsecure storage.
Returns:
- The sealing key if everything worked.
- FAILED_CREATE if the key creation failed, e.g., the |key_info| was empty.
Sourcepub fn seal(
&self,
key_info: &[u8],
key_blob: &[u8],
secret: &[u8],
___deadline: MonotonicInstant,
) -> Result<SealingKeysSealResult, Error>
pub fn seal( &self, key_info: &[u8], key_blob: &[u8], secret: &[u8], ___deadline: MonotonicInstant, ) -> Result<SealingKeysSealResult, Error>
Seals a secret using a sealing key identified by its info and blob:
- The key info has to match the one supplied when generating the sealing key.
Note that the secret may be a key itself. It has no bearing on the seal operation.
Returns:
- The sealed secret if everything worked.
- FAILED_SEAL if the sealing failed, e.g., sealing key info or blob mismatch.
Sourcepub fn unseal(
&self,
key_info: &[u8],
key_blob: &[u8],
sealed_secret: &[u8],
___deadline: MonotonicInstant,
) -> Result<SealingKeysUnsealResult, Error>
pub fn unseal( &self, key_info: &[u8], key_blob: &[u8], sealed_secret: &[u8], ___deadline: MonotonicInstant, ) -> Result<SealingKeysUnsealResult, Error>
Unseals a sealed secret using a sealing key identified by its info and blob:
- The key info has to match the one supplied when generating the sealing key.
- The key blob has to match the one used to seal the secret.
Note that the secret may be a key itself. It has no bearing on the unseal operation.
Returns:
- The unsealed secret if everything worked.
- FAILED_UNSEAL if the unsealing failed, e.g., sealing key info or blob mismatch.
Trait Implementations§
Source§impl Debug for SealingKeysSynchronousProxy
impl Debug for SealingKeysSynchronousProxy
Source§impl From<Channel> for SealingKeysSynchronousProxy
impl From<Channel> for SealingKeysSynchronousProxy
Source§impl From<SealingKeysSynchronousProxy> for Handle
impl From<SealingKeysSynchronousProxy> for Handle
Source§fn from(value: SealingKeysSynchronousProxy) -> Self
fn from(value: SealingKeysSynchronousProxy) -> Self
Source§impl FromClient for SealingKeysSynchronousProxy
impl FromClient for SealingKeysSynchronousProxy
Source§type Protocol = SealingKeysMarker
type Protocol = SealingKeysMarker
Source§fn from_client(value: ClientEnd<SealingKeysMarker>) -> Self
fn from_client(value: ClientEnd<SealingKeysMarker>) -> Self
Source§impl SynchronousProxy for SealingKeysSynchronousProxy
impl SynchronousProxy for SealingKeysSynchronousProxy
Source§type Proxy = SealingKeysProxy
type Proxy = SealingKeysProxy
Source§type Protocol = SealingKeysMarker
type Protocol = SealingKeysMarker
Proxy
controls.