#ifndef _LTC_AES_H_
#define _LTC_AES_H_
#include <stdint.h>
#include <stddef.h>
#if defined(__cplusplus)
extern "C"
{
#endif
typedef struct ltc_rijndael_key {
uint32_t eK[60], dK[60];
int Nr;
} ltc_rijndael_keysched;
#define ltc_aes_setup ltc_rijndael_setup
#define ltc_aes_ecb_encrypt ltc_rijndael_ecb_encrypt
#define ltc_aes_ecb_decrypt ltc_rijndael_ecb_decrypt
#define ltc_aes_test ltc_rijndael_test
#define ltc_aes_done ltc_rijndael_done
#define ltc_aes_keysize ltc_rijndael_keysize
#define ltc_aes_enc_setup ltc_rijndael_enc_setup
#define ltc_aes_enc_ecb_encrypt ltc_rijndael_enc_ecb_encrypt
#define ltc_aes_enc_keysize ltc_rijndael_enc_keysize
int ltc_rijndael_setup(const unsigned char *key, int keylen, int num_rounds,
ltc_rijndael_keysched *skey);
int ltc_rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct,
ltc_rijndael_keysched *skey);
int ltc_rijndael_ecb_decrypt(const unsigned char *ct, unsigned char *pt,
ltc_rijndael_keysched *skey);
int ltc_rijndael_test(void);
void ltc_rijndael_done(ltc_rijndael_keysched *skey);
int ltc_rijndael_keysize(int *keysize);
int ltc_rijndael_enc_setup(const unsigned char *key, int keylen, int num_rounds,
ltc_rijndael_keysched *skey);
int ltc_rijndael_enc_ecb_encrypt(const unsigned char *pt, unsigned char *ct,
ltc_rijndael_keysched *skey);
void ltc_rijndael_enc_done(ltc_rijndael_keysched *skey);
int ltc_rijndael_enc_keysize(int *keysize);
extern const struct ltc_cipher_descriptor ltc_rijndael_desc, ltc_aes_desc;
extern const struct ltc_cipher_descriptor ltc_rijndael_enc_desc,
ltc_aes_enc_desc;
#if defined(__cplusplus)
}
#endif
#endif