00001
00007 #ifndef DKUTIL_C_SHA1_H
00008 #define DKUTIL_C_SHA1_H
00009
00010 #include "dkcOSIndependent.h"
00011
00012 #define SHA_HASH 5
00013 #define SHA_BLOCK 16
00014 #define SHA_WORK 80
00015
00016
00018 #define SHA1_BIN_BUFFER_SIZE (SHA_HASH * 4)
00019
00020 #define SHA1_STR_BUFFER_SIZE (SHA_HASH * 8 + 1)
00021
00022 typedef struct dkc_SHA1{
00023 DWORD m_dwH[SHA_HASH];
00024 DWORD m_dwLNumBits;
00025 DWORD m_dwHNumBits;
00026 DWORD m_aBlock[SHA_BLOCK];
00027 int m_nNumChr;
00028 BYTE mFinalized;
00029 }DKC_SHA1;
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00050 DKC_EXTERN DKC_SHA1 *WINAPI dkcAllocSHA1();
00052 DKC_EXTERN void WINAPI dkcSHA1Init(DKC_SHA1 *);
00058 DKC_EXTERN void WINAPI dkcSHA1Load(DKC_SHA1 *p,const BYTE *pBuffer,DWORD dwSize);
00059
00060
00066 DKC_EXTERN void WINAPI dkcSHA1Final(DKC_SHA1 *p);
00073 DKC_EXTERN int WINAPI dkcSHA1DigestStr(DKC_SHA1 *p,char *buff,size_t size);
00075 DKC_EXTERN int WINAPI dkcSHA1Digest(DKC_SHA1 *p,BYTE *buff,size_t size);
00076
00082 DKC_EXTERN int WINAPI dkcSHA1FinalDigestStr(DKC_SHA1 *p,char *buff,size_t size);
00083
00085 DKC_EXTERN int WINAPI dkcSHA1FinalDigest(DKC_SHA1 *p,BYTE *buff,size_t size);
00086
00091 DKC_EXTERN int WINAPI dkcFreeSHA1(DKC_SHA1 **p);
00092
00093
00094 #endif //end of include once