use core::fmt;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Error {
EncapsulationFailed,
DecapsulationFailed,
CommitmentMismatch,
ReflectionDetected,
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::EncapsulationFailed => write!(f, "KEM encapsulation failed"),
Error::DecapsulationFailed => write!(f, "KEM decapsulation failed"),
Error::CommitmentMismatch => write!(f, "commitment verification failed"),
Error::ReflectionDetected => write!(f, "reflection attack detected"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for Error {}