Skip to content
Snippets Groups Projects
Commit 3241b8d8 authored by Niels Möller's avatar Niels Möller
Browse files

Prepare data generation programs for compilation with the build system compiler.

parent bb32b4fd
No related branches found
No related tags found
No related merge requests found
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>
......
#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,7 +122,7 @@ compute_itable(void)
{
unsigned s = isbox[i];
unsigned j;
uint32_t t = ( (mult(s, 0xb) << 24)
unsigned long t = ( (mult(s, 0xb) << 24)
| (mult(s, 0xd) << 16)
| (mult(s, 0x9) << 8)
| (mult(s, 0xe) ));
......@@ -146,7 +140,7 @@ compute_mtable(void)
for (i = 0; i<0x100; i++)
{
unsigned j;
uint32_t t = ( (mult(i, 0xb) << 24)
unsigned long t = ( (mult(i, 0xb) << 24)
| (mult(i, 0xd) << 16)
| (mult(i, 0x9) << 8)
| (mult(i, 0xe) ));
......@@ -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;
......
......@@ -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");
}
......
......@@ -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");
......
#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;
......
......@@ -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;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment