pub trait Mac: Sized {
type Key: AsRef<[u8]> + AsMut<[u8]> + Clone + Zeroize;
type Tag: AsRef<[u8]> + AsMut<[u8]> + Clone;
// Required methods
fn new(key: &[u8]) -> Result<Self>;
fn update(&mut self, data: &[u8]) -> Result<&mut Self>;
fn finalize(&mut self) -> Result<Self::Tag>;
fn reset(&mut self) -> Result<()>;
// Provided methods
fn compute_tag(key: &[u8], data: &[u8]) -> Result<Self::Tag> { ... }
fn verify_tag(key: &[u8], data: &[u8], tag: &[u8]) -> Result<bool> { ... }
}
Expand description
Trait for Message Authentication Code (MAC) algorithms
Required Associated Types§
Required Methods§
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.