Trait universal_hash::UniversalHash
source · pub trait UniversalHash: BlockSizeUser + Sized {
// Required methods
fn update_with_backend(
&mut self,
f: impl UhfClosure<BlockSize = Self::BlockSize>,
);
fn finalize(self) -> Block<Self>;
// Provided methods
fn update(&mut self, blocks: &[Block<Self>]) { ... }
fn update_padded(&mut self, data: &[u8]) { ... }
fn finalize_reset(&mut self) -> Block<Self>
where Self: Clone + Reset { ... }
fn verify(self, expected: &Block<Self>) -> Result<(), Error> { ... }
}
Expand description
The UniversalHash
trait defines a generic interface for universal hash
functions.
Required Methods§
sourcefn update_with_backend(
&mut self,
f: impl UhfClosure<BlockSize = Self::BlockSize>,
)
fn update_with_backend( &mut self, f: impl UhfClosure<BlockSize = Self::BlockSize>, )
Update hash function state using the provided rank-2 closure.
Provided Methods§
sourcefn update(&mut self, blocks: &[Block<Self>])
fn update(&mut self, blocks: &[Block<Self>])
Update hash function state with the provided block.
sourcefn 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.
sourcefn finalize_reset(&mut self) -> Block<Self>
fn finalize_reset(&mut self) -> Block<Self>
Obtain the [Output
] of a UniversalHash
computation and reset it back
to its initial state.
Object Safety§
This trait is not object safe.