/* -*-c-*-
*
- * $Id: skipjack.c,v 1.1 2000/07/15 15:39:33 mdw Exp $
+ * $Id: skipjack.c,v 1.2 2000/07/15 20:48:45 mdw Exp $
*
* The Skipjack block cipher
*
/*----- Revision history --------------------------------------------------*
*
* $Log: skipjack.c,v $
+ * Revision 1.2 2000/07/15 20:48:45 mdw
+ * Remove some useless tests in the G function.
+ *
* Revision 1.1 2000/07/15 15:39:33 mdw
* The NSA's Skipjack block cipher.
*
#define G(x, i) do { \
octet _x = U8(x >> 8), _y = U8(x); \
- _x ^= f[_y ^ k->k[i++]]; if (i >= 10) i = 0; \
+ _x ^= f[_y ^ k->k[i++]]; \
_y ^= f[_x ^ k->k[i++]]; if (i >= 10) i = 0; \
- _x ^= f[_y ^ k->k[i++]]; if (i >= 10) i = 0; \
+ _x ^= f[_y ^ k->k[i++]]; \
_y ^= f[_x ^ k->k[i++]]; if (i >= 10) i = 0; \
x = U16((_x << 8) | _y); \
} while (0)
#define G_INV(x, i) do { \
octet _x = U8(x >> 8), _y = U8(x); \
- _y ^= f[_x ^ k->k[--i]]; if (i == 0) i = 10; \
+ _y ^= f[_x ^ k->k[--i]]; \
_x ^= f[_y ^ k->k[--i]]; if (i == 0) i = 10; \
- _y ^= f[_x ^ k->k[--i]]; if (i == 0) i = 10; \
+ _y ^= f[_x ^ k->k[--i]]; \
_x ^= f[_y ^ k->k[--i]]; if (i == 0) i = 10; \
x = U16((_x << 8) | _y); \
} while (0)