]>
git.saurik.com Git - apt.git/blob - apt-pkg/contrib/sha2.h
1 // -*- mode: cpp; mode: fold -*-
3 // $Id: sha512.h,v 1.3 2001/05/07 05:05:47 jgg Exp $
4 /* ######################################################################
6 SHA{512,256}SumValue - Storage for a SHA-{512,256} hash.
7 SHA{512,256}Summation - SHA-{512,256} Secure Hash Algorithm.
9 This is a C++ interface to a set of SHA{512,256}Sum functions, that mirrors
10 the equivalent MD5 & SHA1 classes.
12 ##################################################################### */
22 #include "sha2_internal.h"
23 #include "hashsum_template.h"
25 typedef HashSumValue
<512> SHA512SumValue
;
26 typedef HashSumValue
<256> SHA256SumValue
;
28 class SHA2SummationBase
: public SummationImplementation
33 bool Add(const unsigned char *inbuf
, unsigned long long len
) = 0;
38 class SHA256Summation
: public SHA2SummationBase
41 unsigned char Sum
[32];
44 bool Add(const unsigned char *inbuf
, unsigned long long len
)
48 SHA256_Update(&ctx
, inbuf
, len
);
51 using SummationImplementation::Add
;
53 SHA256SumValue
Result()
56 SHA256_Final(Sum
, &ctx
);
70 class SHA512Summation
: public SHA2SummationBase
73 unsigned char Sum
[64];
76 bool Add(const unsigned char *inbuf
, unsigned long long len
)
80 SHA512_Update(&ctx
, inbuf
, len
);
83 using SummationImplementation::Add
;
85 SHA512SumValue
Result()
88 SHA512_Final(Sum
, &ctx
);