use thiserror::Error;
#[derive(Clone, Error, Debug, PartialEq)]
pub enum Error {
#[error("Base64 decode: {0}")]
Base64Decode(#[from] base64::DecodeError),
#[error("Invalid Length for HKDF: {0}")]
HkdfLength(usize),
#[error("Invalid Length for HMAC: {0}")]
HmacLength(#[from] chacha20::cipher::InvalidLength),
#[error("Invalid MAC")]
InvalidMac,
#[error("Invalid Padding")]
InvalidPadding,
#[error("Message is empty")]
MessageIsEmpty,
#[error("Message is too long")]
MessageIsTooLong,
#[error("Encryption format is not yet supported")]
UnsupportedFutureVersion,
#[error("Encryption format is unknown")]
UnknownVersion,
#[error("UTF8 Decode: {0}")]
Utf8Decode(#[from] std::string::FromUtf8Error),
}