Trait VariableOutputCore

trait VariableOutputCore: UpdateCore + OutputSizeUser + BufferKindUser + Sized
where
    <Self as >::BlockSize: IsLess<crypto_common::typenum::U256>,
    crypto_common::typenum::Le<<Self as >::BlockSize, crypto_common::typenum::U256>: NonZero

Core trait for hash functions with variable output size.

Maximum output size is equal to OutputSizeUser::OutputSize. Users are expected to truncate result returned by the finalize_variable_core to output_size passed to the new method during construction. Truncation side is defined by the TRUNC_SIDE associated constant.

Required Methods

fn new(output_size: usize) -> Result<Self, InvalidOutputSize>

Initialize hasher state for given output size.

Returns InvalidOutputSize if output_size is not valid for the algorithm, e.g. if it's bigger than the OutputSize associated type.

fn finalize_variable_core(self: &mut Self, buffer: &mut Buffer<Self>, out: &mut Output<Self>)

Finalize hasher and write full hashing result into the out buffer.

The result must be truncated to output_size used during hasher construction. Truncation side is defined by the TRUNC_SIDE associated constant.