text: /*
  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/
  */
  
  #ifdef KeccakReference
      #include "displayIntermediateValues.h"
  #endif
  
  #include "OceanKeyak.h"
  
  #ifdef OUTPUT
  #include <stdio.h>
  
  void displayByteString(FILE *f, const char* synopsis, const unsigned char *data, unsigned int length);
  
  #ifdef OUTPUT
  static void displayByteString(FILE *f, const char* synopsis, const unsigned char *data, unsigned int length)
  {
      unsigned int i;
  
      fprintf(f, "%s:", synopsis);
      for(i=0; i<length; i++)
          fprintf(f, " %02x", (unsigned int)data[i]);
      fprintf(f, "\n");
  }
  #endif
  #endif
  
  #ifndef KeccakP1600timesN_excluded
      #include "KeccakP-1600-times4-SnP.h"
  
      #define prefix                      KeyakWidth1600times4
      #define PlSnP                       KeccakP1600times4
      #define PlSnP_parallelism           4
      #define PlSnP_PermuteAll            KeccakP1600times4_PermuteAll_12rounds
      #define SnP_width                   1600
          #include "Motorist.inc"
      #undef prefix
      #undef PlSnP
      #undef PlSnP_parallelism
      #undef PlSnP_PermuteAll
      #undef SnP_width
  #endif
  
  #ifndef KeccakP1600timesN_excluded
      #include "KeccakP-1600-times4-SnP.h"
  
      #define prefix                      Ocean
      #define prefixMotorist              KeyakWidth1600times4
          #include "Keyakv2.inc"
      #undef prefix
      #undef prefixMotorist
  #endif
  