#[non_exhaustive]pub enum RekeyError {
Show 15 variants
WrongSourceKey,
WrongDestinationKey,
SourceReplaced(String),
SourceNotFound(String),
CorruptSource(String),
VerificationMismatch(String),
DestinationExists(String),
DestinationNotFound(String),
CorruptDestination(String),
DestinationReplaced(String),
UnsafeDestination(String),
InvalidKey(String),
Io(Error),
Database(String),
Panicked(String),
}Expand description
Typed error for DbKeyStore::rekey and rekey_at.
Every malformed-database and wrong-key case returns one of these variants;
the operation never unwinds or aborts (a panic escaping the underlying
database layer is caught and reported as RekeyError::Panicked).
Messages never contain secret material.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
WrongSourceKey
The source database could not be decrypted with the supplied key/cipher.
WrongDestinationKey
The destination database could not be decrypted with the supplied
key/cipher. Produced by DbKeyStore::verify (and verify_at),
which re-open an existing destination candidate; rekey itself always
creates a fresh destination and cannot produce this.
SourceReplaced(String)
The source directory entry stopped referring to the file that was validated at the start of the operation (it was replaced mid-rekey).
SourceNotFound(String)
The source database file does not exist or is not a regular file.
CorruptSource(String)
The source is not a readable db-keystore database (corrupt, not a database, or missing the credentials table). An encrypted source opened without any key also lands here, since it is indistinguishable from a non-database file.
VerificationMismatch(String)
Source and destination records did not compare exactly equal.
DestinationExists(String)
The destination path already exists (including as a symlink).
DestinationNotFound(String)
The destination database does not exist or is not a regular file.
Produced only by verification, which requires an existing destination
(rekey requires the opposite; see RekeyError::DestinationExists).
CorruptDestination(String)
The destination is not a readable db-keystore database (corrupt, not a database, or missing the credentials table). Produced only by verification; rekey always creates its destination.
DestinationReplaced(String)
The destination directory entry stopped referring to the file that was
validated at the start of a verification (it was replaced mid-verify).
The rekey entry points report the same condition as
RekeyError::UnsafeDestination.
UnsafeDestination(String)
The destination could not be created safely, or the directory entry no longer refers to the file that was created.
InvalidKey(String)
A key or cipher parameter was malformed.
Io(Error)
Filesystem error.
Database(String)
Other database-layer error.
Panicked(String)
A panic escaped the database layer and was converted into an error.
The payload is best-effort diagnostic text with no stable format: it is captured from whatever code panicked, length-bounded, and stripped of control characters at capture time. Do not parse it.
Trait Implementations§
Source§impl Debug for RekeyError
impl Debug for RekeyError
Source§impl Display for RekeyError
impl Display for RekeyError
Source§impl Error for RekeyError
impl Error for RekeyError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl !RefUnwindSafe for RekeyError
impl !UnwindSafe for RekeyError
impl Freeze for RekeyError
impl Send for RekeyError
impl Sync for RekeyError
impl Unpin for RekeyError
impl UnsafeUnpin for RekeyError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<K, Q> Comparable<Q> for K
impl<K, Q> Comparable<Q> for K
Source§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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>
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