logo

Trait hmac::Mac

source · []
pub trait Mac: OutputSizeUser {
    fn new(key: &GenericArray<u8, Self::KeySize>) -> 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: &GenericArray<u8, Self::OutputSize>
    ) -> 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

Create new value from fixed size key.

Create new value from variable size key.

Update state using the provided data.

Process input data in a chained manner.

Obtain the result of a Mac computation as a CtOutput and consume Mac instance.

Obtain the result of a Mac computation as a CtOutput and reset Mac instance.

Reset MAC instance to its initial state.

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.

Check truncated tag correctness using right side bytes (i.e. tag[n..]) of calculated tag.

Returns Error if tag is not valid or empty.

Implementors