ROOT
6.06/09
Reference Guide
|
This code implements the MD5 message-digest algorithm.
The algorithm is due to Ron Rivest. This code was written by Colin Plumb in 1993, no copyright is claimed. This code is in the public domain; do with it what you wish.
Equivalent code is available from RSA Data Security, Inc. This code has been tested against that, and is equivalent, except that you don't need to include two pages of legalese with every copy.
To compute the message digest of a chunk of bytes, create an TMD5 object, call Update() as needed on buffers full of bytes, and then call Final(), which will, optionally, fill a supplied 16-byte array with the digest.
Public Member Functions | |
TMD5 () | |
TMD5 (const UChar_t *digest) | |
Create finalized TMD5 object containing passed in 16 byte digest. More... | |
TMD5 (const TMD5 &md5) | |
MD5 copy ctor. More... | |
virtual | ~TMD5 () |
TMD5 & | operator= (const TMD5 &rhs) |
MD5 assignment operator. More... | |
void | Update (const UChar_t *buf, UInt_t len) |
Update TMD5 object to reflect the concatenation of another buffer full of bytes. More... | |
void | Final () |
MD5 finalization, ends an MD5 message-digest operation, writing the the message digest and zeroizing the context. More... | |
void | Final (UChar_t digest[16]) |
MD5 finalization, ends an MD5 message-digest operation, writing the the message digest and zeroizing the context. More... | |
void | Print () const |
Print digest in ascii hex form. More... | |
const char * | AsString () const |
Return message digest as string. More... | |
Int_t | SetDigest (const char *md5ascii) |
Set the digest from the ASCII representation 'md5ascii'. More... | |
Static Public Member Functions | |
static TMD5 * | ReadChecksum (const char *file) |
Returns checksum stored in ASCII in specified file. More... | |
static Int_t | WriteChecksum (const char *file, const TMD5 *md5) |
Writes checksum in ASCII format to specified file. More... | |
static TMD5 * | FileChecksum (const char *file) |
Returns checksum of specified file. More... | |
static Int_t | FileChecksum (const char *file, UChar_t digest[16]) |
Returns checksum of specified file in digest argument. More... | |
Private Member Functions | |
void | Transform (UInt_t buf[4], const UChar_t in[64]) |
The core of the MD5 algorithm, this alters an existing MD5 hash to reflect the addition of 16 longwords of new data. More... | |
void | Encode (UChar_t *out, const UInt_t *in, UInt_t len) |
Encodes input into output. Assumes len is a multiple of 4. More... | |
void | Decode (UInt_t *out, const UChar_t *in, UInt_t len) |
Decodes input into output. Assumes len is a multiple of 4. More... | |
Private Attributes | |
UInt_t | fBuf [4] |
UInt_t | fBits [2] |
temp buffer More... | |
UChar_t | fIn [64] |
temp buffer More... | |
Char_t | fString [33] |
temp buffer More... | |
UChar_t | fDigest [16] |
string representation of digest More... | |
Bool_t | fFinalized |
Friends | |
Bool_t | operator== (const TMD5 &m1, const TMD5 &m2) |
Compare two message digests for equality. More... | |
#include <TMD5.h>
TMD5::TMD5 | ( | ) |
Referenced by FileChecksum(), and ReadChecksum().
TMD5::TMD5 | ( | const UChar_t * | digest | ) |
TMD5::TMD5 | ( | const TMD5 & | md5 | ) |
const char * TMD5::AsString | ( | ) | const |
Return message digest as string.
Returns "" in case Final() has not yet been called.
Definition at line 218 of file TMD5.cxx.
Referenced by TFilePrefetch::CheckBlockInCache(), TDataSetManagerFile::CheckLocalCache(), TDataSetManagerFile::ChecksumDataSet(), TMakeProject::ChopFileName(), TDataSetManagerFile::CreateLsFile(), TXProofMgr::GetFile(), TFileCollection::GetFilesOnServer(), TFileCollection::GetFilesPerServer(), TAliEnFind::GetSearchId(), TString::MD5(), Print(), TSelEventGen::Process(), TXProofMgr::PutFile(), TFilePrefetch::SaveBlockInCache(), and WriteChecksum().
Decodes input into output. Assumes len is a multiple of 4.
Definition at line 253 of file TMD5.cxx.
Referenced by Transform().
|
static |
Returns checksum of specified file.
The returned TMD5 object must be deleted by the user. Returns 0 in case the file does not exists or in case of error. This function preserves the modtime of the file so it can be safely used in conjunction with methods that keep track of the file's modtime. Static utility function.
Definition at line 472 of file TMD5.cxx.
Referenced by TProof::BuildPackageOnClient(), TApplicationRemote::CheckFile(), TProof::CheckFile(), TDataSetManagerFile::CheckLocalCache(), TDataSetManagerFile::ChecksumDataSet(), TProofLite::CopyMacroToCache(), TDataSetManagerFile::CreateLsFile(), FileChecksum(), TXProofMgr::GetFile(), TProofServ::HandleCache(), TApplicationServer::HandleCheckFile(), TProofServ::HandleCheckFile(), TDataSetManagerFile::NotifyUpdate(), TSelEventGen::Process(), TXProofMgr::PutFile(), TProofPlayer::ReinitSelector(), TProof::UploadPackage(), and TDataSetManagerFile::WriteDataSet().
Returns checksum of specified file in digest argument.
Returns -1 in case of error, 0 otherwise. This method preserves the modtime of the file so it can be safely used in conjunction with methods that keep track of the file's modtime. Static utility function.
void TMD5::Final | ( | ) |
MD5 finalization, ends an MD5 message-digest operation, writing the the message digest and zeroizing the context.
Definition at line 165 of file TMD5.cxx.
Referenced by Memstat::TMemStatMng::AddPointer(), TFilePrefetch::CheckBlockInCache(), TMacro::Checksum(), TMakeProject::ChopFileName(), FileChecksum(), Final(), TUUID::GetRandomInfo(), TAliEnFind::GetSearchId(), TString::MD5(), TFileInfo::Print(), and TFilePrefetch::SaveBlockInCache().
|
static |
Returns checksum stored in ASCII in specified file.
Use to read files created via WriteChecksum(). The returned TMD5 object must be deleted by the user. Returns 0 in case the file cannot be opened or in case of error. Static utility function.
Definition at line 420 of file TMD5.cxx.
Referenced by TDataSetManagerFile::CheckLocalCache(), TDataSetManagerFile::GetDataSet(), TProofServ::HandleCheckFile(), and TProof::UploadPackageOnClient().
Int_t TMD5::SetDigest | ( | const char * | md5ascii | ) |
Set the digest from the ASCII representation 'md5ascii'.
The caller is responsible to make sure that the 32 chars md5ascii are valid. Returns -1 if md5ascii is malformed, returns 0 otherwise.
Definition at line 393 of file TMD5.cxx.
Referenced by TFileInfo::ParseInput(), and ReadChecksum().
Update TMD5 object to reflect the concatenation of another buffer full of bytes.
Definition at line 106 of file TMD5.cxx.
Referenced by Memstat::TMemStatMng::AddPointer(), TFilePrefetch::CheckBlockInCache(), TMacro::Checksum(), TMakeProject::ChopFileName(), FileChecksum(), Final(), TUUID::GetRandomInfo(), TAliEnFind::GetSearchId(), TString::MD5(), and TFilePrefetch::SaveBlockInCache().
Writes checksum in ASCII format to specified file.
This file can directly be read by ReadChecksum(). The md5 must have been finalized. Returns -1 in case file cannot be opened or in case of error, 0 otherwise. Static utility function.
Definition at line 450 of file TMD5.cxx.
Referenced by TDataSetManagerFile::CheckLocalCache(), TDataSetManagerFile::ChecksumDataSet(), TProofServ::HandleCache(), TProofServ::HandleCheckFile(), and TProof::UploadPackageOnClient().
|
private |
|
private |
|
private |
string representation of digest
Definition at line 55 of file TMD5.h.
Referenced by AsString(), FileChecksum(), Final(), operator=(), operator==(), SetDigest(), and TMD5().
|
private |
Definition at line 56 of file TMD5.h.
Referenced by AsString(), Final(), operator=(), operator==(), Print(), SetDigest(), TMD5(), and Update().
|
private |
|
mutableprivate |