SHOW:
|
|
- or go back to the newest paste.
1 | #include "SHA1.h" | |
2 | #include "BigNumber.h" | |
3 | #include <cstring> | |
4 | #include <stdarg.h> | |
5 | #include <Log.h> | |
6 | ||
7 | SHA1Hash::SHA1Hash() | |
8 | { | |
9 | SHA1_Init(&mC); | |
10 | memset(mDigest, 0, SHA_DIGEST_LENGTH * sizeof(uint8)); | |
11 | } | |
12 | ||
13 | SHA1Hash::~SHA1Hash() | |
14 | { | |
15 | SHA1_Init(&mC); | |
16 | } | |
17 | ||
18 | void SHA1Hash::UpdateData(const uint8 *dta, int len) | |
19 | { | |
20 | SHA1_Update(&mC, dta, len); | |
21 | } | |
22 | ||
23 | void SHA1Hash::UpdateData(const std::string &str) | |
24 | { | |
25 | UpdateData((uint8 const*)str.c_str(), str.length()); | |
26 | } | |
27 | ||
28 | void SHA1Hash::UpdateBigNumbers(BigNumber* bn0, ...) | |
29 | { | |
30 | va_list v; | |
31 | BigNumber* bn; | |
32 | ||
33 | va_start(v, bn0); | |
34 | bn = bn0; | |
35 | while (bn) | |
36 | { | |
37 | UpdateData(bn->AsByteArray().get(), bn->GetNumBytes()); | |
38 | bn = va_arg(v, BigNumber*); | |
39 | } | |
40 | va_end(v); | |
41 | } | |
42 | ||
43 | void SHA1Hash::Initialize() | |
44 | { | |
45 | SHA1_Init(&mC); | |
46 | } | |
47 | ||
48 | void SHA1Hash::Finalize(void) | |
49 | { | |
50 | SHA1_Final(mDigest, &mC); | |
51 | } |