diff options
author | Ben Lindstrom <mouring@eviladmin.org> | 2000-12-07 06:57:27 +0100 |
---|---|---|
committer | Ben Lindstrom <mouring@eviladmin.org> | 2000-12-07 06:57:27 +0100 |
commit | 01f8463b15ead597f8ecf0052fd7569240dcaab9 (patch) | |
tree | 73ab1f33ee4c21041c160a93ff30e47c8179512b /rijndael.h | |
parent | 20001207 (diff) | |
download | openssh-01f8463b15ead597f8ecf0052fd7569240dcaab9.tar.xz openssh-01f8463b15ead597f8ecf0052fd7569240dcaab9.zip |
- 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
Diffstat (limited to 'rijndael.h')
-rw-r--r-- | rijndael.h | 48 |
1 files changed, 21 insertions, 27 deletions
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 |