int HashFile(char **Return, char *Type, char *Path, int Encoding) { THash *Hash; STREAM *S; char *Tempstr=NULL; int result; S=STREAMOpenFile(Path,O_RDONLY); if (! S) return(FALSE); Hash=HashInit(Type); if (! Hash) { STREAMClose(S); return(FALSE); } Tempstr=SetStrLen(Tempstr,4096); result=STREAMReadBytes(S,Tempstr,4096); while (result !=EOF) { Hash->Update(Hash, Tempstr, result); result=STREAMReadBytes(S,Tempstr,4096); } DestroyString(Tempstr); STREAMClose(S); result=Hash->Finish(Hash, Encoding, Return); HashDestroy(Hash); return(result); }
void HMACUpdate(THash *HMAC, char *Data, int Len) { THash *Hash; Hash=(THash *) HMAC->Ctx; Hash->Update(Hash,Data,Len); }
int HashBytes(char **Return, char *Type, char *text, int len, int Encoding) { THash *Hash; Hash=HashInit(Type); Hash->Update(Hash, text, len); return(Hash->Finish(Hash, Encoding, Return)); }
int HashBytes(char **Return, char *Type, char *text, int len, int Encoding) { THash *Hash; int result; Hash=HashInit(Type); if (! Hash) return(0); Hash->Update(Hash, text, len); result=HashFinish(Hash, Encoding, Return); return(result); }
inline void Update(const TKey& oKey, const TData &oSrc, bool bUpdateAll=true) { CMapNode<TKey, TData> oNode(oKey, oSrc); m_oHash.Update(oNode, bUpdateAll); }