blob: d86f57594c50f5c23357cf5e1c7a21d0f456f3d1 [file] [log] [blame]
/**
* @file md5.h
* A simple class for MD5 calculation
*
* @author Ben Gardner
* @license GPL v2+
*/
#ifndef MD5_H_INCLUDED
#define MD5_H_INCLUDED
#include "base_types.h"
class MD5
{
public:
MD5();
~MD5() { }
void Init();
void Update(const void *data, UINT32 len);
void Final(UINT8 digest[16]);
/* internal function */
static void Transform(UINT32 buf[4], UINT32 in_data[16]);
static void Calc(const void *data, UINT32 length, UINT8 digest[16]);
private:
UINT32 m_buf[4];
UINT32 m_bits[2];
UINT8 m_in[64];
bool m_need_byteswap;
bool m_big_endian;
void reverse_u32(UINT8 *buf, int n_u32);
};
#endif /* MD5_H_INCLUDED */