pub trait VariableOutputCore: UpdateCore + OutputSizeUser + BufferKindUser where
    Self::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>,
    <Self::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero
{ const TRUNC_SIDE: TruncSide; fn new(output_size: usize) -> Result<Self, InvalidOutputSize>; fn finalize_variable_core(
        &mut self,
        buffer: &mut BlockBuffer<Self::BlockSize, Self::BufferKind>,
        out: &mut GenericArray<u8, Self::OutputSize>
    ); }
Expand description

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 Associated Constants

Side which should be used in a truncated result.

Required Methods

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.

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.

Implementations on Foreign Types

Implementors