From 495e5cb25443e6606c0d02891e1f6610983e88cd Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 26 Jul 2007 19:18:11 +0200 Subject: * implement sha256/sha1/md5 checking with proper backward compatibility and fallback --- apt-pkg/contrib/hashes.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'apt-pkg/contrib/hashes.h') diff --git a/apt-pkg/contrib/hashes.h b/apt-pkg/contrib/hashes.h index b09ea9f6b..86c0eb2ad 100644 --- a/apt-pkg/contrib/hashes.h +++ b/apt-pkg/contrib/hashes.h @@ -19,8 +19,35 @@ #include #include +#include using std::min; +using std::vector; + +// helper class that contains hash function name +// and hash +class HashString +{ + protected: + string Type; + string Hash; + static const char * _SupportedHashes[10]; + + public: + HashString(string Type, string Hash); + HashString(string StringedHashString); // init from str as "type:hash" + HashString(); + + // verify the given filename against the currently loaded hash + bool VerifyFile(string filename) const; + + // helper + string toStr() const; // convert to str as "type:hash" + bool empty() const; + + // return the list of hashes we support + static const char** SupportedHashes(); +}; class Hashes { -- cgit v1.2.3 From 8a8feb29265b3dfc27f82072563a641a7976752a Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 30 Jul 2007 17:47:05 +0200 Subject: * apt-pkg/acquire-item.{cc,h}: - rename "hash" into ExpectedHash in pkgAcqFile, pkgAcqIndex - add missing HashSum() call to class pkgAcqIndex - use the data provided by acquire-method (and send via the {SHA256,SHA1,MD5Sum}-Hash tag when comparing the hash, this avoids calculating the hash twice (just like old libapt) * apt-pkg/acquire-method.cc: - send MD5Sum-Hash tag to libapt to be consistant with HashString::SupportedHashes() * apt-pkg/acquire-worker.cc: - check with "Owner->HashSum().HashType()" what hash the frontend is expecting and pass it to pkgAcquireItem::Done() in the new HashString format - add some debugging output * apt-pkg/contrib/hashes.cc: - fix off-by-one error when constructing a HashString from a single input string * apt-pkg/contrib/hashes.h: - add "HashType()" method * apt-pkg/init.h, apt-pkg/makefile, methods/makefile: - break ABI --- apt-pkg/contrib/hashes.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'apt-pkg/contrib/hashes.h') diff --git a/apt-pkg/contrib/hashes.h b/apt-pkg/contrib/hashes.h index 86c0eb2ad..93e7b25d9 100644 --- a/apt-pkg/contrib/hashes.h +++ b/apt-pkg/contrib/hashes.h @@ -38,6 +38,9 @@ class HashString HashString(string StringedHashString); // init from str as "type:hash" HashString(); + // get hash type used + string HashType() { return Type; }; + // verify the given filename against the currently loaded hash bool VerifyFile(string filename) const; -- cgit v1.2.3