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