1use thiserror::Error;
2
3pub type EnigmaAeadResult<T> = Result<T, EnigmaAeadError>;
4
5#[derive(Debug, Error, PartialEq, Eq)]
6pub enum EnigmaAeadError {
7 #[error("invalid packet: {0}")]
8 InvalidPacket(&'static str),
9 #[error("unsupported version {0}")]
10 UnsupportedVersion(u8),
11 #[error("unsupported algorithm {0}")]
12 UnsupportedAlgorithm(u8),
13 #[error("aead operation failed")]
14 AeadError,
15 #[error("size limit exceeded")]
16 SizeLimitExceeded,
17 #[error("cryptographic failure")]
18 CryptoError,
19}
20
21impl From<chacha20poly1305::aead::Error> for EnigmaAeadError {
22 fn from(_: chacha20poly1305::aead::Error) -> Self {
23 EnigmaAeadError::AeadError
24 }
25}