Trait universal_hash::UniversalHash
source · [−]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
type BlockSize: ArrayLength<u8>
type BlockSize: ArrayLength<u8>
Size of the inputs to and outputs from the universal hash function
Required methods
Reset UniversalHash
instance.
Obtain the Output
of a UniversalHash
function and consume it.
Provided methods
fn update_padded(&mut self, data: &[u8])
fn update_padded(&mut self, data: &[u8])
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.
fn finalize_reset(&mut self) -> Output<Self>
fn finalize_reset(&mut self) -> Output<Self>
Obtain the Output
of a UniversalHash
computation and reset it back
to its initial state.