diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2011-02-25 18:59:29 +0100 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2011-02-25 18:59:29 +0100 |
commit | 7ac56f8ffd5544c6c1f681f79cafbf72d37d0b82 (patch) | |
tree | b14e5e4c1a03be5ac2bd22e41ee74e3634e71923 /apt-pkg/contrib/sha1.cc | |
parent | 84a0890e6ef49b5d41a0b9ff0b5a5fe95cca6f3e (diff) |
template based hashsum implementation
Diffstat (limited to 'apt-pkg/contrib/sha1.cc')
-rw-r--r-- | apt-pkg/contrib/sha1.cc | 65 |
1 files changed, 3 insertions, 62 deletions
diff --git a/apt-pkg/contrib/sha1.cc b/apt-pkg/contrib/sha1.cc index eae52d52f..0b1c16dc3 100644 --- a/apt-pkg/contrib/sha1.cc +++ b/apt-pkg/contrib/sha1.cc @@ -178,67 +178,6 @@ static void SHA1Transform(uint32_t state[5],uint8_t const buffer[64]) } /*}}}*/ -// SHA1SumValue::SHA1SumValue - Constructs the summation from a string /*{{{*/ -// --------------------------------------------------------------------- -/* The string form of a SHA1 is a 40 character hex number */ -SHA1SumValue::SHA1SumValue(string Str) -{ - memset(Sum,0,sizeof(Sum)); - Set(Str); -} - - /*}}} */ -// SHA1SumValue::SHA1SumValue - Default constructor /*{{{*/ -// --------------------------------------------------------------------- -/* Sets the value to 0 */ -SHA1SumValue::SHA1SumValue() -{ - memset(Sum,0,sizeof(Sum)); -} - - /*}}} */ -// SHA1SumValue::Set - Set the sum from a string /*{{{*/ -// --------------------------------------------------------------------- -/* Converts the hex string into a set of chars */ -bool SHA1SumValue::Set(string Str) -{ - return Hex2Num(Str,Sum,sizeof(Sum)); -} - - /*}}} */ -// SHA1SumValue::Value - Convert the number into a string /*{{{*/ -// --------------------------------------------------------------------- -/* Converts the set of chars into a hex string in lower case */ -string SHA1SumValue::Value() const -{ - char Conv[16] = - { '0','1','2','3','4','5','6','7','8','9','a','b', - 'c','d','e','f' - }; - char Result[41]; - Result[40] = 0; - - // Convert each char into two letters - int J = 0; - int I = 0; - for (; I != 40; J++,I += 2) - { - Result[I] = Conv[Sum[J] >> 4]; - Result[I + 1] = Conv[Sum[J] & 0xF]; - } - - return string(Result); -} - - /*}}} */ -// SHA1SumValue::operator == - Comparator /*{{{*/ -// --------------------------------------------------------------------- -/* Call memcmp on the buffer */ -bool SHA1SumValue::operator == (const SHA1SumValue & rhs) const -{ - return memcmp(Sum,rhs.Sum,sizeof(Sum)) == 0; -} - /*}}}*/ // SHA1Summation::SHA1Summation - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ @@ -290,11 +229,13 @@ SHA1SumValue SHA1Summation::Result() // Transfer over the result SHA1SumValue Value; + char res[20]; for (unsigned i = 0; i < 20; i++) { - Value.Sum[i] = (unsigned char) + res[i] = (unsigned char) ((state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255); } + Value.Set(res); return Value; } /*}}}*/ |