00001
00012 #ifndef DKUTIL_C_MD5_H
00013 #define DKUTIL_C_MD5_H
00014
00015 #include "md_misc.h"
00016 #include "dkcOSIndependent.h"
00017
00018
00020 #define MD5_BIN_BUFFER_SIZE 16
00021
00022 #define MD5_STR_BUFFER_SIZE 33
00023
00029 DKC_EXTERN DKC_MD5 *WINAPI dkcAllocMD5();
00030
00032 DKC_EXTERN void WINAPI dkcMD5Init(DKC_MD5 *);
00033
00034 DKC_INLINE void dkcMD5InitEx(DKC_MD5 *p,uint8 flags)
00035 {
00036 dkcMD5Init(p);
00037 p->flags = flags;
00038 }
00039
00048 DKC_EXTERN void WINAPI dkcMD5Load(DKC_MD5 *p,const BYTE *pBuffer,DWORD dwSize);
00049
00050
00056 DKC_EXTERN void WINAPI dkcMD5Final(DKC_MD5 *p);
00063 DKC_EXTERN int WINAPI dkcMD5DigestStr(DKC_MD5 *p,char *buff,size_t size);
00065 DKC_EXTERN int WINAPI dkcMD5Digest(DKC_MD5 *p,BYTE *buff,size_t size);
00066
00072 DKC_EXTERN int WINAPI dkcMD5FinalDigestStr(DKC_MD5 *p,char *buff,size_t size);
00074 DKC_EXTERN int WINAPI dkcMD5FinalDigest(DKC_MD5 *p,BYTE *buff,size_t size);
00075
00080 DKC_EXTERN int WINAPI dkcFreeMD5(DKC_MD5 **p);
00081
00083 DKC_EXTERN void WINAPI dkcMD5LoadDouble(
00084 DKC_MD5 *p,uint8 const *buf, uint32 len,
00085 DKC_MD5 *p2,uint8 const *buf2, uint32 len2);
00086
00087
00088
00089 #ifndef DKINGYOUTILITY3_EXPORTS
00090 typedef struct dkc_MD5_Adapter{
00091
00092 void *mpObj;
00093 uint32 mObjFlag;
00094 BYTE mFinalized;
00095 }DKC_MD5_ADAPTER;
00096
00097 enum edkcMD5ObjectFlag
00098 {
00102 edkcMD5_Default = 0,
00104 edkcMD5_Aladdin,
00105 };
00111 DKC_EXTERN DKC_MD5_ADAPTER *WINAPI dkcAllocMD5Adapter(uint32 md5_objflag);
00112
00114 DKC_EXTERN void WINAPI dkcMD5AdapterInit(DKC_MD5_ADAPTER *);
00123 DKC_EXTERN int WINAPI dkcMD5AdapterLoad(DKC_MD5_ADAPTER *p,const BYTE *pBuffer,DWORD dwSize);
00124
00126 DKC_EXTERN void WINAPI dkcMD5AdapterLoadStandard(DKC_MD5_ADAPTER *p,const BYTE *pBuffer,DWORD dwSize);
00127
00128
00134 DKC_EXTERN void WINAPI dkcMD5AdapterFinal(DKC_MD5_ADAPTER *p);
00141 DKC_EXTERN int WINAPI dkcMD5AdapterDigestStr(DKC_MD5_ADAPTER *p,char *buff,size_t size);
00143 DKC_EXTERN int WINAPI dkcMD5AdapterDigest(DKC_MD5_ADAPTER *p,BYTE *buff,size_t size);
00144
00150 DKC_EXTERN int WINAPI dkcMD5AdapterFinalDigestStr(DKC_MD5_ADAPTER *p,char *buff,size_t size);
00152 DKC_EXTERN int WINAPI dkcMD5AdapterFinalDigest(DKC_MD5_ADAPTER *p,BYTE *buff,size_t size);
00153
00158 DKC_EXTERN int WINAPI dkcFreeMD5Adapter(DKC_MD5_ADAPTER **p);
00159
00160 #endif
00161
00162
00163
00164 #endif //end of include once