logo
pub trait VariableOutputCore: UpdateCore + OutputSizeUser + BufferKindUser + Sized where
    Self::BlockSize: IsLess<U256>,
    Le<Self::BlockSize, U256>: NonZero
{ const TRUNC_SIDE: TruncSide; fn new(output_size: usize) -> Result<Self, InvalidOutputSize>;
fn finalize_variable_core(
        &mut self,
        buffer: &mut Buffer<Self>,
        out: &mut Output<Self>
    ); }
This is supported on crate feature core-api only.
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.

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.

Implementors