X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/784202a271ae7e303aacbe226bb87fed50a16f81..1afd369d00f2f9272462ffc6c6e24f293a81459e:/apt-pkg/contrib/sha1.h diff --git a/apt-pkg/contrib/sha1.h b/apt-pkg/contrib/sha1.h index a6fe2d94a..a8d55eb13 100644 --- a/apt-pkg/contrib/sha1.h +++ b/apt-pkg/contrib/sha1.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: sha1.h,v 1.1 2001/03/06 05:03:49 jgg Exp $ +// $Id: sha1.h,v 1.3 2001/05/07 05:05:47 jgg Exp $ /* ###################################################################### SHA1SumValue - Storage for a SHA-1 hash. @@ -14,49 +14,31 @@ #ifndef APTPKG_SHA1_H #define APTPKG_SHA1_H -#ifdef __GNUG__ -#pragma interface "apt-pkg/sha1.h" -#endif - #include +#include +#include -class SHA1Summation; +#include "hashsum_template.h" -class SHA1SumValue -{ - friend class SHA1Summation; - unsigned char Sum[20]; - - public: - - // Accessors - bool operator ==(const SHA1SumValue &rhs) const; - string Value() const; - inline void Value(unsigned char S[20]) - {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];}; - inline operator string() const {return Value();}; - bool Set(string Str); - inline void Set(unsigned char S[20]) - {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];}; +#ifndef APT_8_CLEANER_HEADERS +using std::string; +using std::min; +#endif - SHA1SumValue(string Str); - SHA1SumValue(); -}; +typedef HashSumValue<160> SHA1SumValue; -class SHA1Summation +class SHA1Summation : public SummationImplementation { - unsigned char Buffer[64]; - unsigned char State[5*4]; - unsigned char Count[2*4]; + /* assumes 64-bit alignment just in case */ + unsigned char Buffer[64] __attribute__((aligned(8))); + unsigned char State[5*4] __attribute__((aligned(8))); + unsigned char Count[2*4] __attribute__((aligned(8))); bool Done; public: + bool Add(const unsigned char *inbuf, unsigned long long inlen); + using SummationImplementation::Add; - bool Add(const unsigned char *inbuf,unsigned long inlen); - inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));}; - bool AddFD(int Fd,unsigned long Size); - inline bool Add(const unsigned char *Beg,const unsigned char *End) - {return Add(Beg,End-Beg);}; SHA1SumValue Result(); SHA1Summation();