Struct digest::core_api::CtVariableCoreWrapper [−][src]
pub struct CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero, { /* fields omitted */ }
This is supported on crate feature
core-api
only.Expand description
Wrapper around VariableOutputCore
which selects output size
at compile time.
Trait Implementations
impl<T, OutSize> AlgorithmName for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore + AlgorithmName,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> AlgorithmName for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore + AlgorithmName,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
Write algorithm name into f
.
impl<T, OutSize> BlockSizeUser for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> BlockSizeUser for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> BufferKindUser for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> BufferKindUser for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
type BufferKind = T::BufferKind
type BufferKind = T::BufferKind
Block buffer kind over which type operates.
impl<T: Clone, OutSize: Clone> Clone for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T: Clone, OutSize: Clone> Clone for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> Default for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> Default for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> FixedOutputCore for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize> + 'static,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> FixedOutputCore for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize> + 'static,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
fn finalize_fixed_core(
&mut self,
buffer: &mut Buffer<Self>,
out: &mut GenericArray<u8, Self::OutputSize>
)
fn finalize_fixed_core(
&mut self,
buffer: &mut Buffer<Self>,
out: &mut GenericArray<u8, Self::OutputSize>
)
Finalize state using remaining data stored in the provided block buffer,
write result into provided array and leave self
in a dirty state. Read more
impl<T, OutSize> OutputSizeUser for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize> + 'static,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> OutputSizeUser for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize> + 'static,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
type OutputSize = OutSize
type OutputSize = OutSize
Size of the output in bytes.
impl<T, OutSize> Reset for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> Reset for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> UpdateCore for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> UpdateCore for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
Update state using the provided data blocks.
impl<T, OutSize> HashMarker for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore + HashMarker,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
impl<T, OutSize> MacMarker for CtVariableCoreWrapper<T, OutSize> where
T: VariableOutputCore + MacMarker,
OutSize: ArrayLength<u8> + IsLessOrEqual<T::OutputSize>,
LeEq<OutSize, T::OutputSize>: NonZero,
T::BlockSize: IsLess<U256>,
Le<T::BlockSize, U256>: NonZero,
Auto Trait Implementations
impl<T, OutSize> RefUnwindSafe for CtVariableCoreWrapper<T, OutSize> where
OutSize: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, OutSize> Send for CtVariableCoreWrapper<T, OutSize> where
OutSize: Send,
T: Send,
impl<T, OutSize> Sync for CtVariableCoreWrapper<T, OutSize> where
OutSize: Sync,
T: Sync,
impl<T, OutSize> Unpin for CtVariableCoreWrapper<T, OutSize> where
OutSize: Unpin,
T: Unpin,
impl<T, OutSize> UnwindSafe for CtVariableCoreWrapper<T, OutSize> where
OutSize: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more