00001
00007 #ifndef dkutil_c_SHA256
00008 #define dkutil_c_SHA256
00009
00010 #include "dkcOSIndependent.h"
00011
00012 #define SHA256_HASH 8
00013 #define SHA256_BLOCK 16
00014 #define SHA256_WORK 64
00015
00016
00018 #define SHA256_BIN_BUFFER_SIZE (SHA256_HASH * 4)
00019
00020 #define SHA256_STR_BUFFER_SIZE (SHA256_HASH * 8 + 1)
00021
00022 typedef struct dkc_SHA256{
00023 DWORD m_dwH[SHA256_HASH];
00024 DWORD m_dwLNumBits;
00025 DWORD m_dwHNumBits;
00026 DWORD m_aBlock[SHA256_BLOCK];
00027 int m_nNumChr;
00028 BYTE mFinalized;
00029 }DKC_SHA256;
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00051 DKC_EXTERN DKC_SHA256 *WINAPI dkcAllocSHA256();
00053 DKC_EXTERN void WINAPI dkcSHA256Init(DKC_SHA256 *);
00059 DKC_EXTERN void WINAPI dkcSHA256Load(DKC_SHA256 *p,const BYTE *pBuffer,DWORD dwSize);
00060
00061
00067 DKC_EXTERN void WINAPI dkcSHA256Final(DKC_SHA256 *p);
00074
00075 DKC_EXTERN int WINAPI dkcSHA256DigestStr(DKC_SHA256 *p,char *buff,size_t size);
00076
00078 DKC_EXTERN int WINAPI dkcSHA256Digest(DKC_SHA256 *p,BYTE *buff,size_t size);
00079
00085 DKC_EXTERN int WINAPI dkcSHA256FinalDigestStr(DKC_SHA256 *p,char *buff,size_t size);
00086
00088 DKC_EXTERN int WINAPI dkcSHA256FinalDigest(DKC_SHA256 *p,BYTE *buff,size_t size);
00089
00094 DKC_EXTERN int WINAPI dkcFreeSHA256(DKC_SHA256 **p);
00095
00096 #endif //end of include once