KeccakTools

Keccak-fParity.h File Reference

#include "Keccak-fParts.h"
Include dependency graph for Keccak-fParity.h:
This graph shows which files directly or indirectly include this file:

Typedefs

typedef UINT64 PackedParity

Functions

PackedParity getPackedParityFromParity (const RowValue &parity, const unsigned int &z)
RowValue getParityFromPackedParity (const PackedParity &parity, const unsigned int &z)
PackedParity packParity (const vector< RowValue > &parity)
void unpackParity (PackedParity packedParity, vector< RowValue > &parity, unsigned int laneSize)
RowValue getParity (SliceValue slice)
PackedParity getParity (const vector< SliceValue > &state)
void getParity (const vector< SliceValue > &state, vector< RowValue > &parity)
void getParity (const vector< LaneValue > &state, vector< LaneValue > &parity)
void fromSlicesToSheetsParity (const vector< RowValue > &paritySlices, vector< LaneValue > &paritySheets)
void fromSheetsToSlicesParity (const vector< LaneValue > &paritySheets, vector< RowValue > &paritySlices)

Typedef Documentation

The PackedParity type is one 64-bit word, containing up to 8 5-bit parities, coming from up to 8 slices. The parity of slice z is in the bits corresponding to (0-31)*32^z in the word. See getPackedParityFromParity() and getParityFromPackedParity() for more details.


Function Documentation

void fromSheetsToSlicesParity ( const vector< LaneValue > &  paritySheets,
vector< RowValue > &  paritySlices 
)

This function converts the parity of a state expressed as a vector of parities of each sheet into a vector of parities of each slice.

Precondition:
paritySlices must be initialized with the correct size (lane size).
Parameters:
paritySheetsThe parity as a vector of lanes.
paritySlicesThe parity as a vector of rows.
void fromSlicesToSheetsParity ( const vector< RowValue > &  paritySlices,
vector< LaneValue > &  paritySheets 
)

This function converts the parity of a state expressed as a vector of parities of each slice into a vector of parities of each sheet.

Parameters:
paritySlicesThe parity as a vector of rows.
paritySheetsThe parity as a vector of lanes.
PackedParity getPackedParityFromParity ( const RowValue parity,
const unsigned int &  z 
) [inline]

This function returns a PackedParity with bits set to zero, except for parity at slice z, with a given value.

Parameters:
parityThe parity of the slice with z-coordinate z.
zThe z-coordinate.
Returns:
A value of type PackedParity with the given parity.
void getParity ( const vector< LaneValue > &  state,
vector< LaneValue > &  parity 
)

This function computes the parity of a state, sheet per sheet, and returns it in a vector of lane values.

Parameters:
stateThe value of the state given as a vector of lanes.
parityThe parity of state as a vector of 5 lane values.
void getParity ( const vector< SliceValue > &  state,
vector< RowValue > &  parity 
)

This function computes the parity of a state, slice per slice, and returns it in a vector of row values.

Parameters:
stateThe value of the state given as a vector of slices.
parityThe parity of state as a vector of row values.
RowValue getParity ( SliceValue  slice)

This function computes the parity of a slice.

Parameters:
sliceThe value of a slice.
Returns:
The parity of the given slice value.
PackedParity getParity ( const vector< SliceValue > &  state)

This function computes the parity of a state, and returns it in a PackedParity.

Parameters:
stateThe value of the state given as a vector of slices.
Returns:
The parity of the state.
RowValue getParityFromPackedParity ( const PackedParity parity,
const unsigned int &  z 
) [inline]

This function returns the parity value at slice z in the given PackedParity value.

Parameters:
parityThe parity to read from.
zThe z-coordinate to read from.
Returns:
The parity of the slice with z-coordinate z.
PackedParity packParity ( const vector< RowValue > &  parity)

This function converts from a vector of parity of each slice to a PackedParity value.

Parameters:
parityThe parity of a state as vector of row values.
Returns:
The parity of a state as a PackedParity value.
void unpackParity ( PackedParity  packedParity,
vector< RowValue > &  parity,
unsigned int  laneSize 
)

This function converts from a PackedParity value to a vector of parity of each slice.

Parameters:
packedParityThe parity of a state as a PackedParity value.
parityThe parity of a state as a vector of row values.
laneSizeThe number of slices.