Trait hmac::Mac

source ·
pub trait Mac: OutputSizeUser + Sized {
    // Required methods
    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: &Array<u8, Self::OutputSize>) -> Result<(), MacError>;
    fn verify_reset(
        &mut self,
        tag: &Array<u8, Self::OutputSize>
    ) -> 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 Update, FixedOutput, and MacMarker traits and provides additional convenience methods.

Required Methods§

source

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

Update state using the provided data.

source

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

Process input data in a chained manner.

source

fn finalize(self) -> CtOutput<Self>

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

source

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

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

source

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

Reset MAC instance to its initial state.

source

fn verify(self, tag: &Array<u8, Self::OutputSize>) -> Result<(), MacError>

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

source

fn verify_reset( &mut self, tag: &Array<u8, Self::OutputSize> ) -> Result<(), MacError>
where Self: FixedOutputReset,

Check if tag/code value is correct for the processed input and reset Mac instance.

source

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.

source

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.

source

fn verify_truncated_left(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.

source

fn verify_truncated_right(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.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T> Mac for T