Skip to main content

Error

Enum Error 

Source
#[non_exhaustive]
pub enum Error {
Show 18 variants Io(Error), InvalidHeader, UnsupportedVersion(u32), RetiredFormat, Authentication, Encryption, KeyDerivation, InvalidKdfParams, InvalidVault, VaultExists, VaultNotFound, VaultLocked, VaultUnlocked, InvalidEntryName(String), EntryNotFound(String), EntryExists(String), MalformedPayload, Operation(String),
}
Expand description

Errors returned by krypton operations.

Variants are deliberately coarse-grained: cryptographic failures never reveal whether the password was wrong or the data was tampered with, and internal details (key material, paths inside the vault) are never included in error text.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Io(Error)

Underlying filesystem I/O failed.

§

InvalidHeader

The container header is malformed or truncated.

§

UnsupportedVersion(u32)

The container format version is not supported by this build.

§

RetiredFormat

The file uses a retired pre-0.4 krypton format. Re-encrypt or extract it with krypton 0.3 before use; no retired reader remains.

§

Authentication

AEAD authentication failed — wrong password, corrupted data, or deliberate tampering.

§

Encryption

Symmetric encryption failed.

§

KeyDerivation

Argon2id key derivation failed.

§

InvalidKdfParams

KDF parameters are outside the accepted safety bounds.

§

InvalidVault

A vault-level structure could not be parsed.

§

VaultExists

The vault has already been initialized.

§

VaultNotFound

The vault does not exist or is missing required structures.

§

VaultLocked

The operation requires an unlocked vault.

§

VaultUnlocked

The vault is already unlocked.

§

InvalidEntryName(String)

An entry name violates naming rules (empty, too long, path separators, .. components).

§

EntryNotFound(String)

The requested entry does not exist in the vault.

§

EntryExists(String)

An entry with this name already exists.

§

MalformedPayload

Serialization/deserialization of an encrypted structure failed after successful decryption.

§

Operation(String)

A user-level operation could not be performed (e.g. password confirmation mismatch).

Trait Implementations§

Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Error

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for Error

Source§

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

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl !UnwindSafe for Error

§

impl Freeze for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.