47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
|
/*
|
||
|
* 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 */
|