]>
Commit | Line | Data |
---|---|---|
4371658c | 1 | /* $OpenBSD: rijndael.h,v 1.7 2001/03/01 03:38:33 deraadt Exp $ */ |
2 | ||
3 | /* This is an independent implementation of the encryption algorithm: */ | |
4 | /* */ | |
5 | /* RIJNDAEL by Joan Daemen and Vincent Rijmen */ | |
6 | /* */ | |
7 | /* which is a candidate algorithm in the Advanced Encryption Standard */ | |
8 | /* programme of the US National Institute of Standards and Technology. */ | |
9 | /* */ | |
10 | /* Copyright in this implementation is held by Dr B R Gladman but I */ | |
11 | /* hereby give permission for its free direct or derivative use subject */ | |
12 | /* to acknowledgment of its origin and compliance with any conditions */ | |
13 | /* that the originators of the algorithm place on its exploitation. */ | |
14 | /* */ | |
15 | /* Dr Brian Gladman (gladman@seven77.demon.co.uk) 14th January 1999 */ | |
23c2a7a5 | 16 | |
6b523bae | 17 | #ifndef _RIJNDAEL_H_ |
18 | #define _RIJNDAEL_H_ | |
94ec8c6b | 19 | |
6b523bae | 20 | #include "config.h" |
4d670c24 | 21 | |
6b523bae | 22 | /* 1. Standard types for AES cryptography source code */ |
94ec8c6b | 23 | |
6b523bae | 24 | typedef u_int8_t u1byte; /* an 8 bit unsigned character type */ |
25 | typedef u_int16_t u2byte; /* a 16 bit unsigned integer type */ | |
26 | typedef u_int32_t u4byte; /* a 32 bit unsigned integer type */ | |
94ec8c6b | 27 | |
6b523bae | 28 | typedef int8_t s1byte; /* an 8 bit signed character type */ |
29 | typedef int16_t s2byte; /* a 16 bit signed integer type */ | |
30 | typedef int32_t s4byte; /* a 32 bit signed integer type */ | |
94ec8c6b | 31 | |
6b523bae | 32 | typedef struct _rijndael_ctx { |
33 | u4byte k_len; | |
34 | int decrypt; | |
35 | u4byte e_key[64]; | |
36 | u4byte d_key[64]; | |
37 | } rijndael_ctx; | |
94ec8c6b | 38 | |
6b523bae | 39 | |
40 | /* 2. Standard interface for AES cryptographic routines */ | |
41 | ||
42 | /* These are all based on 32 bit unsigned values and will therefore */ | |
43 | /* require endian conversions for big-endian architectures */ | |
44 | ||
45 | rijndael_ctx *rijndael_set_key __P((rijndael_ctx *, const u4byte *, u4byte, int)); | |
46 | void rijndael_encrypt __P((rijndael_ctx *, const u4byte *, u4byte *)); | |
47 | void rijndael_decrypt __P((rijndael_ctx *, const u4byte *, u4byte *)); | |
48 | ||
49 | #endif /* _RIJNDAEL_H_ */ |