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