metamorphic_crypto/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum CryptoError {
8 #[error("base64 decode: {0}")]
10 Base64(#[from] base64::DecodeError),
11
12 #[error("decryption failed: invalid ciphertext or wrong key")]
14 Decryption,
15
16 #[error("invalid length: expected {expected} bytes, got {got}")]
18 InvalidLength {
19 expected: usize,
21 got: usize,
23 },
24
25 #[error("ciphertext too short to be valid")]
27 TooShort,
28
29 #[error("invalid key_hash format (expected `salt$argon2id`)")]
31 InvalidKeyHash,
32
33 #[error("invalid recovery key character")]
35 InvalidRecoveryKey,
36
37 #[error("key derivation failed: {0}")]
39 Kdf(String),
40
41 #[error("hybrid KEM: {0}")]
43 Hybrid(String),
44
45 #[error("UTF-8: {0}")]
47 Utf8(#[from] std::string::FromUtf8Error),
48}