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
19int rijndaelKeySched(u_int8_t k[RIJNDAEL_MAXKC][4], u_int8_t rk[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS);
20
21int rijndaelKeyEncToDec(u_int8_t W[RIJNDAEL_MAXROUNDS+1][4][4], int ROUNDS);
22
23int 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
26int 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
29int 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
32int 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