Select Git revision
Forked from
Nettle / nettle
3614 commits behind the upstream repository.
-
Niels Möller authored
<inttypes.h> directly. Updated all users of inttypes.h. Rev: src/nettle/aes.h:1.7 Rev: src/nettle/aesdata.c:1.3 Rev: src/nettle/arcfour.h:1.5 Rev: src/nettle/base16.h:1.3 Rev: src/nettle/base64.h:1.14 Rev: src/nettle/bignum.h:1.8 Rev: src/nettle/blowfish.h:1.9 Rev: src/nettle/cast128.h:1.5 Rev: src/nettle/cbc.h:1.5 Rev: src/nettle/des.h:1.9 Rev: src/nettle/dsa.h:1.9 Rev: src/nettle/knuth-lfib.h:1.3 Rev: src/nettle/md2.h:1.3 Rev: src/nettle/md4.h:1.3 Rev: src/nettle/md5.h:1.7 Rev: src/nettle/memxor.h:1.3 Rev: src/nettle/nettle-meta.h:1.11 Rev: src/nettle/pkcs1.h:1.3 Rev: src/nettle/realloc.h:1.2 Rev: src/nettle/rsa.h:1.24 Rev: src/nettle/serpent.h:1.7 Rev: src/nettle/sexp.h:1.16 Rev: src/nettle/sha.h:1.4 Rev: src/nettle/twofish.h:1.6
Niels Möller authored<inttypes.h> directly. Updated all users of inttypes.h. Rev: src/nettle/aes.h:1.7 Rev: src/nettle/aesdata.c:1.3 Rev: src/nettle/arcfour.h:1.5 Rev: src/nettle/base16.h:1.3 Rev: src/nettle/base64.h:1.14 Rev: src/nettle/bignum.h:1.8 Rev: src/nettle/blowfish.h:1.9 Rev: src/nettle/cast128.h:1.5 Rev: src/nettle/cbc.h:1.5 Rev: src/nettle/des.h:1.9 Rev: src/nettle/dsa.h:1.9 Rev: src/nettle/knuth-lfib.h:1.3 Rev: src/nettle/md2.h:1.3 Rev: src/nettle/md4.h:1.3 Rev: src/nettle/md5.h:1.7 Rev: src/nettle/memxor.h:1.3 Rev: src/nettle/nettle-meta.h:1.11 Rev: src/nettle/pkcs1.h:1.3 Rev: src/nettle/realloc.h:1.2 Rev: src/nettle/rsa.h:1.24 Rev: src/nettle/serpent.h:1.7 Rev: src/nettle/sexp.h:1.16 Rev: src/nettle/sha.h:1.4 Rev: src/nettle/twofish.h:1.6
aesdata.c 5.73 KiB
#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
#else
# define BYTE_FORMAT "%3d"
# define BYTE_COLUMNS 0x10
#endif
#define WORD_FORMAT "0x%08x"
#define WORD_COLUMNS 4
uint8_t sbox[0x100];
uint8_t isbox[0x100];
uint8_t log[0x100];
uint8_t ilog[0x100];
uint32_t dtable[4][0x100];
uint32_t itable[4][0x100];
static unsigned
xtime(unsigned x)
{
assert (x < 0x100);
x <<= 1;
if (x & 0x100)
x ^= 0x11b;
assert (x < 0x100);
return x;
}
/* Computes the exponentiatiom and logarithm tables for GF_2, to the
* base x+1 (0x03). The unit element is 1 (0x01).*/
static void
compute_log(void)
{
unsigned i = 0;
unsigned x = 1;
memset(log, 0, 0x100);
for (i = 0; i < 0x100; i++, x = x ^ xtime(x))
{
ilog[i] = x;
log[x] = i;
}
/* Invalid. */
log[0] = 0;
/* The loop above sets log[1] = 0xff, which is correct,
* but log[1] = 0 is nicer. */
log[1] = 0;
}
static unsigned
mult(unsigned a, unsigned b)
{