Trait universal_hash::UniversalHash[][src]

pub trait UniversalHash: Clone {
    type BlockSize: ArrayLength<u8>;
    fn update(&mut self, block: &Block<Self>);
fn reset(&mut self);
fn finalize(self) -> Output<Self>; fn update_padded(&mut self, data: &[u8]) { ... }
fn finalize_reset(&mut self) -> Output<Self> { ... }
fn verify(self, other: &Block<Self>) -> Result<(), Error> { ... } }
Expand description

The UniversalHash trait defines a generic interface for universal hash functions.

Associated Types

Size of the inputs to and outputs from the universal hash function

Required methods

Input a block into the universal hash function

Reset UniversalHash instance.

Obtain the Output of a UniversalHash function and consume it.

Provided methods

Input data into the universal hash function. If the length of the data is not a multiple of the block size, the remaining data is padded with zeroes up to the BlockSize.

This approach is frequently used by AEAD modes which use Message Authentication Codes (MACs) based on universal hashing.

Obtain the Output of a UniversalHash computation and reset it back to its initial state.

Verify the UniversalHash of the processed input matches a given Output. This is useful when constructing Message Authentication Codes (MACs) from universal hash functions.

Implementors