// MD5Fun.h: interface for the CMD5Fun class. // ////////////////////////////////////////////////////////////////////// #ifndef _OICOMM_MD5FUN_H #define _OICOMM_MD5FUN_H #include "OIComm_global.h" namespace OIComm { ///////////////////////////////////////////////////////////////////////////// // CGuid window typedef uint32_t UINT4; class OICOMM_API CMD5Fun { public: CMD5Fun(); virtual ~CMD5Fun(); typedef struct _MD5_CTX { UINT4 i[2]; /* number of _bits_ handled mod 2^64 */ UINT4 buf[4]; /* scratch buffer */ unsigned char in[64]; /* input buffer */ unsigned char digest[32]; /* actual digest after MD5Final call */ } MD5_CTX; // Operations public: static void digest_md5( unsigned char* buffer, int buffer_len, unsigned char* digest ); static bool digest_filemd5( unsigned char *pszFile, unsigned char *pszDigest ); protected: static void MD5Init( MD5_CTX *mdContext ); static void MD5Update( MD5_CTX *mdContext, unsigned char *inBuf, unsigned int inLen ); static void MD5Final( MD5_CTX *mdContext ); static void Transform( UINT4 *buf, UINT4 *in ); }; } // End of namespace OIComm #endif // _OICOMM_MD5FUN_H