Skip to main content

clasp_crypto/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum CryptoError {
5    #[error("encryption failed: {0}")]
6    EncryptionFailed(String),
7
8    #[error("decryption failed: {0}")]
9    DecryptionFailed(String),
10
11    #[error("key derivation failed: {0}")]
12    KeyDerivationFailed(String),
13
14    #[error("invalid key: {0}")]
15    InvalidKey(String),
16
17    #[error("signing failed: {0}")]
18    SigningFailed(String),
19
20    #[error("verification failed: {0}")]
21    VerificationFailed(String),
22
23    #[error("serialization error: {0}")]
24    Serialization(String),
25
26    #[error("storage error: {0}")]
27    Storage(String),
28
29    #[error("session destroyed")]
30    SessionDestroyed,
31
32    #[error("no group key available")]
33    NoGroupKey,
34
35    #[error("TOFU key change rejected for peer: {0}")]
36    TofuViolation(String),
37
38    #[error("{0}")]
39    Other(String),
40}
41
42pub type Result<T> = std::result::Result<T, CryptoError>;