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 | /* #include "brg_endian.h" */ |
23 | #include "KeccakP-1600-opt64-config.h" |
24 | |
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 |
29 | |
30 | #include <stddef.h> |
31 | |
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) |
37 | #else |
38 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); |
39 | #endif |
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, unsigned int length); |
47 | size_t KeccakF1600_FastLoop_Absorb(void *state, unsigned int laneCount, const unsigned char *data, size_t dataByteLen); |
48 | |
49 | #endif |
50 | |