summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib/md5.h
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:51:15 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:51:15 +0000
commit17a10bf5d838a2f620a673a1b97238a58a06983f (patch)
tree8fb564e04b28e806ccd493e3f655d83446ef48d4 /apt-pkg/contrib/md5.h
parent93bf083d699c60f1ac40297bfa6783fb0cb800d8 (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.h67
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