diff options
Diffstat (limited to 'crypto/rijndael/rd_fst.h')
-rwxr-xr-x | crypto/rijndael/rd_fst.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/crypto/rijndael/rd_fst.h b/crypto/rijndael/rd_fst.h new file mode 100755 index 0000000000..9a86e25cf7 --- /dev/null +++ b/crypto/rijndael/rd_fst.h @@ -0,0 +1,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 */ |