1 /* 2 * rijndael-alg.h v2.4 April '2000 3 * 4 * Optimised ANSI C code 5 */ 6 7 #ifndef __RIJNDAEL_ALG_H 8 #define __RIJNDAEL_ALG_H 9 10 #define MAXKC (256/32) 11 #define MAXROUNDS 14 12 13 /* Fix me: something generic based on inttypes.h */ 14 #include "word_i386.h" 15 16 int rijndael_KeySched(word8 k[MAXKC][4], word8 rk[MAXROUNDS+1][4][4], int ROUNDS); 17 18 int rijndael_KeyEncToDec(word8 W[MAXROUNDS+1][4][4], int ROUNDS); 19 20 int rijndael_Encrypt(const void *a, void *b, word8 rk[MAXROUNDS+1][4][4], int ROUNDS); 21 22 #ifdef INTERMEDIATE_VALUE_KAT 23 int rijndaelEncryptRound(word8 a[4][4], word8 rk[MAXROUNDS+1][4][4], int ROUNDS, int rounds); 24 #endif /* INTERMEDIATE_VALUE_KAT */ 25 26 int rijndael_Decrypt(const void *a, void *b, word8 rk[MAXROUNDS+1][4][4], int ROUNDS); 27 28 #ifdef INTERMEDIATE_VALUE_KAT 29 int rijndaelDecryptRound(word8 a[4][4], word8 rk[MAXROUNDS+1][4][4], int ROUNDS, int rounds); 30 #endif /* INTERMEDIATE_VALUE_KAT */ 31 32 #endif /* __RIJNDAEL_ALG_H */ 33 34 /* 35 * $PchId: rijndael-alg.h,v 1.3 2003/09/29 09:19:17 philip Exp $ 36 */ 37