pub(crate) struct WrappedLocalUserDataKey(pub(crate) EncString);Expand description
An indirect symmetric key for encrypting local user data (e.g. password generator history). Enables offline decryption of local data after a key rotation: only the wrapped key is re-encrypted; the local user data key itself stays intact.
Tuple Fields§
§0: EncStringImplementations§
Source§impl WrappedLocalUserDataKey
impl WrappedLocalUserDataKey
Sourcepub(crate) fn from_context_user_key(
ctx: &mut KeyStoreContext<'_, KeySlotIds>,
) -> Result<Self, LocalUserDataKeyError>
pub(crate) fn from_context_user_key( ctx: &mut KeyStoreContext<'_, KeySlotIds>, ) -> Result<Self, LocalUserDataKeyError>
Create a user key, wrapped by the user key.
Sourcepub(crate) fn rewrap_with_user_key(
&self,
old_wrapping_key_id: SymmetricKeySlotId,
ctx: &mut KeyStoreContext<'_, KeySlotIds>,
) -> Result<Self, LocalUserDataKeyError>
pub(crate) fn rewrap_with_user_key( &self, old_wrapping_key_id: SymmetricKeySlotId, ctx: &mut KeyStoreContext<'_, KeySlotIds>, ) -> Result<Self, LocalUserDataKeyError>
Re-wrap an existing wrapped local user data key, preserving the inner key plaintext but
changing the wrapping key from old_wrapping_key_id to the current
SymmetricKeySlotId::User.
Used during V1→V2 user-key upgrades: the wrapped key was previously sealed with the V1 user key and must be re-sealed with the V2 user key so that local data encrypted under the local user data key remains decryptable after rotation.
Sourcepub(crate) fn unwrap_to_context(
&self,
ctx: &mut KeyStoreContext<'_, KeySlotIds>,
) -> Result<(), LocalUserDataKeyError>
pub(crate) fn unwrap_to_context( &self, ctx: &mut KeyStoreContext<'_, KeySlotIds>, ) -> Result<(), LocalUserDataKeyError>
Unwrap the local user data key and set it in the context under the
SymmetricKeySlotId::LocalUserData key id.
Trait Implementations§
Source§impl Clone for WrappedLocalUserDataKey
impl Clone for WrappedLocalUserDataKey
Source§fn clone(&self) -> WrappedLocalUserDataKey
fn clone(&self) -> WrappedLocalUserDataKey
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WrappedLocalUserDataKey
impl Debug for WrappedLocalUserDataKey
Source§impl From<&LocalUserDataKeyState> for WrappedLocalUserDataKey
impl From<&LocalUserDataKeyState> for WrappedLocalUserDataKey
Source§fn from(state: &LocalUserDataKeyState) -> Self
fn from(state: &LocalUserDataKeyState) -> Self
Source§impl From<WrappedLocalUserDataKey> for LocalUserDataKeyState
impl From<WrappedLocalUserDataKey> for LocalUserDataKeyState
Source§fn from(wrapped_key: WrappedLocalUserDataKey) -> Self
fn from(wrapped_key: WrappedLocalUserDataKey) -> Self
Auto Trait Implementations§
impl Freeze for WrappedLocalUserDataKey
impl RefUnwindSafe for WrappedLocalUserDataKey
impl Send for WrappedLocalUserDataKey
impl Sync for WrappedLocalUserDataKey
impl Unpin for WrappedLocalUserDataKey
impl UnsafeUnpin for WrappedLocalUserDataKey
impl UnwindSafe for WrappedLocalUserDataKey
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
§unsafe fn consume_handle(handle: Handle) -> Arc<T>
unsafe fn consume_handle(handle: Handle) -> Arc<T>
Arc<> Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more