apple_cryptokit/
error.rs

1/// CryptoKit error type
2#[derive(Debug, PartialEq, Clone)]
3pub enum CryptoKitError {
4    /// Invalid key
5    InvalidKey,
6    /// Invalid nonce
7    InvalidNonce,
8    /// Invalid input parameter
9    InvalidInput(String),
10    /// Encryption failed
11    EncryptionFailed,
12    /// Decryption failed
13    DecryptionFailed,
14    /// Signature generation failed
15    SignatureFailed,
16    /// Signature verification failed
17    VerificationFailed,
18    /// Signing operation failed
19    SigningFailed,
20    /// Key generation failed
21    KeyGenerationFailed,
22    /// Nonce generation failed
23    NonceGenerationFailed,
24    /// Key derivation failed
25    DerivationFailed,
26    /// Invalid data length
27    InvalidLength,
28    /// Swift FFI call error
29    SwiftCallFailed,
30}
31
32impl std::fmt::Display for CryptoKitError {
33    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
34        match self {
35            CryptoKitError::InvalidKey => write!(f, "Invalid key"),
36            CryptoKitError::InvalidNonce => write!(f, "Invalid nonce"),
37            CryptoKitError::InvalidInput(msg) => write!(f, "Invalid input: {}", msg),
38            CryptoKitError::EncryptionFailed => write!(f, "Encryption failed"),
39            CryptoKitError::DecryptionFailed => write!(f, "Decryption failed"),
40            CryptoKitError::SignatureFailed => write!(f, "Signature generation failed"),
41            CryptoKitError::VerificationFailed => write!(f, "Signature verification failed"),
42            CryptoKitError::SigningFailed => write!(f, "Signing operation failed"),
43            CryptoKitError::KeyGenerationFailed => write!(f, "Key generation failed"),
44            CryptoKitError::NonceGenerationFailed => write!(f, "Nonce generation failed"),
45            CryptoKitError::DerivationFailed => write!(f, "Key derivation failed"),
46            CryptoKitError::InvalidLength => write!(f, "Invalid data length"),
47            CryptoKitError::SwiftCallFailed => write!(f, "Swift FFI call failed"),
48        }
49    }
50}
51
52impl std::error::Error for CryptoKitError {}
53
54/// Result type for this library
55pub type Result<T> = std::result::Result<T, CryptoKitError>;