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 #define SHA160_BIN_BUFFER_SIZE SHA1_BIN_BUFFER_SIZE
00023
00024 #define SHA160_STR_BUFFER_SIZE SHA1_STR_BUFFER_SIZE
00025
00026
00027 typedef struct dkc_SHA1{
00028 DWORD m_dwH[SHA_HASH];
00029 DWORD m_dwLNumBits;
00030 DWORD m_dwHNumBits;
00031 DWORD m_aBlock[SHA_BLOCK];
00032 int m_nNumChr;
00033 BYTE mFinalized;
00034 }DKC_SHA1,DKC_SHA160;
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00055 DKC_EXTERN DKC_SHA1 *WINAPI dkcAllocSHA1();
00057 DKC_EXTERN void WINAPI dkcSHA1Init(DKC_SHA1 *);
00063 DKC_EXTERN void WINAPI dkcSHA1Load(DKC_SHA1 *p,const BYTE *pBuffer,DWORD dwSize);
00064
00065
00071 DKC_EXTERN void WINAPI dkcSHA1Final(DKC_SHA1 *p);
00078 DKC_EXTERN int WINAPI dkcSHA1DigestStr(DKC_SHA1 *p,char *buff,size_t size);
00080 DKC_EXTERN int WINAPI dkcSHA1Digest(DKC_SHA1 *p,BYTE *buff,size_t size);
00081
00087 DKC_EXTERN int WINAPI dkcSHA1FinalDigestStr(DKC_SHA1 *p,char *buff,size_t size);
00088
00090 DKC_EXTERN int WINAPI dkcSHA1FinalDigest(DKC_SHA1 *p,BYTE *buff,size_t size);
00091
00096 DKC_EXTERN int WINAPI dkcFreeSHA1(DKC_SHA1 **p);
00097
00098
00099 #endif //end of include once