#include <sha1.h>
Definition at line 35 of file sha1.h.
◆ SHA1()
◆ buffer_to_block()
void utils::SHA1::buffer_to_block |
( |
const std::string & | buffer, |
|
|
uint32_t | block[BLOCK_BYTES] ) |
|
staticprivate |
Definition at line 236 of file sha1.cpp.
236 {
237
238 for (
unsigned int i = 0; i <
BLOCK_INTS; i++) {
239 block[i] =
static_cast<uint32_t
>((
buffer[4 * i + 3] & 0xff) | (
buffer[4 * i + 2] & 0xff) << 8 |
240 (
buffer[4 * i + 1] & 0xff) << 16 | (
buffer[4 * i + 0] & 0xff) << 24);
241 }
242 }
static const unsigned int BLOCK_INTS
◆ final()
std::string utils::SHA1::final |
( |
| ) |
|
Definition at line 79 of file sha1.cpp.
79 {
80
82
83
84 buffer +=
static_cast<std::string::value_type
>(0x80);
85 const std::size_t orig_size =
buffer.size();
87 buffer +=
static_cast<char>(0x00);
88 }
89
92
95 for (
unsigned int i = 0; i <
BLOCK_INTS - 2; i++) {
96 block[i] = 0;
97 }
98 }
99
100
101 block[
BLOCK_INTS - 1] =
static_cast<uint32_t
>(total_bits & 0x00000000FFFFFFFF);
102 block[
BLOCK_INTS - 2] =
static_cast<uint32_t
>((total_bits >> 32) & 0x00000000FFFFFFFF);
104
105
106 std::ostringstream result;
108 result << std::hex << std::setfill('0') << std::setw(8);
109 result << (
digest[i] & 0xffffffff);
110 }
111
112
114
115 return result.str();
116 }
uint32_t digest[DIGEST_INTS]
static const unsigned int BLOCK_BYTES
static const unsigned int DIGEST_INTS
void transform(uint32_t block[BLOCK_BYTES])
static void buffer_to_block(const std::string &buffer, uint32_t block[BLOCK_BYTES])
◆ read()
void utils::SHA1::read |
( |
std::istream & | is, |
|
|
std::string & | s, |
|
|
std::size_t | max ) |
|
staticprivate |
Definition at line 244 of file sha1.cpp.
244 {
245 char* sbuf = new char[max];
246 is.read(sbuf, static_cast<std::streamsize>(max));
247 s.assign(sbuf, static_cast<unsigned long>(is.gcount()));
248 delete[] sbuf;
249 }
◆ reset()
void utils::SHA1::reset |
( |
| ) |
|
|
private |
◆ transform()
void utils::SHA1::transform |
( |
uint32_t | block[BLOCK_BYTES] | ) |
|
|
private |
Definition at line 135 of file sha1.cpp.
135 {
136
142
143
224
225
231
232
234 }
#define SHA1_R2(v, w, x, y, z, i)
#define SHA1_R3(v, w, x, y, z, i)
#define SHA1_R4(v, w, x, y, z, i)
#define SHA1_R1(v, w, x, y, z, i)
#define SHA1_R0(v, w, x, y, z, i)
◆ update() [1/2]
void utils::SHA1::update |
( |
const std::string & | s | ) |
|
Definition at line 57 of file sha1.cpp.
57 {
58 std::istringstream is(s);
60 }
void update(const std::string &s)
◆ update() [2/2]
void utils::SHA1::update |
( |
std::istream & | is | ) |
|
Definition at line 62 of file sha1.cpp.
62 {
63 std::string rest_of_buffer;
64 read(is, rest_of_buffer,
static_cast<std::size_t
>(
static_cast<int>(
BLOCK_BYTES) -
static_cast<int>(
buffer.size())));
66
67 while (is) {
72 }
73 }
static void read(std::istream &is, std::string &s, std::size_t max)
◆ BLOCK_BYTES
const unsigned int utils::SHA1::BLOCK_BYTES = BLOCK_INTS * 4 |
|
staticprivate |
◆ BLOCK_INTS
const unsigned int utils::SHA1::BLOCK_INTS = 16 |
|
staticprivate |
◆ buffer
std::string utils::SHA1::buffer |
|
private |
◆ digest
◆ DIGEST_INTS
const unsigned int utils::SHA1::DIGEST_INTS = 5 |
|
staticprivate |
◆ transforms
uint64_t utils::SHA1::transforms = 0 |
|
private |
The documentation for this class was generated from the following files: