diff options
author | Ben Lindstrom <mouring@eviladmin.org> | 2000-12-07 05:57:27 +0000 |
---|---|---|
committer | Ben Lindstrom <mouring@eviladmin.org> | 2000-12-07 05:57:27 +0000 |
commit | 01f8463b15ead597f8ecf0052fd7569240dcaab9 (patch) | |
tree | 73ab1f33ee4c21041c160a93ff30e47c8179512b /rijndael.h | |
parent | a14ee47f2eee3030cd784b93985a4de417a4b14c (diff) |
- 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 @@ | |||
1 | #ifndef _RIJNDAEL_H_ | 1 | /* |
2 | #define _RIJNDAEL_H_ | 2 | * rijndael-alg-fst.h v2.4 April '2000 |
3 | * rijndael-api-fst.h v2.4 April '2000 | ||
4 | * | ||
5 | * Optimised ANSI C code | ||
6 | * | ||
7 | */ | ||
3 | 8 | ||
4 | #include "config.h" | 9 | #ifndef RIJNDAEL_H |
10 | #define RIJNDAEL_H | ||
5 | 11 | ||
6 | /* 1. Standard types for AES cryptography source code */ | 12 | #define RIJNDAEL_MAXKC (256/32) |
13 | #define RIJNDAEL_MAXROUNDS 14 | ||
7 | 14 | ||
8 | typedef u_int8_t u1byte; /* an 8 bit unsigned character type */ | 15 | #define RIJNDAEL_ENCRYPT 0 |
9 | typedef u_int16_t u2byte; /* a 16 bit unsigned integer type */ | 16 | #define RIJNDAEL_DECRYPT 1 |
10 | typedef u_int32_t u4byte; /* a 32 bit unsigned integer type */ | ||
11 | 17 | ||
12 | typedef int8_t s1byte; /* an 8 bit signed character type */ | 18 | typedef struct { |
13 | typedef int16_t s2byte; /* a 16 bit signed integer type */ | 19 | int ROUNDS; /* key-length-dependent number of rounds */ |
14 | typedef int32_t s4byte; /* a 32 bit signed integer type */ | 20 | u_int8_t keySched[RIJNDAEL_MAXROUNDS+1][4][4]; |
21 | } rijndael_key; | ||
15 | 22 | ||
16 | typedef struct _rijndael_ctx { | 23 | int rijndael_encrypt(rijndael_key *key, u_int8_t a[16], u_int8_t b[16]); |
17 | u4byte k_len; | 24 | int rijndael_decrypt(rijndael_key *key, u_int8_t a[16], u_int8_t b[16]); |
18 | int decrypt; | 25 | int rijndael_makekey(rijndael_key *key, int direction, int keyLen, u_int8_t *keyMaterial); |
19 | u4byte e_key[64]; | ||
20 | u4byte d_key[64]; | ||
21 | } rijndael_ctx; | ||
22 | 26 | ||
23 | 27 | #endif | |
24 | /* 2. Standard interface for AES cryptographic routines */ | ||
25 | |||
26 | /* These are all based on 32 bit unsigned values and will therefore */ | ||
27 | /* require endian conversions for big-endian architectures */ | ||
28 | |||
29 | rijndael_ctx *rijndael_set_key __P((rijndael_ctx *, const u4byte *, u4byte, int)); | ||
30 | void rijndael_encrypt __P((rijndael_ctx *, const u4byte *, u4byte *)); | ||
31 | void rijndael_decrypt __P((rijndael_ctx *, const u4byte *, u4byte *)); | ||
32 | |||
33 | #endif /* _RIJNDAEL_H_ */ | ||