blob: 91d259100db57bef3ba673df645aacca885e654a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#pragma once
#include "StarString.hpp"
#include "StarByteArray.hpp"
namespace Star {
typedef struct sha_state_struct {
uint32_t state[8], length, curlen;
uint8_t buf[64];
} sha_state;
class Sha256Hasher {
public:
Sha256Hasher();
void push(char const* data, size_t length);
void push(String const& data);
void push(ByteArray const& data);
// Produces 32 bytes
void compute(char* hashDestination);
ByteArray compute();
private:
bool m_finished;
sha_state m_state;
};
// Sha256 must, obviously, have 32 bytes available in the destination.
void sha256(char const* source, size_t length, char* hashDestination);
ByteArray sha256(char const* source, size_t length);
void sha256(ByteArray const& in, ByteArray& out);
void sha256(String const& in, ByteArray& out);
ByteArray sha256(ByteArray const& in);
ByteArray sha256(String const& in);
}
|