16 #ifndef _KeccakP_1600_SnP_h_
17 #define _KeccakP_1600_SnP_h_
22 #include "brg_endian.h"
23 #include "KeccakP-1600-opt64-config.h"
25 #define KeccakP1600_implementation "generic 64-bit optimized implementation (" KeccakP1600_implementation_config ")"
26 #define KeccakP1600_stateSizeInBytes 200
27 #define KeccakP1600_stateAlignment 8
28 #define KeccakF1600_FastLoop_supported
32 #define KeccakP1600_StaticInitialize()
33 void KeccakP1600_Initialize(
void* state);
34 #if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN)
35 #define KeccakP1600_AddByte(state, byte, offset) \
36 ((unsigned char*)(state))[(offset)] ^= (byte)
38 void KeccakP1600_AddByte(
void* state,
unsigned char data,
unsigned int offset);
40 void KeccakP1600_AddBytes(
void* state,
const unsigned char* data,
unsigned int offset,
unsigned int length);
41 void KeccakP1600_OverwriteBytes(
void* state,
const unsigned char* data,
unsigned int offset,
unsigned int length);
42 void KeccakP1600_OverwriteWithZeroes(
void* state,
unsigned int byteCount);
43 void KeccakP1600_Permute_12rounds(
void* state);
44 void KeccakP1600_Permute_24rounds(
void* state);
45 void KeccakP1600_ExtractBytes(
const void* state,
unsigned char* data,
unsigned int offset,
unsigned int length);
46 void KeccakP1600_ExtractAndAddBytes(
const void* state,
const unsigned char* input,
unsigned char* output,
unsigned int offset,
48 size_t KeccakF1600_FastLoop_Absorb(
void* state,
unsigned int laneCount,
const unsigned char* data,
size_t dataByteLen);