| /* |
| 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/ |
| */ |
| |
| #include "KeccakSponge.h" |
| |
| #ifdef KeccakReference |
| #include "displayIntermediateValues.h" |
| #endif |
| |
| #ifndef KeccakP200_excluded |
| #include "KeccakP-200-SnP.h" |
| |
| #define prefix KeccakWidth200 |
| #define SnP KeccakP200 |
| #define SnP_width 200 |
| #define SnP_Permute KeccakP200_Permute_18rounds |
| #if defined(KeccakF200_FastLoop_supported) |
| #define SnP_FastLoop_Absorb KeccakF200_FastLoop_Absorb |
| #endif |
| #include "KeccakSponge.inc" |
| #undef prefix |
| #undef SnP |
| #undef SnP_width |
| #undef SnP_Permute |
| #undef SnP_FastLoop_Absorb |
| #endif |
| |
| #ifndef KeccakP400_excluded |
| #include "KeccakP-400-SnP.h" |
| |
| #define prefix KeccakWidth400 |
| #define SnP KeccakP400 |
| #define SnP_width 400 |
| #define SnP_Permute KeccakP400_Permute_20rounds |
| #if defined(KeccakF400_FastLoop_supported) |
| #define SnP_FastLoop_Absorb KeccakF400_FastLoop_Absorb |
| #endif |
| #include "KeccakSponge.inc" |
| #undef prefix |
| #undef SnP |
| #undef SnP_width |
| #undef SnP_Permute |
| #undef SnP_FastLoop_Absorb |
| #endif |
| |
| #ifndef KeccakP800_excluded |
| #include "KeccakP-800-SnP.h" |
| |
| #define prefix KeccakWidth800 |
| #define SnP KeccakP800 |
| #define SnP_width 800 |
| #define SnP_Permute KeccakP800_Permute_22rounds |
| #if defined(KeccakF800_FastLoop_supported) |
| #define SnP_FastLoop_Absorb KeccakF800_FastLoop_Absorb |
| #endif |
| #include "KeccakSponge.inc" |
| #undef prefix |
| #undef SnP |
| #undef SnP_width |
| #undef SnP_Permute |
| #undef SnP_FastLoop_Absorb |
| #endif |
| |
| #ifndef KeccakP1600_excluded |
| #include "KeccakP-1600-SnP.h" |
| |
| #define prefix KeccakWidth1600 |
| #define SnP KeccakP1600 |
| #define SnP_width 1600 |
| #define SnP_Permute KeccakP1600_Permute_24rounds |
| #if defined(KeccakF1600_FastLoop_supported) |
| #define SnP_FastLoop_Absorb KeccakF1600_FastLoop_Absorb |
| #endif |
| #include "KeccakSponge.inc" |
| #undef prefix |
| #undef SnP |
| #undef SnP_width |
| #undef SnP_Permute |
| #undef SnP_FastLoop_Absorb |
| #endif |