cortexai_encryption/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum CryptoError {
8 #[error("encryption failed: {0}")]
10 EncryptionFailed(String),
11
12 #[error("decryption failed: {0}")]
14 DecryptionFailed(String),
15
16 #[error("invalid key length: expected {expected}, got {got}")]
18 InvalidKeyLength { expected: usize, got: usize },
19
20 #[error("invalid nonce length: expected {expected}, got {got}")]
22 InvalidNonceLength { expected: usize, got: usize },
23
24 #[error("key derivation failed: {0}")]
26 KeyDerivationFailed(String),
27
28 #[error("invalid ciphertext format: {0}")]
30 InvalidCiphertext(String),
31
32 #[error("key not found for version {0}")]
34 KeyNotFound(u32),
35
36 #[error("serialization error: {0}")]
38 SerializationError(String),
39
40 #[error("base64 decode error: {0}")]
42 Base64Error(String),
43}
44
45impl From<serde_json::Error> for CryptoError {
46 fn from(err: serde_json::Error) -> Self {
47 CryptoError::SerializationError(err.to_string())
48 }
49}
50
51impl From<base64::DecodeError> for CryptoError {
52 fn from(err: base64::DecodeError) -> Self {
53 CryptoError::Base64Error(err.to_string())
54 }
55}
56
57pub type CryptoResult<T> = Result<T, CryptoError>;