From 01f8463b15ead597f8ecf0052fd7569240dcaab9 Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Thu, 7 Dec 2000 05:57:27 +0000 Subject: - markus@cvs.openbsd.org 2000/12/06 23:10:39 [rijndael.c] unexpand(1) - markus@cvs.openbsd.org 2000/12/06 23:05:43 [cipher.c cipher.h rijndael.c rijndael.h rijndael_boxes.h] new rijndael implementation. fixes endian bugs --- rijndael.h | 48 +++++++++++++++++++++--------------------------- 1 file changed, 21 insertions(+), 27 deletions(-) (limited to 'rijndael.h') diff --git a/rijndael.h b/rijndael.h index 09c425742..75853cfff 100644 --- a/rijndael.h +++ b/rijndael.h @@ -1,33 +1,27 @@ -#ifndef _RIJNDAEL_H_ -#define _RIJNDAEL_H_ +/* + * rijndael-alg-fst.h v2.4 April '2000 + * rijndael-api-fst.h v2.4 April '2000 + * + * Optimised ANSI C code + * + */ -#include "config.h" +#ifndef RIJNDAEL_H +#define RIJNDAEL_H -/* 1. Standard types for AES cryptography source code */ +#define RIJNDAEL_MAXKC (256/32) +#define RIJNDAEL_MAXROUNDS 14 -typedef u_int8_t u1byte; /* an 8 bit unsigned character type */ -typedef u_int16_t u2byte; /* a 16 bit unsigned integer type */ -typedef u_int32_t u4byte; /* a 32 bit unsigned integer type */ +#define RIJNDAEL_ENCRYPT 0 +#define RIJNDAEL_DECRYPT 1 -typedef int8_t s1byte; /* an 8 bit signed character type */ -typedef int16_t s2byte; /* a 16 bit signed integer type */ -typedef int32_t s4byte; /* a 32 bit signed integer type */ +typedef struct { + int ROUNDS; /* key-length-dependent number of rounds */ + u_int8_t keySched[RIJNDAEL_MAXROUNDS+1][4][4]; +} rijndael_key; -typedef struct _rijndael_ctx { - u4byte k_len; - int decrypt; - u4byte e_key[64]; - u4byte d_key[64]; -} rijndael_ctx; +int rijndael_encrypt(rijndael_key *key, u_int8_t a[16], u_int8_t b[16]); +int rijndael_decrypt(rijndael_key *key, u_int8_t a[16], u_int8_t b[16]); +int rijndael_makekey(rijndael_key *key, int direction, int keyLen, u_int8_t *keyMaterial); - -/* 2. Standard interface for AES cryptographic routines */ - -/* These are all based on 32 bit unsigned values and will therefore */ -/* require endian conversions for big-endian architectures */ - -rijndael_ctx *rijndael_set_key __P((rijndael_ctx *, const u4byte *, u4byte, int)); -void rijndael_encrypt __P((rijndael_ctx *, const u4byte *, u4byte *)); -void rijndael_decrypt __P((rijndael_ctx *, const u4byte *, u4byte *)); - -#endif /* _RIJNDAEL_H_ */ +#endif -- cgit v1.2.3