Anklang 0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
Ase::SHAKE_Base< HASHBITS, DOMAINBITS > Class Template Reference

Public Member Functions

size_t byte_rate () const
 
void reset ()
 
void update (const uint8_t *data, size_t length)
 
size_t get_hash (uint8_t hashvalue[HASHBITS/8])
 Switch from absorbing into squeezing mode and return digest.
 
void squeeze_digest (uint8_t *output, size_t n_out)
 Read out the current Keccak state and permute as needed.
 

Protected Member Functions

size_t xor_state (size_t offset, const uint8_t *input, size_t n_in)
 Add stream data up to block size into Keccak state via XOR.
 
void absorb_padding (size_t offset, uint8_t trail=0x01)
 
 SHAKE_Base (size_t rate)
 

Detailed Description

template<size_t HASHBITS, uint8_t DOMAINBITS>
class Ase::SHAKE_Base< HASHBITS, DOMAINBITS >

Definition at line 207 of file randomhash.cc.

Constructor & Destructor Documentation

◆ SHAKE_Base()

template<size_t HASHBITS, uint8_t DOMAINBITS>
Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::SHAKE_Base ( size_t  rate)
protected

Definition at line 241 of file randomhash.cc.

Member Function Documentation

◆ absorb_padding()

template<size_t HASHBITS, uint8_t DOMAINBITS>
void Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::absorb_padding ( size_t  offset,
uint8_t  trail = 0x01 
)
protected

Pad stream from offset to block boundary into Keccak state via XOR. The trail argument must contain the termination bit, optionally preceeded by additional (LSB) bits for domain separation. A permutation is carried out if the trailing padding bits do not fit into the remaining block length.

Definition at line 229 of file randomhash.cc.

References ASE_ASSERT_RETURN.

Referenced by Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::get_hash().

◆ byte_rate()

template<size_t HASHBITS, uint8_t DOMAINBITS>
size_t Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::byte_rate ( ) const

Definition at line 246 of file randomhash.cc.

◆ get_hash()

template<size_t HASHBITS, uint8_t DOMAINBITS>
size_t Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::get_hash ( uint8_t  hashvalue[HASHBITS/8])

Switch from absorbing into squeezing mode and return digest.

Definition at line 277 of file randomhash.cc.

References Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::absorb_padding(), and uint8_t.

Referenced by Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::squeeze_digest().

◆ reset()

template<size_t HASHBITS, uint8_t DOMAINBITS>
void Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::reset ( )

Definition at line 251 of file randomhash.cc.

◆ squeeze_digest()

template<size_t HASHBITS, uint8_t DOMAINBITS>
void Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::squeeze_digest ( uint8_t output,
size_t  n_out 
)

Read out the current Keccak state and permute as needed.

Definition at line 294 of file randomhash.cc.

References ASE_ASSERT_RETURN, Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::get_hash(), and std::min().

◆ update()

template<size_t HASHBITS, uint8_t DOMAINBITS>
void Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::update ( const uint8_t data,
size_t  length 
)

Definition at line 258 of file randomhash.cc.

◆ xor_state()

template<size_t HASHBITS, uint8_t DOMAINBITS>
size_t Ase::SHAKE_Base< HASHBITS, DOMAINBITS >::xor_state ( size_t  offset,
const uint8_t input,
size_t  n_in 
)
protected

Add stream data up to block size into Keccak state via XOR.

Definition at line 215 of file randomhash.cc.

References ASE_ASSERT_RETURN.


The documentation for this class was generated from the following file: