1 /*
2 Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni,
3 Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer, hereby
4 denoted as "the implementer".
5 
6 For more information, feedback or questions, please refer to our websites:
7 http://keccak.noekeon.org/
8 http://keyak.noekeon.org/
9 http://ketje.noekeon.org/
10 
11 To the extent possible under law, the implementer has waived all copyright
12 and related or neighboring rights to the source code in this file.
13 http://creativecommons.org/publicdomain/zero/1.0/
14 */
15 
16 #ifndef _KeccakP_1600_SnP_h_
17 #define _KeccakP_1600_SnP_h_
18 
19 /** For the documentation, see SnP-documentation.h.
20  */
21 
22 #define KeccakP1600_implementation      "in-place 32-bit optimized implementation"
23 #define KeccakP1600_stateSizeInBytes    200
24 #define KeccakP1600_stateAlignment      8
25 
26 #define KeccakP1600_StaticInitialize()
27 void KeccakP1600_Initialize(void *state);
28 void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset);
29 void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
30 void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
31 void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount);
32 void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds);
33 void KeccakP1600_Permute_12rounds(void *state);
34 void KeccakP1600_Permute_24rounds(void *state);
35 void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length);
36 void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
37 
38 #endif
39