KeccakTools
|
#include <Keccak-fPropagation.h>
Public Member Functions | |
ReverseStateIterator (const vector< SliceValue > &stateAfterChi, const KeccakFPropagation &DCorLC, unsigned int aMaxWeight=0) | |
bool | isEnd () const |
bool | isEmpty () const |
void | operator++ () |
const vector< SliceValue > & | operator* () const |
unsigned int | getCurrentWeight () const |
This class implements an iterator over the possible state values before χ given a state after χ.
ReverseStateIterator::ReverseStateIterator | ( | const vector< SliceValue > & | stateAfterChi, |
const KeccakFPropagation & | DCorLC, | ||
unsigned int | aMaxWeight = 0 |
||
) |
This constructor initializes the iterator based on a state value after χ, the KeccakFPropagation instance, which determines the compatible states, and an optional maximum of the propagation weight.
stateAfterChi | The state value after χ as a vector of slices. |
DCorLC | A reference to the KeccakFPropagation instance that determines the type of propagation. |
aMaxWeight | The iterator will run through the states whose propagation weight is not higher than this parameter. If 0, the iterator runs through all the possible states. |
unsigned int ReverseStateIterator::getCurrentWeight | ( | ) | const |
This method returns the propagation weight of the current state.
bool ReverseStateIterator::isEmpty | ( | ) | const |
This method tells wether the set of states to run through is empty.
bool ReverseStateIterator::isEnd | ( | ) | const |
This method tells whether the iterator has reached the end of the possible states.
const vector< SliceValue > & ReverseStateIterator::operator* | ( | ) | const |
This method returns a constant reference to the current state.
void ReverseStateIterator::operator++ | ( | ) |
This method moves the iterator to the next state.