From 636c7dc17286d93d788c741d15fd756aeda066d5 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 5 May 2024 20:07:13 +0200 Subject: Adding upstream version 1.8.2.3. Signed-off-by: Daniel Baumann --- apt-pkg/contrib/md5.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 apt-pkg/contrib/md5.h (limited to 'apt-pkg/contrib/md5.h') diff --git a/apt-pkg/contrib/md5.h b/apt-pkg/contrib/md5.h new file mode 100644 index 0000000..38b6c68 --- /dev/null +++ b/apt-pkg/contrib/md5.h @@ -0,0 +1,58 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +/* ###################################################################### + + 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 guard 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 + extra 18*4 bytes to operate. + + ##################################################################### */ + /*}}}*/ +#ifndef APTPKG_MD5_H +#define APTPKG_MD5_H + +#include + +#include "hashsum_template.h" + +#ifndef APT_10_CLEANER_HEADERS +#include +#include +#include +#endif +#ifndef APT_8_CLEANER_HEADERS +using std::string; +using std::min; +#endif + +typedef HashSumValue<128> MD5SumValue; + +class MD5Summation : public SummationImplementation +{ + uint32_t Buf[4]; + unsigned char Bytes[2*4]; + unsigned char In[16*4]; + bool Done; + + public: + + bool Add(const unsigned char *inbuf, unsigned long long inlen) APT_OVERRIDE APT_NONNULL(2); + using SummationImplementation::Add; + + MD5SumValue Result(); + + MD5Summation(); +}; + +#endif -- cgit v1.2.3