#ifndef __RIJNDAEL_H
#define __RIJNDAEL_H
#include "kirk_common.h"
#define AES_KEY_LEN_128 (128)
#define AES_KEY_LEN_192 (192)
#define AES_KEY_LEN_256 (256)
#define AES_BUFFER_SIZE (16)
#define AES_MAXKEYBITS (256)
#define AES_MAXKEYBYTES (AES_MAXKEYBITS/8)
#define AES_MAXROUNDS 14
#define pwuAESContextBuffer rijndael_ctx
typedef struct
{
int enc_only;
int Nr;
u32 ek[4*(AES_MAXROUNDS + 1)];
u32 dk[4*(AES_MAXROUNDS + 1)];
} rijndael_ctx;
typedef struct
{
int enc_only;
int Nr;
u32 ek[4*(AES_MAXROUNDS + 1)];
u32 dk[4*(AES_MAXROUNDS + 1)];
} AES_ctx;
int rijndael_set_key(rijndael_ctx *, const u8 *, int);
int rijndael_set_key_enc_only(rijndael_ctx *, const u8 *, int);
void rijndael_decrypt(rijndael_ctx *, const u8 *, u8 *);
void rijndael_encrypt(rijndael_ctx *, const u8 *, u8 *);
int AES_set_key(AES_ctx *ctx, const u8 *key, int bits);
void AES_encrypt(AES_ctx *ctx, const u8 *src, u8 *dst);
void AES_decrypt(AES_ctx *ctx, const u8 *src, u8 *dst);
void AES_cbc_encrypt(AES_ctx *ctx, const u8 *src, u8 *dst, int size);
void AES_cbc_decrypt(AES_ctx *ctx, const u8 *src, u8 *dst, int size);
void AES_CMAC(AES_ctx *ctx, const unsigned char *input, int length, unsigned char *mac);
int rijndaelKeySetupEnc(unsigned int [], const unsigned char [], int);
int rijndaelKeySetupDec(unsigned int [], const unsigned char [], int);
void rijndaelEncrypt(const unsigned int [], int, const unsigned char [],
unsigned char []);
#endif