00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00026 #ifndef _AES_H
00027 #define _AES_H
00028
00029 #include "beecrypt/beecrypt.h"
00030 #include "beecrypt/aesopt.h"
00031
00035 #ifdef __cplusplus
00036 struct BEECRYPTAPI aesParam
00037 #else
00038 struct _aesParam
00039 #endif
00040 {
00044 uint32_t k[64];
00048 uint32_t nr;
00052 uint32_t fdback[4];
00053 };
00054
00055 #ifndef __cplusplus
00056 typedef struct _aesParam aesParam;
00057 #endif
00058
00059 #ifdef __cplusplus
00060 extern "C" {
00061 #endif
00062
00066 extern const BEECRYPTAPI blockCipher aes;
00067
00078 BEECRYPTAPI
00079 int aesSetup (aesParam* ap, const byte* key, size_t keybits, cipherOperation op);
00080
00088 BEECRYPTAPI
00089 int aesSetIV (aesParam* ap, const byte* iv);
00090
00099 BEECRYPTAPI
00100 int aesSetCTR (aesParam* ap, const byte* nivz, size_t counter);
00101
00110 BEECRYPTAPI
00111 int aesEncrypt (aesParam* ap, uint32_t* dst, const uint32_t* src);
00112
00121 BEECRYPTAPI
00122 int aesDecrypt (aesParam* ap, uint32_t* dst, const uint32_t* src);
00123
00124 BEECRYPTAPI
00125 uint32_t* aesFeedback(aesParam* ap);
00126
00127 #ifdef __cplusplus
00128 }
00129 #endif
00130
00131 #endif