93 lines
2.5 KiB
C
93 lines
2.5 KiB
C
/*
|
|
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
|