X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/784202a271ae7e303aacbe226bb87fed50a16f81..22dcc318d978813b3c4d1ae1a1f41933d0e1d69b:/apt-pkg/contrib/sha1.cc diff --git a/apt-pkg/contrib/sha1.cc b/apt-pkg/contrib/sha1.cc index 1f3927c1c..72eafd4ca 100644 --- a/apt-pkg/contrib/sha1.cc +++ b/apt-pkg/contrib/sha1.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: sha1.cc,v 1.1 2001/03/06 05:03:49 jgg Exp $ +// $Id: sha1.cc,v 1.3 2001/05/13 05:15:03 jgg Exp $ /* ###################################################################### SHA1 - SHA-1 Secure Hash Algorithm. @@ -206,7 +206,7 @@ SHA1SumValue::SHA1SumValue() /* Converts the hex string into a set of chars */ bool SHA1SumValue::Set(string Str) { - return Hex2Num(Str.begin(),Str.end(),Sum,sizeof(Sum)); + return Hex2Num(Str,Sum,sizeof(Sum)); } /*}}} */ @@ -269,7 +269,6 @@ SHA1SumValue SHA1Summation::Result() { uint32_t *state = (uint32_t *)State; uint32_t *count = (uint32_t *)Count; - uint8_t *buffer = (uint8_t *)Buffer; // Apply the padding if (Done == false) @@ -344,11 +343,16 @@ bool SHA1Summation::AddFD(int Fd,unsigned long Size) { unsigned char Buf[64 * 64]; int Res = 0; - while (Size != 0) + int ToEOF = (Size == 0); + while (Size != 0 || ToEOF) { - Res = read(Fd,Buf,MIN(Size,sizeof(Buf))); - if (Res < 0 || (unsigned) Res != MIN(Size,sizeof(Buf))) + unsigned n = sizeof(Buf); + if (!ToEOF) n = min(Size,(unsigned long)n); + Res = read(Fd,Buf,n); + if (Res < 0 || (!ToEOF && (unsigned) Res != n)) // error, or short read return false; + if (ToEOF && Res == 0) // EOF + break; Size -= Res; Add(Buf,Res); }