* merged from mainline
[ntk/apt.git] / apt-pkg / contrib / hashes.cc
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 SHA256.Add(Buf,Res);
40 }
41 return true;
42 }
43 /*}}}*/
44