pub trait ExtendableOutputCore: UpdateCore + BufferKindUserwhere
    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,{
    type ReaderCore: XofReaderCore;

    // Required method
    fn finalize_xof_core(
        &mut self,
        buffer: &mut BlockBuffer<Self::BlockSize, Self::BufferKind>
    ) -> Self::ReaderCore;
}
Expand description

Core trait for hash functions with extendable (XOF) output size.

Required Associated Types§

source

type ReaderCore: XofReaderCore

XOF reader core state.

Required Methods§

source

fn finalize_xof_core( &mut self, buffer: &mut BlockBuffer<Self::BlockSize, Self::BufferKind> ) -> Self::ReaderCore

Retrieve XOF reader using remaining data stored in the block buffer and leave hasher in a dirty state.

Implementations on Foreign Types§

§

impl ExtendableOutputCore for TurboShake256Core

§

type ReaderCore = TurboShake256ReaderCore

§

fn finalize_xof_core( &mut self, buffer: &mut BlockBuffer<<TurboShake256Core as BlockSizeUser>::BlockSize, <TurboShake256Core as BufferKindUser>::BufferKind> ) -> <TurboShake256Core as ExtendableOutputCore>::ReaderCore

§

impl ExtendableOutputCore for TurboShake128Core

§

type ReaderCore = TurboShake128ReaderCore

§

fn finalize_xof_core( &mut self, buffer: &mut BlockBuffer<<TurboShake128Core as BlockSizeUser>::BlockSize, <TurboShake128Core as BufferKindUser>::BufferKind> ) -> <TurboShake128Core as ExtendableOutputCore>::ReaderCore

§

impl ExtendableOutputCore for CShake128Core

§

type ReaderCore = CShake128ReaderCore

§

fn finalize_xof_core( &mut self, buffer: &mut BlockBuffer<<CShake128Core as BlockSizeUser>::BlockSize, <CShake128Core as BufferKindUser>::BufferKind> ) -> <CShake128Core as ExtendableOutputCore>::ReaderCore

§

impl ExtendableOutputCore for Shake128Core

§

type ReaderCore = Shake128ReaderCore

§

fn finalize_xof_core( &mut self, buffer: &mut BlockBuffer<<Shake128Core as BlockSizeUser>::BlockSize, <Shake128Core as BufferKindUser>::BufferKind> ) -> <Shake128Core as ExtendableOutputCore>::ReaderCore

§

impl ExtendableOutputCore for CShake256Core

§

type ReaderCore = CShake256ReaderCore

§

fn finalize_xof_core( &mut self, buffer: &mut BlockBuffer<<CShake256Core as BlockSizeUser>::BlockSize, <CShake256Core as BufferKindUser>::BufferKind> ) -> <CShake256Core as ExtendableOutputCore>::ReaderCore

§

impl ExtendableOutputCore for Shake256Core

§

type ReaderCore = Shake256ReaderCore

§

fn finalize_xof_core( &mut self, buffer: &mut BlockBuffer<<Shake256Core as BlockSizeUser>::BlockSize, <Shake256Core as BufferKindUser>::BufferKind> ) -> <Shake256Core as ExtendableOutputCore>::ReaderCore

Implementors§