pub trait Mac: OutputSizeUser + Sized {
Show 13 methods
// Required methods
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_reset(&mut self, tag: &Output<Self>) -> Result<(), MacError>
where Self: FixedOutputReset;
fn verify_slice(self, tag: &[u8]) -> Result<(), MacError>;
fn verify_slice_reset(&mut self, tag: &[u8]) -> Result<(), MacError>
where Self: FixedOutputReset;
fn verify_truncated_left(self, tag: &[u8]) -> Result<(), MacError>;
fn verify_truncated_right(self, tag: &[u8]) -> Result<(), MacError>;
}
Expand description
Convenience wrapper trait covering functionality of Message Authentication algorithms.
This trait wraps KeyInit
, Update
, FixedOutput
, and MacMarker
traits and provides additional convenience methods.
Required Methods§
Sourcefn 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.
Sourcefn chain_update(self, data: impl AsRef<[u8]>) -> Self
fn chain_update(self, data: impl AsRef<[u8]>) -> Self
Process input data in a chained manner.
Sourcefn finalize_reset(&mut self) -> CtOutput<Self>where
Self: FixedOutputReset,
fn finalize_reset(&mut self) -> CtOutput<Self>where
Self: FixedOutputReset,
Sourcefn verify(self, tag: &Output<Self>) -> Result<(), MacError>
fn verify(self, tag: &Output<Self>) -> Result<(), MacError>
Check if tag/code value is correct for the processed input.
Sourcefn verify_reset(&mut self, tag: &Output<Self>) -> Result<(), MacError>where
Self: FixedOutputReset,
fn verify_reset(&mut self, tag: &Output<Self>) -> Result<(), MacError>where
Self: FixedOutputReset,
Check if tag/code value is correct for the processed input and reset
Mac
instance.
Sourcefn verify_slice(self, tag: &[u8]) -> Result<(), MacError>
fn verify_slice(self, tag: &[u8]) -> Result<(), MacError>
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.
Sourcefn verify_slice_reset(&mut self, tag: &[u8]) -> Result<(), MacError>where
Self: FixedOutputReset,
fn verify_slice_reset(&mut self, tag: &[u8]) -> Result<(), MacError>where
Self: FixedOutputReset,
Check truncated tag correctness using all bytes
of calculated tag and reset Mac
instance.
Returns Error
if tag
is not valid or not equal in length
to MAC’s output.
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.