use std::fmt;
#[derive(Debug)]
pub enum Error {
UnsupportedAlgorithm(String),
InvalidKey(String),
Decryption(String),
Signature(String),
InvalidHashFormat(String),
Base64(String),
Hex(String),
Random(String),
InvalidParameter(String),
Internal(String),
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::UnsupportedAlgorithm(msg) => write!(f, "unsupported or insecure algorithm: {msg}"),
Error::InvalidKey(msg) => write!(f, "invalid key: {msg}"),
Error::Decryption(msg) => write!(f, "decryption failed: {msg}"),
Error::Signature(msg) => write!(f, "signature failed: {msg}"),
Error::InvalidHashFormat(msg) => write!(f, "invalid hash format: {msg}"),
Error::Base64(msg) => write!(f, "base64 error: {msg}"),
Error::Hex(msg) => write!(f, "hex error: {msg}"),
Error::Random(msg) => write!(f, "random error: {msg}"),
Error::InvalidParameter(msg) => write!(f, "invalid parameter: {msg}"),
Error::Internal(msg) => write!(f, "internal error: {msg}"),
}
}
}
impl std::error::Error for Error {}
pub type Result<T> = std::result::Result<T, Error>;