1use thiserror::Error;
2
3#[derive(Debug, Clone, PartialEq, Eq, Error)]
5#[non_exhaustive]
6pub enum CryptoError {
7 #[error("JCS does not support Infinity or NaN")]
9 JcsInvalidNumber,
10 #[error("Cannot canonicalize type")]
12 JcsUnsupportedType,
13 #[error("Invalid UUID: {0}")]
15 InvalidUuid(String),
16 #[error("Invalid hex: {0}")]
18 InvalidHex(String),
19 #[error("Salt must be 16 bytes")]
21 InvalidSalt,
22 #[error("At least one recipient required")]
24 NoRecipients,
25 #[error("Recipient {0} not found")]
27 RecipientNotFound(u32),
28 #[error("Payload hash mismatch")]
30 PayloadHashMismatch,
31 #[error("Signature verification failed: {0}")]
33 SignatureError(String),
34 #[error("Encryption error: {0}")]
36 EncryptionError(String),
37 #[error("Decryption error: {0}")]
39 DecryptionError(String),
40 #[error("Key wrapping error: {0}")]
42 KeyWrapError(String),
43 #[error("Serialization error: {0}")]
45 SerializationError(String),
46}