#include "sha1.h"
#include <string.h>
#include "mhd_bithelpers.h"
#include "mhd_assert.h"
Go to the source code of this file.
|
#define | Ch(x, y, z) |
#define | Maj(x, y, z) |
#define | Par(x, y, z) |
#define | SHA1STEP32(vA, vB, vC, vD, vE, ft, kt, wt) |
#define | GET_W_FROM_DATA(buf, t) |
#define | K00 UINT32_C(0x5a827999) |
#define | K20 UINT32_C(0x6ed9eba1) |
#define | K40 UINT32_C(0x8f1bbcdc) |
#define | K60 UINT32_C(0xca62c1d6) |
#define | Wgen(w, t) |
#define | SHA1_SIZE_OF_LEN_ADD (64 / 8) |
◆ Ch
Value:( (z) ^ ((x) & ((y) ^ (z))) )
◆ GET_W_FROM_DATA
#define GET_W_FROM_DATA |
( |
| buf, |
|
|
| t ) |
Value:
#define _MHD_GET_32BIT_BE(addr)
#define SHA1_BYTES_IN_WORD
◆ K00
#define K00 UINT32_C(0x5a827999) |
◆ K20
#define K20 UINT32_C(0x6ed9eba1) |
◆ K40
#define K40 UINT32_C(0x8f1bbcdc) |
◆ K60
#define K60 UINT32_C(0xca62c1d6) |
◆ Maj
Value:( ((x) & (y)) ^ ((z) & ((x) ^ (y))) )
◆ Par
◆ SHA1_SIZE_OF_LEN_ADD
#define SHA1_SIZE_OF_LEN_ADD (64 / 8) |
Size of "length" padding addition in bytes. See FIPS PUB 180-4 paragraph 5.1.1.
Definition at line 302 of file sha1.c.
◆ SHA1STEP32
#define SHA1STEP32 |
( |
| vA, |
|
|
| vB, |
|
|
| vC, |
|
|
| vD, |
|
|
| vE, |
|
|
| ft, |
|
|
| kt, |
|
|
| wt ) |
Value: do { \
(vE) +=
_MHD_ROTL32 ((vA), 5) + ft ((vB), (vC), (vD)) + (kt) + (wt); \
_MHD_static_inline uint32_t _MHD_ROTL32(uint32_t value32, int bits)
◆ Wgen
Value:
^ (w)[(t + 2) & 0xf] ^ (w)[t & 0xf], 1)
◆ MHD_SHA1_finish()
void MHD_SHA1_finish |
( |
void * | ctx_, |
|
|
uint8_t | digest[SHA1_DIGEST_SIZE] ) |
Finalise SHA-1 calculation, return digest.
- Parameters
-
< Number of processed bits
< Number of bytes in buffer
Definition at line 311 of file sha1.c.
References _MHD_PUT_32BIT_BE, _MHD_PUT_64BIT_BE_SAFE(), _MHD_UINT32_ALIGN, _SHA1_DIGEST_LENGTH, sha1_ctx::buffer, sha1_ctx::count, sha1_ctx::H, SHA1_BLOCK_SIZE, SHA1_BYTES_IN_WORD, SHA1_DIGEST_SIZE, SHA1_SIZE_OF_LEN_ADD, and sha1_transform().
◆ MHD_SHA1_init()
void MHD_SHA1_init |
( |
void * | ctx_ | ) |
|
◆ MHD_SHA1_update()
void MHD_SHA1_update |
( |
void * | ctx_, |
|
|
const uint8_t * | data, |
|
|
size_t | length ) |
◆ sha1_transform()
void sha1_transform |
( |
uint32_t | H[_SHA1_DIGEST_LENGTH], |
|
|
const uint8_t | data[SHA1_BLOCK_SIZE] ) |
|
static |
Base of SHA-1 transformation. Gets full 512 bits / 64 bytes block of data and updates hash values;
- Parameters
-
H | hash values |
data | data, must be exactly 64 bytes long |
Definition at line 64 of file sha1.c.
References _MHD_UINT32_ALIGN, _SHA1_DIGEST_LENGTH, Ch, data, GET_W_FROM_DATA, sha1_ctx::H, K00, K20, K40, K60, Maj, Par, SHA1_BLOCK_SIZE, SHA1STEP32, and Wgen.