GNU libmicrohttpd  0.9.72
sha256.h File Reference

Calculation of SHA-256 digest. More...

#include "mhd_options.h"
#include <stdint.h>
#include <stddef.h>
Include dependency graph for sha256.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sha256_ctx
 

Macros

#define _SHA256_DIGEST_LENGTH   8
 
#define SHA256_DIGEST_SIZE   (_SHA256_DIGEST_LENGTH * 4)
 
#define SHA256_DIGEST_STRING_SIZE   ((SHA256_DIGEST_SIZE) * 2 + 1)
 
#define SHA256_BLOCK_SIZE   64
 

Functions

void MHD_SHA256_init (void *ctx_)
 
void MHD_SHA256_update (void *ctx_, const uint8_t *data, size_t length)
 
void sha256_finish (void *ctx_, uint8_t digest[SHA256_DIGEST_SIZE])
 

Detailed Description

Calculation of SHA-256 digest.

Author
Karlson2k (Evgeny Grin)

Definition in file sha256.h.

Macro Definition Documentation

◆ _SHA256_DIGEST_LENGTH

#define _SHA256_DIGEST_LENGTH   8

Digest is kept internally as 8 32-bit words.

Definition at line 36 of file sha256.h.

◆ SHA256_BLOCK_SIZE

#define SHA256_BLOCK_SIZE   64

Size of single processing block in bytes

Definition at line 51 of file sha256.h.

◆ SHA256_DIGEST_SIZE

#define SHA256_DIGEST_SIZE   (_SHA256_DIGEST_LENGTH * 4)

Size of SHA-256 digest in bytes

Definition at line 41 of file sha256.h.

◆ SHA256_DIGEST_STRING_SIZE

#define SHA256_DIGEST_STRING_SIZE   ((SHA256_DIGEST_SIZE) * 2 + 1)

Size of SHA-256 digest string in chars

Definition at line 46 of file sha256.h.

Function Documentation

◆ MHD_SHA256_init()

void MHD_SHA256_init ( void *  ctx_)

Initialise structure for SHA256 calculation.

Parameters
ctx_must be a struct sha256_ctx *

Definition at line 45 of file sha256.c.

References sha256_ctx::count, and sha256_ctx::H.

◆ MHD_SHA256_update()

void MHD_SHA256_update ( void *  ctx_,
const uint8_t *  data,
size_t  length 
)

Process portion of bytes.

Parameters
ctx_must be a struct sha256_ctx *
databytes to add to hash
lengthnumber of bytes in data

< Number of bytes in buffer

Definition at line 259 of file sha256.c.

References sha256_ctx::buffer, sha256_ctx::count, data, sha256_ctx::H, mhd_assert, NULL, SHA256_BLOCK_SIZE, and sha256_transform().

Here is the call graph for this function:

◆ sha256_finish()

void sha256_finish ( void *  ctx_,
uint8_t  digest[SHA256_DIGEST_SIZE] 
)

Finalise SHA256 calculation, return digest.

Parameters
ctx_must be a struct sha256_ctx *
[out]digestset to the hash, must be SHA256_DIGEST_SIZE bytes

< Number of processed bits

< Number of bytes in buffer

Definition at line 321 of file sha256.c.

References _MHD_PUT_32BIT_BE, _MHD_PUT_64BIT_BE, sha256_ctx::buffer, sha256_ctx::count, sha256_ctx::H, SHA256_BLOCK_SIZE, SHA256_BYTES_IN_WORD, SHA256_SIZE_OF_LEN_ADD, and sha256_transform().

Here is the call graph for this function: