1 /* $NetBSD: rijndael-alg-fst.h,v 1.4 2006/09/09 16:22:36 manu Exp $ */ 2 3 /* $KAME: rijndael-alg-fst.h,v 1.1.1.1 2001/08/08 09:56:23 sakane Exp $ */ 4 5 /* 6 * rijndael-alg-fst.h v2.3 April '2000 7 * 8 * Optimised ANSI C code 9 * 10 * #define INTERMEDIATE_VALUE_KAT to generate the Intermediate Value Known Answer Test. 11 */ 12 13 #ifndef __RIJNDAEL_ALG_FST_H 14 #define __RIJNDAEL_ALG_FST_H 15 16 #define RIJNDAEL_MAXKC (256/32) 17 #define RIJNDAEL_MAXROUNDS 14 18 19 int rijndaelKeySched(u_int8_t k[RIJNDAEL_MAXKC][4], u_int8_t rk[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS); 20 21 int rijndaelKeyEncToDec(u_int8_t W[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS); 22 23 int rijndaelEncrypt(u_int8_t a[16], u_int8_t b[16], u_int8_t rk[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS); 24 25 #ifdef INTERMEDIATE_VALUE_KAT 26 int rijndaelEncryptRound(u_int8_t a[4][4], u_int8_t rk[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS, int rounds); 27 #endif /* INTERMEDIATE_VALUE_KAT */ 28 29 int rijndaelDecrypt(u_int8_t a[16], u_int8_t b[16], u_int8_t rk[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS); 30 31 #ifdef INTERMEDIATE_VALUE_KAT 32 int rijndaelDecryptRound(u_int8_t a[4][4], u_int8_t rk[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS, int rounds); 33 #endif /* INTERMEDIATE_VALUE_KAT */ 34 35 #endif /* __RIJNDAEL_ALG_FST_H */ 36