apt
0.9.7.5ubuntu3
Main Page
Related Pages
Modules
Classes
Files
File List
apt-pkg
contrib
hashes.h
1
// -*- mode: cpp; mode: fold -*-
2
// Description /*{{{*/
3
// $Id: hashes.h,v 1.2 2001/03/11 05:30:20 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
#ifndef APTPKG_HASHES_H
14
#define APTPKG_HASHES_H
15
16
17
#include <apt-pkg/md5.h>
18
#include <apt-pkg/sha1.h>
19
#include <apt-pkg/sha2.h>
20
#include <apt-pkg/fileutl.h>
21
22
#include <algorithm>
23
#include <vector>
24
#include <cstring>
25
26
27
#ifndef APT_8_CLEANER_HEADERS
28
using
std::min;
29
using
std::vector;
30
#endif
31
32
// helper class that contains hash function name
33
// and hash
34
class
HashString
35
{
36
protected
:
37
std::string Type;
38
std::string Hash;
39
static
const
char
* _SupportedHashes[10];
40
41
public
:
42
HashString
(std::string Type, std::string Hash);
43
HashString
(std::string StringedHashString);
// init from str as "type:hash"
44
HashString
();
45
46
// get hash type used
47
std::string HashType() {
return
Type; };
48
49
// verify the given filename against the currently loaded hash
50
bool
VerifyFile(std::string filename)
const
;
51
52
// helper
53
std::string toStr()
const
;
// convert to str as "type:hash"
54
bool
empty()
const
;
55
56
// return the list of hashes we support
57
static
const
char
** SupportedHashes();
58
};
59
60
class
Hashes
61
{
62
public
:
63
64
MD5Summation
MD5;
65
SHA1Summation
SHA1;
66
SHA256Summation
SHA256;
67
SHA512Summation
SHA512;
68
69
inline
bool
Add(
const
unsigned
char
*Data,
unsigned
long
long
Size)
70
{
71
return
MD5.Add(Data,Size) && SHA1.Add(Data,Size) && SHA256.Add(Data,Size) && SHA512.Add(Data,Size);
72
};
73
inline
bool
Add(
const
char
*Data) {
return
Add((
unsigned
char
*)Data,strlen(Data));};
74
inline
bool
AddFD(
int
const
Fd,
unsigned
long
long
Size = 0)
75
{
return
AddFD(Fd, Size,
true
,
true
,
true
,
true
); };
76
bool
AddFD(
int
const
Fd,
unsigned
long
long
Size,
bool
const
addMD5,
77
bool
const
addSHA1,
bool
const
addSHA256,
bool
const
addSHA512);
78
inline
bool
AddFD(
FileFd
&Fd,
unsigned
long
long
Size = 0)
79
{
return
AddFD(Fd, Size,
true
,
true
,
true
,
true
); };
80
bool
AddFD(
FileFd
&Fd,
unsigned
long
long
Size,
bool
const
addMD5,
81
bool
const
addSHA1,
bool
const
addSHA256,
bool
const
addSHA512);
82
inline
bool
Add(
const
unsigned
char
*Beg,
const
unsigned
char
*End)
83
{
return
Add(Beg,End-Beg);};
84
};
85
86
#endif
Generated on Fri Oct 12 2012 11:26:03 for apt by
1.8.1.2