View difference between Paste ID: hf5mn1zU and PVceTC1K
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
}