pub trait Mac: OutputSizeUser + Sized {
fn new(key: &Key<Self>) -> Self
where
Self: KeyInit;
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
where
Self: KeyInit;
fn update(&mut self, data: &[u8]);
fn chain_update(self, data: impl AsRef<[u8]>) -> Self;
fn finalize(self) -> CtOutput<Self>;
fn finalize_reset(&mut self) -> CtOutput<Self>
where
Self: FixedOutputReset;
fn reset(&mut self)
where
Self: Reset;
fn verify(self, tag: &Output<Self>) -> Result<(), MacError>;
fn verify_slice(self, tag: &[u8]) -> Result<(), MacError>;
fn verify_truncated_left(self, tag: &[u8]) -> Result<(), MacError>;
fn verify_truncated_right(self, tag: &[u8]) -> Result<(), MacError>;
}
Expand description
Convinience wrapper trait covering functionality of Message Authentication algorithms.
This trait wraps KeyInit
, Update
, FixedOutput
, and MacMarker
traits and provides additional convenience methods.
Required Methods
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength> where
Self: KeyInit,
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength> where
Self: KeyInit,
Create new value from variable size key.
fn chain_update(self, data: impl AsRef<[u8]>) -> Self
fn chain_update(self, data: impl AsRef<[u8]>) -> Self
Process input data in a chained manner.
fn finalize_reset(&mut self) -> CtOutput<Self> where
Self: FixedOutputReset,
fn finalize_reset(&mut self) -> CtOutput<Self> where
Self: FixedOutputReset,
Check if tag/code value is correct for the processed input.
Check truncated tag correctness using all bytes of calculated tag.
Returns Error
if tag
is not valid or not equal in length
to MAC’s output.
Check truncated tag correctness using left side bytes
(i.e. tag[..n]
) of calculated tag.
Returns Error
if tag
is not valid or empty.