pub struct SeedStoreCommitter<'a> {
pub seed_store: &'a dyn SeedStore,
}Expand description
RestoreCommitter for a plain or hardened VTA: the seed lives in the
configured secret store, and the JWT key is written at boot by the restore.
Fields§
§seed_store: &'a dyn SeedStoreTrait Implementations§
Source§impl RestoreCommitter for SeedStoreCommitter<'_>
impl RestoreCommitter for SeedStoreCommitter<'_>
Source§fn prepare<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_secrets: &'life1 RestoredSecrets<'life2>,
) -> Pin<Box<dyn Future<Output = Result<PreparedCommit, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn prepare<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_secrets: &'life1 RestoredSecrets<'life2>,
) -> Pin<Box<dyn Future<Output = Result<PreparedCommit, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Validate that the target can adopt
secrets and compute anything the
stage must bind to. Must not change what the next boot starts from.Source§fn commit<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
secrets: &'life1 RestoredSecrets<'life2>,
_prepared: PreparedCommit,
) -> Pin<Box<dyn Future<Output = Result<(), AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn commit<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
secrets: &'life1 RestoredSecrets<'life2>,
_prepared: PreparedCommit,
) -> Pin<Box<dyn Future<Output = Result<(), AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Make the restored seed the one the next boot starts from. After this
returns the staged restore opens, and the next boot applies it.
Source§fn abort<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn abort<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The import failed after
Self::prepare and before a successful
Self::commit: undo whatever prepare did to the running VTA (an
enclave freezes its integrity sealer there). The VTA carries on as it
was.Auto Trait Implementations§
impl<'a> !RefUnwindSafe for SeedStoreCommitter<'a>
impl<'a> !UnwindSafe for SeedStoreCommitter<'a>
impl<'a> Freeze for SeedStoreCommitter<'a>
impl<'a> Send for SeedStoreCommitter<'a>
impl<'a> Sync for SeedStoreCommitter<'a>
impl<'a> Unpin for SeedStoreCommitter<'a>
impl<'a> UnsafeUnpin for SeedStoreCommitter<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more