1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /*
- Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni,
- Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer, hereby
- denoted as "the implementer".
- For more information, feedback or questions, please refer to our websites:
- http://keccak.noekeon.org/
- http://keyak.noekeon.org/
- http://ketje.noekeon.org/
- To the extent possible under law, the implementer has waived all copyright
- and related or neighboring rights to the source code in this file.
- http://creativecommons.org/publicdomain/zero/1.0/
- */
- #ifndef _KeccakP_1600_SnP_h_
- #define _KeccakP_1600_SnP_h_
- /** For the documentation, see SnP-documentation.h.
- */
- #include "brg_endian.h"
- #include "KeccakP-1600-opt64-config.h"
- #define KeccakP1600_implementation "generic 64-bit optimized implementation (" KeccakP1600_implementation_config ")"
- #define KeccakP1600_stateSizeInBytes 200
- #define KeccakP1600_stateAlignment 8
- #define KeccakF1600_FastLoop_supported
- #include <stddef.h>
- #define KeccakP1600_StaticInitialize()
- void KeccakP1600_Initialize(void *state);
- #if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN)
- #define KeccakP1600_AddByte(state, byte, offset) \
- ((unsigned char*)(state))[(offset)] ^= (byte)
- #else
- void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset);
- #endif
- void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
- void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
- void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount);
- void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds);
- void KeccakP1600_Permute_12rounds(void *state);
- void KeccakP1600_Permute_24rounds(void *state);
- void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length);
- void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
- size_t KeccakF1600_FastLoop_Absorb(void *state, unsigned int laneCount, const unsigned char *data, size_t dataByteLen);
- #endif
|