Rearrange the file tree.
[u/mdw/catacomb] / whirlpool-mktab.c
diff --git a/whirlpool-mktab.c b/whirlpool-mktab.c
deleted file mode 100644 (file)
index 75f7bb2..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-/* -*-c-*-
- *
- * $Id$
- *
- * Generate tables for Whirlpool hash function
- *
- * (c) 2005 Straylight/Edgeware
- */
-
-/*----- Licensing notice --------------------------------------------------*
- *
- * This file is part of Catacomb.
- *
- * Catacomb is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * Catacomb is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with Catacomb; if not, write to the Free
- * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- */
-
-/*----- Header files ------------------------------------------------------*/
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <mLib/bits.h>
-
-/*----- Static variables --------------------------------------------------*/
-
-static const octet E[] = {
-  0x1, 0xb, 0x9, 0xc, 0xd, 0x6, 0xf, 0x3,
-  0xe, 0x8, 0x7, 0x4, 0xa, 0x2, 0x5, 0x0
-}, R[] = {
-  0x7, 0xc, 0xb, 0xd, 0xe, 0x4, 0x9, 0xf,
-  0x6, 0x3, 0x8, 0xa, 0x2, 0x5, 0x1, 0x0
-}, C[] = {
-  0x1, 0x1, 0x4, 0x1, 0x8, 0x5, 0x2, 0x9
-};
-
-static octet S[256], T[256][8], log[256], alog[256];
-
-/*----- Main code ---------------------------------------------------------*/
-
-#define S_MOD 0x11d
-
-static void logtable(void)
-{
-  unsigned i, x;
-
-  for (i = 0, x = 1; i < 255; i++) {
-    log[x] = i;
-    alog[i] = x;
-    x <<= 1;
-    if (x & 0x100) x ^= S_MOD;
-  }
-}
-
-static octet mul(octet x, octet y)
-  { if (!x || !y) return (0); return (alog[(log[x] + log[y]) % 255]); }
-
-static void sbox(void)
-{
-  unsigned i, j;
-  octet EI[16];
-  octet l, r, y;
-
-  for (i = 0; i < 16; i++) EI[E[i]] = i;
-  for (i = 0; i < 256; i++) {
-    l = (i >> 4) & 0xf;
-    r = (i >> 0) & 0xf;
-    l = E[l]; r = EI[r];
-    y = R[l ^ r];
-    l = E[l ^ y]; r = EI[r ^ y];
-    S[i] = (l << 4) | r;
-  }
-
-  for (i = 0; i < 256; i++) {
-    for (j = 0; j < 8; j++)
-      T[i][j] = mul(S[i], C[j]);
-  }
-}
-
-static unsigned long w32(int i, int j, int k)
-{
-  kludge64 x;
-  LOAD64_L_(x, T[j]);
-  ROL64_(x, x, i * 8);
-  return (k ? LO64(x) : HI64(x));
-}
-
-int main(void)
-{
-  int i, j;
-
-  puts("\
-/* -*-c-*-\n\
- *\n\
- * Whirlpool tables [generated]\n\
- */\n\
-\n\
-#ifndef CATACOMB_WHIRLPOOL_TAB_H\n\
-#define CATACOMB_WHIRLPOOL_TAB_H\n\
-");
-
-  /* --- Write out the S-box --- */
-
-  logtable();
-  sbox();
-  fputs("\
-/* --- The byte substitution --- */\n\
-\n\
-#define WHIRLPOOL_S {                                                  \\\n\
-  ", stdout);
-  for (i = 0; i < 256; i++) {
-    printf("0x%02x", S[i]);
-    if (i == 255)
-      fputs("                  \\\n}\n\n", stdout);
-    else if (i % 8 == 7)
-      fputs(",                 \\\n  ", stdout);
-    else
-      fputs(", ", stdout);
-  }
-
-  /* --- Write out the key constant tables --- */
-
-  fputs("\
-/* --- The key generation constants --- */\n\
-\n\
-#define WHIRLPOOL_C {                                                  \\\n\
-  ", stdout);
-  for (i = 0; i < 10; i++) {
-    printf("X64(%08lx, %08lx)",
-          (unsigned long)LOAD32_L(&S[i * 8 + 4]),
-          (unsigned long)LOAD32_L(&S[i * 8 + 0]));
-    if (i == 9)
-      fputs("                  \\\n}\n\n", stdout);
-    else if (i % 2 == 1)
-      fputs(",                 \\\n  ", stdout);
-    else
-      fputs(", ", stdout);
-  }
-
-  /* --- Write out the big T tables --- */
-
-  fputs("\
-/* --- The 64-bit big round tables --- */\n\
-\n\
-#define WHIRLPOOL_T {                                                  \\\n\
-  { ", stdout);
-  for (j = 0; j < 8; j++) {
-    for (i = 0; i < 256; i++) {
-      printf("X64(%08lx, %08lx)", w32(j, i, 0), w32(j, i, 1));
-      if (i == 255) {
-       if (j == 7)
-         fputs(" }                     \\\n}\n\n", stdout);
-       else
-         fputs(" },                    \\\n\
-                                                                       \\\n\
-  { ", stdout);
-      } else if (i % 2 == 1)
-       fputs(",                        \\\n    ", stdout);
-      else
-       fputs(", ", stdout);
-    }
-  }
-
-  /* --- Write out the smaller U and V tables --- */
-
-  fputs("\
-/* --- The 32-bit round tables --- */\n\
-\n\
-#define WHIRLPOOL_U {                                                  \\\n\
-  { ", stdout);
-  for (j = 0; j < 4; j++) {
-    for (i = 0; i < 256; i++) {
-      printf("0x%08lx", w32(j, i, 1));
-      if (i == 255) {
-       if (j == 3)
-         fputs(" }                     \\\n}\n\n", stdout);
-       else
-         fputs(" },                    \\\n\
-                                                                       \\\n\
-  { ", stdout);
-      } else if (i % 4 == 3)
-       fputs(",                        \\\n    ", stdout);
-      else
-       fputs(", ", stdout);
-    }
-  }
-
-  fputs("\
-#define WHIRLPOOL_V {                                                  \\\n\
-  { ", stdout);
-  for (j = 0; j < 4; j++) {
-    for (i = 0; i < 256; i++) {
-      printf("0x%08lx", w32(j, i, 0));
-      if (i == 255) {
-       if (j == 3)
-         fputs(" }                     \\\n}\n\n", stdout);
-       else
-         fputs(" },                    \\\n\
-                                                                       \\\n\
-  { ", stdout);
-      } else if (i % 4 == 3)
-       fputs(",                        \\\n    ", stdout);
-      else
-       fputs(", ", stdout);
-    }
-  }
-
-  /* --- Done --- */
-
-  puts("#endif");
-
-  if (fclose(stdout)) {
-    fprintf(stderr, "error writing data\n");
-    exit(EXIT_FAILURE);
-  }
-
-  return (0);
-}
-
-/*----- That's all, folks -------------------------------------------------*/