From 3241b8d896f00be5cefc42651e48add9bfd79c51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Thu, 7 Mar 2013 14:43:40 +0100 Subject: [PATCH] Prepare data generation programs for compilation with the build system compiler. --- ChangeLog | 14 +++++++++++ aesdata.c | 44 +++++++++++++++------------------- desdata.c | 21 ++++++++-------- gcmdata.c | 5 +--- shadata.c | 6 +---- twofishdata.c | 66 +++++++++++++++++++++++++-------------------------- 6 files changed, 77 insertions(+), 79 deletions(-) diff --git a/ChangeLog b/ChangeLog index 92c2179c..6cf092a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 2013-03-07 Niels Möller <nisse@lysator.liu.se> + * aesdata.c: Deleted includes of config.h and nettle-types.h. Use + unsigned char and unsigned long instead of stdint.h types. + + * desdata.c: Deleted includes of config.h and desCode.h. + (main): Return 1 on invalid argument. Don't use ROR macro. Use + unsigned long instead of uint32_t, and make it work if unsigned + long is larger than 32 bits. + + * gcmdata.c: Deleted include of config.h and use UNUSED macro. + * shadata.c: Likewise. + + * twofishdata.c: Deleted include of nettle-types.h. Use unsigned + char instead of stdint.h types. + * x86_64/ecc-521-modp.asm: New file. 2.4 time speedup. 2013-03-06 Niels Möller <nisse@lysator.liu.se> diff --git a/aesdata.c b/aesdata.c index a62ab5ac..9202d0f3 100644 --- a/aesdata.c +++ b/aesdata.c @@ -1,14 +1,8 @@ -#if HAVE_CONFIG_H -# include "config.h" -#endif - #include <assert.h> #include <stdlib.h> #include <stdio.h> #include <string.h> -#include "nettle-types.h" - #if 1 # define BYTE_FORMAT "0x%02x" # define BYTE_COLUMNS 8 @@ -17,18 +11,18 @@ # define BYTE_COLUMNS 0x10 #endif -#define WORD_FORMAT "0x%08x" +#define WORD_FORMAT "0x%08lx" #define WORD_COLUMNS 4 -uint8_t sbox[0x100]; -uint8_t isbox[0x100]; +unsigned char sbox[0x100]; +unsigned char isbox[0x100]; -uint8_t gf2_log[0x100]; -uint8_t gf2_exp[0x100]; +unsigned char gf2_log[0x100]; +unsigned char gf2_exp[0x100]; -uint32_t dtable[4][0x100]; -uint32_t itable[4][0x100]; -uint32_t mtable[4][0x100]; +unsigned long dtable[4][0x100]; +unsigned long itable[4][0x100]; +unsigned long mtable[4][0x100]; static unsigned xtime(unsigned x) @@ -109,7 +103,7 @@ compute_dtable(void) { unsigned s = sbox[i]; unsigned j; - uint32_t t =( ( (s ^ xtime(s)) << 24) + unsigned long t =( ( (s ^ xtime(s)) << 24) | (s << 16) | (s << 8) | xtime(s) ); @@ -128,10 +122,10 @@ compute_itable(void) { unsigned s = isbox[i]; unsigned j; - uint32_t t = ( (mult(s, 0xb) << 24) - | (mult(s, 0xd) << 16) - | (mult(s, 0x9) << 8) - | (mult(s, 0xe) )); + unsigned long t = ( (mult(s, 0xb) << 24) + | (mult(s, 0xd) << 16) + | (mult(s, 0x9) << 8) + | (mult(s, 0xe) )); for (j = 0; j<4; j++, t = (t << 8) | (t >> 24)) itable[j][i] = t; @@ -146,10 +140,10 @@ compute_mtable(void) for (i = 0; i<0x100; i++) { unsigned j; - uint32_t t = ( (mult(i, 0xb) << 24) - | (mult(i, 0xd) << 16) - | (mult(i, 0x9) << 8) - | (mult(i, 0xe) )); + unsigned long t = ( (mult(i, 0xb) << 24) + | (mult(i, 0xd) << 16) + | (mult(i, 0x9) << 8) + | (mult(i, 0xe) )); for (j = 0; j<4; j++, t = (t << 8) | (t >> 24)) mtable[j][i] = t; @@ -157,7 +151,7 @@ compute_mtable(void) } static void -display_byte_table(const char *name, uint8_t *table) +display_byte_table(const char *name, unsigned char *table) { unsigned i, j; @@ -174,7 +168,7 @@ display_byte_table(const char *name, uint8_t *table) } static void -display_table(const char *name, uint32_t table[][0x100]) +display_table(const char *name, unsigned long table[][0x100]) { unsigned i, j, k; diff --git a/desdata.c b/desdata.c index 2d46b955..f1c65043 100644 --- a/desdata.c +++ b/desdata.c @@ -11,16 +11,10 @@ * */ -#if HAVE_CONFIG_H -# include "config.h" -#endif - #include <stdio.h> #include "desinfo.h" -#include "desCode.h" - /* list of weak and semi-weak keys @@ -65,13 +59,18 @@ int sorder[] = { }; int -main(int argc UNUSED, char **argv UNUSED) +main(int argc, char **argv) { - uint32_t d, i, j, k, l, m, n, s; + unsigned long d, i, j, k, l, m, n, s; /* Always at least 32 bits */ char b[256], ksr[56]; + if (argc <= 1) + return 1; + switch ( argv[1][0] ) { +default: + return 1; /* * <<< make the key parity table >>> */ @@ -179,11 +178,11 @@ case 'k': /* perform p permutation */ for ( m = j = 0; j < 32; j++ ) if ( n & (1 << (SP[j] - 1)) ) - m |= (1 << j); + m |= (1UL << j); /* rotate right (alg keeps everything rotated by 1) */ - ROR(m, 1, 31); + m = (m >> 1) | ((m & 1) << 31); /* print it out */ - printf(" 0x%08lx,", (long) m); + printf(" 0x%08lx,", m); if ( ( d & 3 ) == 3 ) printf("\n"); } diff --git a/gcmdata.c b/gcmdata.c index 60b41d94..d431e03a 100644 --- a/gcmdata.c +++ b/gcmdata.c @@ -26,9 +26,6 @@ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02111-1301, USA. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif #include <stdio.h> #include <stdlib.h> @@ -50,7 +47,7 @@ reduce(unsigned x) } int -main(int argc UNUSED, char **argv UNUSED) +main(int argc, char **argv) { unsigned i; printf("4-bit table:\n"); diff --git a/shadata.c b/shadata.c index 3275f0ce..cba87269 100644 --- a/shadata.c +++ b/shadata.c @@ -1,7 +1,3 @@ -#if HAVE_CONFIG_H -# include "config.h" -#endif - #include <math.h> #include <stdio.h> @@ -16,7 +12,7 @@ static const unsigned primes[64] = 283, 293, 307, 311 }; -int main(int argc UNUSED, char **argv UNUSED) +int main(int argc, char **argv) { int i; static const double third = 1.0/3; diff --git a/twofishdata.c b/twofishdata.c index 81090d50..53ac1715 100644 --- a/twofishdata.c +++ b/twofishdata.c @@ -19,84 +19,82 @@ #include <stdio.h> -#include "nettle-stdint.h" - #define ror4(x) (((x) >> 1) | (((x) & 1) << 3)) -static uint8_t q0(uint8_t x) +static unsigned char q0(unsigned char x) { - static const uint8_t t0[16] = { + static const unsigned char t0[16] = { 0x8, 0x1, 0x7, 0xD, 0x6, 0xF, 0x3, 0x2, 0x0, 0xB, 0x5, 0x9, 0xE, 0xC, 0xA, 0x4 }; - static const uint8_t t1[16] = { + static const unsigned char t1[16] = { 0xE, 0xC, 0xB, 0x8, 0x1, 0x2, 0x3, 0x5, 0xF, 0x4, 0xA, 0x6, 0x7, 0x0, 0x9, 0xD }; - static const uint8_t t2[16] = { + static const unsigned char t2[16] = { 0xB, 0xA, 0x5, 0xE, 0x6, 0xD, 0x9, 0x0, 0xC, 0x8, 0xF, 0x3, 0x2, 0x4, 0x7, 0x1 }; - static const uint8_t t3[16] = { + static const unsigned char t3[16] = { 0xD, 0x7, 0xF, 0x4, 0x1, 0x2, 0x6, 0xE, 0x9, 0xB, 0x3, 0x0, 0x8, 0x5, 0xC, 0xA }; - uint8_t a0 = x / 16; - uint8_t b0 = x % 16; + unsigned char a0 = x / 16; + unsigned char b0 = x % 16; - uint8_t a1 = a0 ^ b0; - uint8_t b1 = a0 ^ ror4(b0) ^ ((8*a0) % 16); + unsigned char a1 = a0 ^ b0; + unsigned char b1 = a0 ^ ror4(b0) ^ ((8*a0) % 16); - uint8_t a2 = t0[a1]; - uint8_t b2 = t1[b1]; + unsigned char a2 = t0[a1]; + unsigned char b2 = t1[b1]; - uint8_t a3 = a2 ^ b2; - uint8_t b3 = a2 ^ ror4(b2) ^ ((8*a2) % 16); + unsigned char a3 = a2 ^ b2; + unsigned char b3 = a2 ^ ror4(b2) ^ ((8*a2) % 16); - uint8_t a4 = t2[a3]; - uint8_t b4 = t3[b3]; + unsigned char a4 = t2[a3]; + unsigned char b4 = t3[b3]; - uint8_t y = 16*b4 + a4; + unsigned char y = 16*b4 + a4; return y; } -static uint8_t q1(uint8_t x) +static unsigned char q1(unsigned char x) { - static const uint8_t t0[16] = { + static const unsigned char t0[16] = { 0x2, 0x8, 0xB, 0xD, 0xF, 0x7, 0x6, 0xE, 0x3, 0x1, 0x9, 0x4, 0x0, 0xA, 0xC, 0x5 }; - static const uint8_t t1[16] = { + static const unsigned char t1[16] = { 0x1, 0xE, 0x2, 0xB, 0x4, 0xC, 0x3, 0x7, 0x6, 0xD, 0xA, 0x5, 0xF, 0x9, 0x0, 0x8 }; - static const uint8_t t2[16] = { + static const unsigned char t2[16] = { 0x4, 0xC, 0x7, 0x5, 0x1, 0x6, 0x9, 0xA, 0x0, 0xE, 0xD, 0x8, 0x2, 0xB, 0x3, 0xF }; - static const uint8_t t3[16] = { + static const unsigned char t3[16] = { 0xB, 0x9, 0x5, 0x1, 0xC, 0x3, 0xD, 0xE, 0x6, 0x4, 0x7, 0xF, 0x2, 0x0, 0x8, 0xA }; - uint8_t a0 = x / 16; - uint8_t b0 = x % 16; + unsigned char a0 = x / 16; + unsigned char b0 = x % 16; - uint8_t a1 = a0 ^ b0; - uint8_t b1 = a0 ^ ror4(b0) ^ ((8*a0) % 16); + unsigned char a1 = a0 ^ b0; + unsigned char b1 = a0 ^ ror4(b0) ^ ((8*a0) % 16); - uint8_t a2 = t0[a1]; - uint8_t b2 = t1[b1]; + unsigned char a2 = t0[a1]; + unsigned char b2 = t1[b1]; - uint8_t a3 = a2 ^ b2; - uint8_t b3 = a2 ^ ror4(b2) ^ ((8*a2) % 16); + unsigned char a3 = a2 ^ b2; + unsigned char b3 = a2 ^ ror4(b2) ^ ((8*a2) % 16); - uint8_t a4 = t2[a3]; - uint8_t b4 = t3[b3]; + unsigned char a4 = t2[a3]; + unsigned char b4 = t3[b3]; - uint8_t y = 16*b4 + a4; + unsigned char y = 16*b4 + a4; return y; } -- GitLab