initial
This commit is contained in:
62
public/tier1/checksum_md5.h
Normal file
62
public/tier1/checksum_md5.h
Normal file
@ -0,0 +1,62 @@
|
||||
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: Generic MD5 hashing algo
|
||||
//
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef CHECKSUM_MD5_H
|
||||
#define CHECKSUM_MD5_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
// 16 bytes == 128 bit digest
|
||||
#define MD5_DIGEST_LENGTH 16
|
||||
struct MD5Value_t
|
||||
{
|
||||
unsigned char bits[MD5_DIGEST_LENGTH];
|
||||
|
||||
void Zero();
|
||||
bool IsZero() const;
|
||||
|
||||
bool operator==( const MD5Value_t &src ) const;
|
||||
bool operator!=( const MD5Value_t &src ) const;
|
||||
|
||||
};
|
||||
|
||||
|
||||
// MD5 Hash
|
||||
typedef struct
|
||||
{
|
||||
unsigned int buf[4];
|
||||
unsigned int bits[2];
|
||||
unsigned char in[64];
|
||||
} MD5Context_t;
|
||||
|
||||
void MD5Init( MD5Context_t *context );
|
||||
void MD5Update( MD5Context_t *context, unsigned char const *buf, unsigned int len );
|
||||
void MD5Final( unsigned char digest[ MD5_DIGEST_LENGTH ], MD5Context_t *context );
|
||||
|
||||
char *MD5_Print(unsigned char *digest, int hashlen );
|
||||
|
||||
/// Convenience wrapper to calculate the MD5 for a buffer, all in one step, without
|
||||
/// bothering with the context object.
|
||||
void MD5_ProcessSingleBuffer( const void *p, int len, MD5Value_t &md5Result );
|
||||
|
||||
unsigned int MD5_PseudoRandom(unsigned int nSeed);
|
||||
|
||||
/// Returns true if the values match.
|
||||
bool MD5_Compare( const MD5Value_t &data, const MD5Value_t &compare );
|
||||
|
||||
inline bool MD5Value_t::operator==( const MD5Value_t &src ) const
|
||||
{
|
||||
return MD5_Compare( *this, src );
|
||||
}
|
||||
|
||||
inline bool MD5Value_t::operator!=( const MD5Value_t &src ) const
|
||||
{
|
||||
return !MD5_Compare( *this, src );
|
||||
}
|
||||
|
||||
#endif // CHECKSUM_MD5_H
|
Reference in New Issue
Block a user