X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/63b1700fd93787682eedc95546a0364f449f036d..1ce0597f39134fe2948d621d566b7c3c8f278d91:/apt-pkg/contrib/hashes.h diff --git a/apt-pkg/contrib/hashes.h b/apt-pkg/contrib/hashes.h index e00eaeb2d..93e7b25d9 100644 --- a/apt-pkg/contrib/hashes.h +++ b/apt-pkg/contrib/hashes.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: hashes.h,v 1.1 2001/03/06 07:15:29 jgg Exp $ +// $Id: hashes.h,v 1.2 2001/03/11 05:30:20 jgg Exp $ /* ###################################################################### Hashes - Simple wrapper around the hash functions @@ -13,12 +13,44 @@ #ifndef APTPKG_HASHES_H #define APTPKG_HASHES_H -#ifdef __GNUG__ -#pragma interface "apt-pkg/hashesh.h" -#endif #include #include +#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(); + + // get hash type used + string HashType() { return Type; }; + + // 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 { @@ -26,11 +58,11 @@ class Hashes MD5Summation MD5; SHA1Summation SHA1; + SHA256Summation SHA256; inline bool Add(const unsigned char *Data,unsigned long Size) { - MD5.Add(Data,Size); - SHA1.Add(Data,Size); + return MD5.Add(Data,Size) && SHA1.Add(Data,Size) && SHA256.Add(Data,Size); }; inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));}; bool AddFD(int Fd,unsigned long Size);