pub enum KeyCustodyError {
MissingKek,
BadKek(String),
Encrypt,
Decrypt,
}Expand description
Errors from key custody. No variant ever carries key material or plaintext.
Variants§
MissingKek
No KEK is configured (FIRSTPASS_KEK / FIRSTPASS_KEK_FILE both unset).
BadKek(String)
A KEK was supplied but is unusable (wrong length, bad hex, unreadable file). The reason describes the shape of the failure only — never the key bytes.
Encrypt
Encryption failed (RNG or AEAD layer). Opaque by design.
Decrypt
Decryption/authentication failed — tamper, wrong KEK, wrong tenant, or truncated blob. Opaque by design: callers cannot tell which, so the type is not a decryption oracle.
Trait Implementations§
Source§impl Debug for KeyCustodyError
impl Debug for KeyCustodyError
Source§impl Display for KeyCustodyError
impl Display for KeyCustodyError
Source§impl Error for KeyCustodyError
impl Error for KeyCustodyError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for KeyCustodyError
impl RefUnwindSafe for KeyCustodyError
impl Send for KeyCustodyError
impl Sync for KeyCustodyError
impl Unpin for KeyCustodyError
impl UnsafeUnpin for KeyCustodyError
impl UnwindSafe for KeyCustodyError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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 moreCreates a shared type from an unshared type.