Trait Mac

trait Mac: OutputSizeUser + Sized

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

fn new(key: &Key<Self>) -> Self
where
    Self: KeyInit

Create new value from fixed size key.

fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
where
    Self: KeyInit

Create new value from variable size key.

fn update(self: &mut Self, data: &[u8])

Update state using the provided data.

fn chain_update<impl AsRef<[u8]>: AsRef<[u8]>>(self: Self, data: impl AsRef<[u8]>) -> Self

Process input data in a chained manner.

fn finalize(self: Self) -> CtOutput<Self>

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

fn finalize_reset(self: &mut Self) -> CtOutput<Self>
where
    Self: FixedOutputReset

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

fn reset(self: &mut Self)
where
    Self: Reset

Reset MAC instance to its initial state.

fn verify(self: Self, tag: &Output<Self>) -> Result<(), MacError>

Check if tag/code value is correct for the processed input.

fn verify_reset(self: &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.

fn verify_slice(self: 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.

fn verify_slice_reset(self: &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.

fn verify_truncated_left(self: Self, tag: &[u8]) -> Result<(), MacError>

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

Returns Error if tag is not valid or empty.

fn verify_truncated_right(self: Self, tag: &[u8]) -> Result<(), MacError>

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