00001
00012 #ifndef DKUTIL_C_MD2_H
00013 #define DKUTIL_C_MD2_H
00014
00015 #include "md_misc.h"
00016 #include "dkcOSIndependent.h"
00017
00018
00020 #define MD2_BIN_BUFFER_SIZE 16
00021
00022 #define MD2_STR_BUFFER_SIZE 33
00023
00024
00025 typedef struct dkc_MD2{
00026
00027 uint8 C[16];
00028 uint8 X[48];
00029
00030 unsigned int count;
00031 uint8 buf[16];
00032 uint8 flags;
00033 }DKC_MD2;
00034
00035
00041 DKC_EXTERN DKC_MD2 *WINAPI dkcAllocMD2();
00042
00044 DKC_EXTERN void WINAPI dkcMD2Init(DKC_MD2 *);
00045
00046 DKC_INLINE void dkcMD2InitEx(DKC_MD2 *p,uint8 flags)
00047 {
00048 dkcMD2Init(p);
00049 p->flags = flags;
00050 }
00051
00060 DKC_EXTERN void WINAPI dkcMD2Load(DKC_MD2 *p,const BYTE *pBuffer,DWORD dwSize);
00061
00062
00068 DKC_EXTERN void WINAPI dkcMD2Final(DKC_MD2 *p);
00075 DKC_EXTERN int WINAPI dkcMD2DigestStr(DKC_MD2 *p,char *buff,size_t size);
00077 DKC_EXTERN int WINAPI dkcMD2Digest(DKC_MD2 *p,BYTE *buff,size_t size);
00078
00084 DKC_EXTERN int WINAPI dkcMD2FinalDigestStr(DKC_MD2 *p,char *buff,size_t size);
00086 DKC_EXTERN int WINAPI dkcMD2FinalDigest(DKC_MD2 *p,BYTE *buff,size_t size);
00087
00092 DKC_EXTERN int WINAPI dkcFreeMD2(DKC_MD2 **p);
00093
00094
00095
00096 #endif //end of include once