/* Modified by Greg White Lantronix May 1, 2004 */ #ifndef _RIJNDAEL_H_ #define _RIJNDAEL_H_ #define MAXKEYSIZE (MAXKEYCOLUMNS*4) #define BLOCKSIZE (BLOCKCOLUMNS<<2) #define BLOCKCOLUMNS 4 #define MAXKEYCOLUMNS 8 #define MAXROUNDS 14 //typedef UCHAR cr_block[BLOCKSIZE]; typedef BYTE cr_block[16]; typedef BYTE cr_blockMultiDim[4][BLOCKCOLUMNS]; typedef struct { BYTE keyColumns; BYTE blockColumns; BYTE rounds; cr_blockMultiDim roundKeys[MAXROUNDS+1]; } cr_keyStruct; void aes_key_init( cr_keyStruct *keyStr, BYTE *key, int keyLen); void aes_cipher_init(void); #define CR_CIPHER_INIT() aes_cipher_init() #define CR_KEY_INIT(a, b, c) aes_key_init(a, b, c) #define INIT_VECTOR_LEN 16 #define USE_AES(p) (((p)->flags & PF_AES_MODE) ? TRUE : FALSE) void aes_byte_encrypt(cr_keyStruct *keyStr, cr_block initVec, BYTE *plainText, int nBytes, BYTE *cipherText, BYTE *left, enum cr_mode mode); void aes_byte_decrypt(cr_keyStruct *keyStr, cr_block initVec, BYTE *plainText, int nBytes, BYTE *cipherText, BYTE *left, enum cr_mode mode); unsigned long genrand_int32(void); #ifdef ENCRYPT_MODE_CFB #define CR_byte_ENCRYPT_CFB(a, b, c, d, e, f) aes_byte_encrypt(a, b, c, d, e, f, 1) #define CR_byte_DECRYPT_CFB(a, b, c, d, e, f) aes_byte_encrypt(a, b, c, d, e, f, 2) #endif #endif // _RIJNDAEL_H_