00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined(AFX_MD4_H__B0429238_3786_452C_B43D_3311AE91B5DA__INCLUDED_)
00024 #define AFX_MD4_H__B0429238_3786_452C_B43D_3311AE91B5DA__INCLUDED_
00025
00026 #pragma once
00027
00028
00029 class CMD4
00030 {
00031
00032 public:
00033 CMD4();
00034 virtual ~CMD4();
00035
00036
00037 protected:
00038 DWORD m_nState[4];
00039 DWORD m_nCount[2];
00040 BYTE m_pBuffer[64];
00041
00042
00043 public:
00044 void Reset();
00045 void Add(LPCVOID pData, DWORD nLength);
00046 void Finish();
00047 void GetHash(MD4* pHash);
00048
00049 };
00050
00051 inline bool operator==(const MD4& md4a, const MD4& md4b)
00052 {
00053 return memcmp( &md4a, &md4b, 16 ) == 0;
00054 }
00055
00056 inline bool operator!=(const MD4& md4a, const MD4& md4b)
00057 {
00058 return memcmp( &md4a, &md4b, 16 ) != 0;
00059 }
00060
00061 #endif // !defined(AFX_MD4_H__B0429238_3786_452C_B43D_3311AE91B5DA__INCLUDED_)