#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub enum AeadBackend {
Native,
Swift,
Wasm,
Kotlin,
}
impl core::fmt::Display for AeadBackend {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let name = match self {
AeadBackend::Native => "native",
AeadBackend::Swift => "swift",
AeadBackend::Wasm => "wasm",
AeadBackend::Kotlin => "kotlin",
};
write!(f, "{name}")
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub enum AeadFailureKind {
InvalidKeyMaterial,
LengthOverflow,
ShortCiphertext,
InvalidOutputLength,
AuthenticationFailed,
BackendFailure,
}
impl core::fmt::Display for AeadFailureKind {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let detail = match self {
AeadFailureKind::InvalidKeyMaterial => "invalid key material",
AeadFailureKind::LengthOverflow => "length overflow",
AeadFailureKind::ShortCiphertext => "ciphertext shorter than tag",
AeadFailureKind::InvalidOutputLength => "backend returned invalid output length",
AeadFailureKind::AuthenticationFailed => "authentication failed",
AeadFailureKind::BackendFailure => "backend failure",
};
write!(f, "{detail}")
}
}