00001
00016 #ifndef dkutil_c_Rijndael
00017 #define dkutil_c_Rijndael
00018
00019 #include "dkcOSIndependent.h"
00020 #include "dkcMemoryStream.h"
00021
00022
00023 #ifdef dkcdBRIAN_GLADMAN_RIJNDAEL
00024
00025
00026 #include "rijndael/aes.h"
00027
00028
00029
00030 #define RIJNDAEL_BLOCK_SIZE BLOCK_SIZE
00031
00032 #endif
00033
00034 typedef struct dkc_RijnDael{
00035 void *mKey;
00036 void *mRijndael;
00037 }DKC_RIJNDAEL;
00038
00039 enum edk_Rijndael{
00041 edkcBAD_KEY_DIR = -1 ,
00043 edkcBAD_KEY_MAT = -2 ,
00045 edkcBAD_KEY_INSTANCE = -3 ,
00047 edkcBAD_CIPHER_MODE = -4 ,
00049 edkcBAD_CIPHER_STATE = -5 ,
00050 edkcBAD_BLOCK_LENGTH = -6,
00051 edkcBAD_CIPHER_INSTANCE = -7,
00053 edkcBAD_DATA = -8 ,
00055 edkcBAD_OTHER = -9,
00057 edkcRijndaelEncrypt = 0,
00059 edkcRijndaelDecrypt = 1,
00061 edkcRijndael_ECB = 1,
00063 edkcRijndael_CBC = 2,
00065 edkcRijndael_CFB1 = 3,
00066 };
00067
00068
00069
00070
00071
00072
00073 DKC_EXTERN DKC_RIJNDAEL *WINAPI dkcAllocRijndael();
00074
00075 DKC_EXTERN DKC_RIJNDAEL *WINAPI dkcAllocRijndaelEncrypt(const BYTE *key,size_t keysize);
00076
00077
00078
00079 DKC_EXTERN DKC_RIJNDAEL *WINAPI dkcAllocRijndaelDecrypt(const BYTE *key,size_t keysize);
00080
00081
00082
00083
00084 DKC_EXTERN int WINAPI dkcFreeRijndael(DKC_RIJNDAEL **);
00085
00086 DKC_EXTERN int WINAPI dkcRijndaelBlockEncrypt(DKC_RIJNDAEL *p,BYTE *dest,int dsize,const BYTE *src,int ssize);
00087
00088
00089 DKC_EXTERN int WINAPI dkcRijndaelBlockDecrypt(DKC_RIJNDAEL *p,BYTE *dest,int dsize,const BYTE *src,int ssize);
00090
00091 DKC_EXTERN int WINAPI dkcRijndaelPadEncrypt(DKC_RIJNDAEL *p,BYTE *dest,int dsize,const BYTE *src,int ssize);
00092
00093
00094 DKC_EXTERN int WINAPI dkcRijndaelPadDecrypt(DKC_RIJNDAEL *p,BYTE *dest,int dsize,const BYTE *src,int ssize);
00095
00096 DKC_EXTERN int WINAPI dkcRijndaelStringKey(DKC_RIJNDAEL *p,
00097 char *dest_and_material,int size,BYTE option);
00098
00099 #define dkcRijndaelEncodeStringKey(a,b,c) dkcRijndaelStringKey(a,b,c,edkcRijndaelEncrypt)
00100
00101 #define dkcRijndaelEDecodeStringKey(a,b,c) dkcRijndaelStringKey(a,b,c,edkcRijndaelDecrypt)
00102
00104 DKC_EXTERN BOOL WINAPI dkcRijndaelErrorMessage(int result,char *buff,size_t size);
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114 #endif //end of include once