apt  0.9.11.2
sha1.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description /*{{{*/
3 // $Id: sha1.h,v 1.3 2001/05/07 05:05:47 jgg Exp $
4 /* ######################################################################
5 
6  SHA1SumValue - Storage for a SHA-1 hash.
7  SHA1Summation - SHA-1 Secure Hash Algorithm.
8 
9  This is a C++ interface to a set of SHA1Sum functions, that mirrors
10  the equivalent MD5 classes.
11 
12  ##################################################################### */
13  /*}}}*/
14 #ifndef APTPKG_SHA1_H
15 #define APTPKG_SHA1_H
16 
17 #include <string>
18 #include <cstring>
19 #include <algorithm>
20 
21 #include "hashsum_template.h"
22 
23 #ifndef APT_8_CLEANER_HEADERS
24 using std::string;
25 using std::min;
26 #endif
27 
29 
31 {
32  /* assumes 64-bit alignment just in case */
33  unsigned char Buffer[64] __attribute__((aligned(8)));
34  unsigned char State[5*4] __attribute__((aligned(8)));
35  unsigned char Count[2*4] __attribute__((aligned(8)));
36  bool Done;
37 
38  public:
39  bool Add(const unsigned char *inbuf, unsigned long long inlen);
40  using SummationImplementation::Add;
41 
42  SHA1SumValue Result();
43 
44  SHA1Summation();
45 };
46 
47 #endif