00001
00004 #ifndef XYSSL_AES_H
00005 #define XYSSL_AES_H
00006
00007 #define AES_ENCRYPT 1
00008 #define AES_DECRYPT 0
00009
00013 typedef struct
00014 {
00015 int nr;
00016 unsigned long *rk;
00017 unsigned long buf[68];
00018 }
00019 aes_context;
00020
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024
00032 void aes_setkey_enc( aes_context *ctx, unsigned char *key, int keysize );
00033
00041 void aes_setkey_dec( aes_context *ctx, unsigned char *key, int keysize );
00042
00051 void aes_crypt_ecb( aes_context *ctx,
00052 int mode,
00053 unsigned char input[16],
00054 unsigned char output[16] );
00055
00066 void aes_crypt_cbc( aes_context *ctx,
00067 int mode,
00068 int length,
00069 unsigned char iv[16],
00070 unsigned char *input,
00071 unsigned char *output );
00072
00084 void aes_crypt_cfb( aes_context *ctx,
00085 int mode,
00086 int length,
00087 int *iv_off,
00088 unsigned char iv[16],
00089 unsigned char *input,
00090 unsigned char *output );
00091
00097 int aes_self_test( int verbose );
00098
00099 #ifdef __cplusplus
00100 }
00101 #endif
00102
00103 #endif