From 7ac56f8ffd5544c6c1f681f79cafbf72d37d0b82 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 25 Feb 2011 18:59:29 +0100 Subject: template based hashsum implementation --- apt-pkg/contrib/sha1.h | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) (limited to 'apt-pkg/contrib/sha1.h') diff --git a/apt-pkg/contrib/sha1.h b/apt-pkg/contrib/sha1.h index 8ddd889f1..e7683fa7b 100644 --- a/apt-pkg/contrib/sha1.h +++ b/apt-pkg/contrib/sha1.h @@ -21,28 +21,11 @@ using std::string; using std::min; -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];}; +class SHA1Summation; - SHA1SumValue(string Str); - SHA1SumValue(); -}; +typedef HashSumValue<160> SHA1SumValue; class SHA1Summation { -- cgit v1.2.3 From c31c1dded85ee1e88231a041aac7e507f2ed426c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 13 Jul 2011 16:37:15 +0200 Subject: move implementation of checksums around by abstracting even more --- apt-pkg/contrib/sha1.h | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'apt-pkg/contrib/sha1.h') diff --git a/apt-pkg/contrib/sha1.h b/apt-pkg/contrib/sha1.h index e7683fa7b..2701fc67e 100644 --- a/apt-pkg/contrib/sha1.h +++ b/apt-pkg/contrib/sha1.h @@ -23,11 +23,9 @@ using std::min; #include "hashsum_template.h" -class SHA1Summation; - typedef HashSumValue<160> SHA1SumValue; -class SHA1Summation +class SHA1Summation : public SummationImplementation { /* assumes 64-bit alignment just in case */ unsigned char Buffer[64] __attribute__((aligned(8))); @@ -36,12 +34,9 @@ class SHA1Summation bool Done; public: + bool Add(const unsigned char *inbuf, unsigned 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(); -- cgit v1.2.3