X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/17a10bf5d838a2f620a673a1b97238a58a06983f..2a49601f69e08f06fb2727d869d420daacdd09d5:/apt-pkg/contrib/md5.h diff --git a/apt-pkg/contrib/md5.h b/apt-pkg/contrib/md5.h index 43bad010a..25631b166 100644 --- a/apt-pkg/contrib/md5.h +++ b/apt-pkg/contrib/md5.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: md5.h,v 1.1 1998/10/31 05:19:59 jgg Exp $ +// $Id: md5.h,v 1.6 2001/05/07 05:06:52 jgg Exp $ /* ###################################################################### MD5SumValue - Storage for a MD5Sum @@ -11,6 +11,8 @@ A MD5Sum is used to generate a (hopefully) unique 16 byte number for a block of data. This can be used to gaurd against corruption of a file. + MD5 should not be used for tamper protection, use SHA or something more + secure. There are two classes because computing a MD5 is not a continual operation unless 64 byte blocks are used. Also the summation requires an @@ -21,46 +23,35 @@ #ifndef APTPKG_MD5_H #define APTPKG_MD5_H -#ifdef __GNUG__ -#pragma interface "apt-pkg/md5.h" -#endif #include +#include +#include +#include -class MD5Summation; +#include "hashsum_template.h" -class MD5SumValue -{ - friend MD5Summation; - unsigned char Sum[4*4]; - - public: +#ifndef APT_8_CLEANER_HEADERS +using std::string; +using std::min; +#endif - // Accessors - bool operator ==(const MD5SumValue &rhs) const; - string Value() const; - inline operator string() const {return Value();}; - bool Set(string Str); - - MD5SumValue(string Str); - MD5SumValue(); -}; +typedef HashSumValue<128> MD5SumValue; -class MD5Summation +class MD5Summation : public SummationImplementation { - unsigned char Buf[4*4]; + uint32_t Buf[4]; unsigned char Bytes[2*4]; unsigned char In[16*4]; bool Done; - + public: - bool Add(const unsigned char *Data,unsigned long Size); - bool AddFD(int Fd,unsigned long Size); - inline bool Add(const unsigned char *Beg,const unsigned char *End) - {return Add(Beg,End-Beg);}; + bool Add(const unsigned char *inbuf, unsigned long long inlen); + using SummationImplementation::Add; + MD5SumValue Result(); - + MD5Summation(); };