| 1 | // -*- mode: cpp; mode: fold -*- |
| 2 | // Description /*{{{*/ |
| 3 | // $Id: hashes.cc,v 1.1 2001/03/06 07:15:29 jgg Exp $ |
| 4 | /* ###################################################################### |
| 5 | |
| 6 | Hashes - Simple wrapper around the hash functions |
| 7 | |
| 8 | This is just used to make building the methods simpler, this is the |
| 9 | only interface required.. |
| 10 | |
| 11 | ##################################################################### */ |
| 12 | /*}}}*/ |
| 13 | // Include Files /*{{{*/ |
| 14 | #ifdef __GNUG__ |
| 15 | #pragma implementation "apt-pkg/hashes.h" |
| 16 | #endif |
| 17 | |
| 18 | #include <apt-pkg/hashes.h> |
| 19 | |
| 20 | #include <unistd.h> |
| 21 | #include <system.h> |
| 22 | /*}}}*/ |
| 23 | |
| 24 | // Hashes::AddFD - Add the contents of the FD /*{{{*/ |
| 25 | // --------------------------------------------------------------------- |
| 26 | /* */ |
| 27 | bool Hashes::AddFD(int Fd,unsigned long Size) |
| 28 | { |
| 29 | unsigned char Buf[64*64]; |
| 30 | int Res = 0; |
| 31 | while (Size != 0) |
| 32 | { |
| 33 | Res = read(Fd,Buf,min(Size,(unsigned long)sizeof(Buf))); |
| 34 | if (Res < 0 || (unsigned)Res != min(Size,(unsigned long)sizeof(Buf))) |
| 35 | return false; |
| 36 | Size -= Res; |
| 37 | MD5.Add(Buf,Res); |
| 38 | SHA1.Add(Buf,Res); |
| 39 | } |
| 40 | return true; |
| 41 | } |
| 42 | /*}}}*/ |
| 43 | |