2 * rijndael-alg-fst.h v2.4 April '2000
4 * Optimised ANSI C code
6 * #define INTERMEDIATE_VALUE_KAT to generate the Intermediate Value Known Answer Test.
9 #ifndef __RIJNDAEL_ALG_FST_H
10 #define __RIJNDAEL_ALG_FST_H
12 #define RIJNDAEL_MAXKC (256/32)
13 #define RIJNDAEL_MAXROUNDS 14
17 typedef unsigned char byte;
18 typedef unsigned char word8;
19 typedef unsigned short word16;
20 typedef unsigned int word32;
21 #endif /* USUAL_TYPES */
23 int rijndaelKeySched(const word8 k[RIJNDAEL_MAXKC][4],
24 word8 rk[RIJNDAEL_MAXROUNDS+1][4][4],
27 int rijndaelKeyEncToDec(word8 W[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS);
29 int rijndaelEncrypt(const word8 a[16],word8 b[16],
30 word8 rk[RIJNDAEL_MAXROUNDS+1][4][4],
33 #ifdef INTERMEDIATE_VALUE_KAT
34 int rijndaelEncryptRound(word8 a[4][4],word8 rk[RIJNDAEL_MAXROUNDS+1][4][4],
35 int ROUNDS, int rounds);
36 #endif /* INTERMEDIATE_VALUE_KAT */
38 int rijndaelDecrypt(const word8 a[16], word8 b[16],
39 word8 rk[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS);
41 #ifdef INTERMEDIATE_VALUE_KAT
42 int rijndaelDecryptRound(word8 a[4][4], word8 rk[RIJNDAEL_MAXROUNDS+1][4][4],
43 int ROUNDS, int rounds);
44 #endif /* INTERMEDIATE_VALUE_KAT */
46 #endif /* __RIJNDAEL_ALG_FST_H */