diff options
author | Arch Librarian <arch@canonical.com> | 2004-09-20 16:51:15 +0000 |
---|---|---|
committer | Arch Librarian <arch@canonical.com> | 2004-09-20 16:51:15 +0000 |
commit | 17a10bf5d838a2f620a673a1b97238a58a06983f (patch) | |
tree | 8fb564e04b28e806ccd493e3f655d83446ef48d4 /apt-pkg/contrib/md5.h | |
parent | 93bf083d699c60f1ac40297bfa6783fb0cb800d8 (diff) |
Md5 support
Author: jgg
Date: 1998-10-31 05:19:59 GMT
Md5 support
Diffstat (limited to 'apt-pkg/contrib/md5.h')
-rw-r--r-- | apt-pkg/contrib/md5.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/apt-pkg/contrib/md5.h b/apt-pkg/contrib/md5.h new file mode 100644 index 000000000..43bad010a --- /dev/null +++ b/apt-pkg/contrib/md5.h @@ -0,0 +1,67 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: md5.h,v 1.1 1998/10/31 05:19:59 jgg Exp $ +/* ###################################################################### + + MD5SumValue - Storage for a MD5Sum + MD5Summation - MD5 Message Digest Algorithm. + + This is a C++ interface to a set of MD5Sum functions. The class can + store a MD5Sum in 16 bytes of memory. + + 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. + + There are two classes because computing a MD5 is not a continual + operation unless 64 byte blocks are used. Also the summation requires an + extra 18*4 bytes to operate. + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_MD5_H +#define APTPKG_MD5_H + +#ifdef __GNUG__ +#pragma interface "apt-pkg/md5.h" +#endif + +#include <string> + +class MD5Summation; + +class MD5SumValue +{ + friend MD5Summation; + unsigned char Sum[4*4]; + + public: + + // Accessors + bool operator ==(const MD5SumValue &rhs) const; + string Value() const; + inline operator string() const {return Value();}; + bool Set(string Str); + + MD5SumValue(string Str); + MD5SumValue(); +}; + +class MD5Summation +{ + unsigned char Buf[4*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);}; + MD5SumValue Result(); + + MD5Summation(); +}; + +#endif |