use core::fmt;
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Error {
WeakSharedSecret,
KeyDerivation,
Decrypt,
OutOfOrder,
SequenceExhausted,
MalformedFrame,
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let msg = match self {
Error::WeakSharedSecret => "weak (all-zero) Diffie-Hellman shared secret",
Error::KeyDerivation => "key derivation failed",
Error::Decrypt => "AEAD authentication/decryption failed",
Error::OutOfOrder => "frame sequence number out of order",
Error::SequenceExhausted => "sequence counter exhausted",
Error::MalformedFrame => "malformed frame",
};
f.write_str(msg)
}
}