GNU libmicrohttpd 0.9.77
|
Calculation of SHA-1 digest as defined in FIPS PUB 180-4 (2015) More...
Go to the source code of this file.
Macros | |
#define | Ch(x, y, z) ( (z) ^ ((x) & ((y) ^ (z))) ) |
#define | Maj(x, y, z) ( ((x) & (y)) ^ ((z) & ((x) ^ (y))) ) |
#define | Par(x, y, z) ( (x) ^ (y) ^ (z) ) |
#define | SHA1STEP32(vA, vB, vC, vD, vE, ft, kt, wt) |
#define | GET_W_FROM_DATA(buf, t) _MHD_GET_32BIT_BE (((const uint8_t*) (buf)) + (t) * SHA1_BYTES_IN_WORD) |
#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) |
Functions | |
void | MHD_SHA1_init (void *ctx_) |
static void | sha1_transform (uint32_t H[_SHA1_DIGEST_LENGTH], const uint8_t data[SHA1_BLOCK_SIZE]) |
void | MHD_SHA1_update (void *ctx_, const uint8_t *data, size_t length) |
void | MHD_SHA1_finish (void *ctx_, uint8_t digest[SHA1_DIGEST_SIZE]) |
Calculation of SHA-1 digest as defined in FIPS PUB 180-4 (2015)
Definition in file sha1.c.
#define Ch | ( | x, | |
y, | |||
z | |||
) | ( (z) ^ ((x) & ((y) ^ (z))) ) |
#define GET_W_FROM_DATA | ( | buf, | |
t | |||
) | _MHD_GET_32BIT_BE (((const uint8_t*) (buf)) + (t) * SHA1_BYTES_IN_WORD) |
#define K00 UINT32_C(0x5a827999) |
#define K20 UINT32_C(0x6ed9eba1) |
#define K40 UINT32_C(0x8f1bbcdc) |
#define K60 UINT32_C(0xca62c1d6) |
#define Maj | ( | x, | |
y, | |||
z | |||
) | ( ((x) & (y)) ^ ((z) & ((x) ^ (y))) ) |
#define Par | ( | x, | |
y, | |||
z | |||
) | ( (x) ^ (y) ^ (z) ) |
#define SHA1_SIZE_OF_LEN_ADD (64 / 8) |
#define SHA1STEP32 | ( | vA, | |
vB, | |||
vC, | |||
vD, | |||
vE, | |||
ft, | |||
kt, | |||
wt | |||
) |
#define Wgen | ( | w, | |
t | |||
) |
void MHD_SHA1_finish | ( | void * | ctx_, |
uint8_t | digest[SHA1_DIGEST_SIZE] | ||
) |
Finalise SHA-1 calculation, return digest.
ctx_ | must be a struct sha1_ctx * | |
[out] | digest | set to the hash, must be SHA1_DIGEST_SIZE bytes |
< 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().
Referenced by MHD_websocket_create_accept_header().
void MHD_SHA1_init | ( | void * | ctx_ | ) |
Initialise structure for SHA-1 calculation.
ctx_ | must be a struct sha1_ctx * |
Definition at line 41 of file sha1.c.
References sha1_ctx::count, and sha1_ctx::H.
Referenced by MHD_websocket_create_accept_header().
void MHD_SHA1_update | ( | void * | ctx_, |
const uint8_t * | data, | ||
size_t | length | ||
) |
Process portion of bytes.
ctx_ | must be a struct sha1_ctx * |
data | bytes to add to hash |
length | number of bytes in data |
< Number of bytes in buffer
Definition at line 249 of file sha1.c.
References sha1_ctx::buffer, sha1_ctx::count, data, sha1_ctx::H, mhd_assert, NULL, SHA1_BLOCK_SIZE, and sha1_transform().
Referenced by MHD_websocket_create_accept_header().
|
static |
Base of SHA-1 transformation. Gets full 512 bits / 64 bytes block of data and updates hash values;
H | hash values |
data | data, must be exactly 64 bytes long |
Definition at line 64 of file sha1.c.
References _MHD_UINT32_ALIGN, Ch, data, GET_W_FROM_DATA, sha1_ctx::H, K00, K20, K40, K60, Maj, Par, SHA1_BLOCK_SIZE, SHA1STEP32, and Wgen.
Referenced by MHD_SHA1_finish(), and MHD_SHA1_update().