Trait otter_nodejs_tests::digest::core_api::VariableOutputCore
source · [−]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.
Associated Constants
const TRUNC_SIDE: TruncSide
const TRUNC_SIDE: TruncSide
Side which should be used in a truncated result.
Required methods
fn new(output_size: usize) -> Result<Self, InvalidOutputSize>
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(
&mut self,
buffer: &mut BlockBuffer<Self::BlockSize, Self::BufferKind>,
out: &mut GenericArray<u8, Self::OutputSize>
)
fn finalize_variable_core(
&mut self,
buffer: &mut BlockBuffer<Self::BlockSize, Self::BufferKind>,
out: &mut GenericArray<u8, Self::OutputSize>
)
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.