1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum TransitError {
8 #[error("key not found: {0}")]
10 KeyNotFound(String),
11
12 #[error("key already exists: {0}")]
14 KeyExists(String),
15
16 #[error("key version not found: {name} v{version}")]
18 VersionNotFound {
19 name: String,
21 version: u32,
23 },
24
25 #[error("key version {version} is below min_encryption_version {min}")]
27 VersionBelowMinEncryption {
28 version: u32,
30 min: u32,
32 },
33
34 #[error("key version {version} is below min_decryption_version {min}")]
36 VersionBelowMinDecryption {
37 version: u32,
39 min: u32,
41 },
42
43 #[error("invalid ciphertext format")]
45 InvalidCiphertext,
46
47 #[error("decryption failed")]
49 DecryptionFailed,
50
51 #[error("operation not allowed: {0}")]
53 OperationNotAllowed(String),
54
55 #[error("invalid key name: {0}")]
57 InvalidKeyName(String),
58
59 #[error("invalid key type: {0}")]
61 InvalidKeyType(String),
62
63 #[error("key is not exportable: {0}")]
65 NotExportable(String),
66
67 #[error("deletion not allowed for key: {0}")]
69 DeletionNotAllowed(String),
70
71 #[error("storage error: {0}")]
73 Storage(String),
74
75 #[error("crypto error: {0}")]
77 Crypto(String),
78}
79
80impl From<egide_crypto::CryptoError> for TransitError {
81 fn from(e: egide_crypto::CryptoError) -> Self {
82 TransitError::Crypto(e.to_string())
83 }
84}
85
86impl From<egide_storage::StorageError> for TransitError {
87 fn from(e: egide_storage::StorageError) -> Self {
88 TransitError::Storage(e.to_string())
89 }
90}