File syn_blake2s.c¶
FileList > crypto > syn_blake2s.c
Go to the source code of this file
BLAKE2s implementation — RFC 7693.
#include "../util/syn_pack.h"#include "syn_blake2s.h"#include <string.h>
Public Static Attributes¶
| Type | Name |
|---|---|
| const uint32_t | blake2s_iv = /* multi line expression */BLAKE2s initialization vector. |
| const uint8_t | sigma = /* multi line expression */BLAKE2s message word permutation schedule. |
Public Functions¶
| Type | Name |
|---|---|
| void | syn_blake2s_final (SYN_BLAKE2s * ctx, uint8_t * out) Finalize and produce the digest. |
| void | syn_blake2s_init (SYN_BLAKE2s * ctx, size_t outlen) Initialize BLAKE2s for unkeyed hashing. |
| void | syn_blake2s_init_keyed (SYN_BLAKE2s * ctx, const void * key, size_t keylen, size_t outlen) Initialize BLAKE2s for keyed hashing (MAC mode). |
| void | syn_blake2s_update (SYN_BLAKE2s * ctx, const void * data, size_t len) Feed data into the hash. |
Public Static Functions¶
| Type | Name |
|---|---|
| void | blake2s_compress (SYN_BLAKE2s * ctx, const uint8_t block, int is_last) BLAKE2s compression (F). Mixes one 64-byte block into state. |
| void | blake2s_increment_counter (SYN_BLAKE2s * ctx, uint32_t inc) Increment byte counter. |
| uint32_t | load32_le (const uint8_t * p) |
| uint32_t | rotr32 (uint32_t x, unsigned n) 32-bit right rotation. |
| void | store32_le (uint8_t * p, uint32_t v) |
Macros¶
| Type | Name |
|---|---|
| define | G (v, a, b, c, d, x, y) /* multi line expression */BLAKE2s G mixing function. |
Public Static Attributes Documentation¶
variable blake2s_iv¶
BLAKE2s initialization vector.
variable sigma¶
BLAKE2s message word permutation schedule.
Public Functions Documentation¶
function syn_blake2s_final¶
Finalize and produce the digest.
After calling this, the context must be re-initialized before reuse.
Parameters:
ctxBLAKE2s context.outOutput buffer (must be at least ctx->outlen bytes).
function syn_blake2s_init¶
Initialize BLAKE2s for unkeyed hashing.
Parameters:
ctxContext to initialize.outlenDesired digest length (1–32).
function syn_blake2s_init_keyed¶
Initialize BLAKE2s for keyed hashing (MAC mode).
Parameters:
ctxContext to initialize.keySecret key.keylenKey length (1–32).outlenDesired digest length (1–32).
function syn_blake2s_update¶
Feed data into the hash.
Parameters:
ctxBLAKE2s context.dataData to hash.lenLength in bytes.
Public Static Functions Documentation¶
function blake2s_compress¶
BLAKE2s compression (F). Mixes one 64-byte block into state.
Parameters:
ctxHash context.block64-byte input block.is_lastFlag indicating the last block.
function blake2s_increment_counter¶
Increment byte counter.
Parameters:
ctxHash context.incIncrement value in bytes.
function load32_le¶
function rotr32¶
32-bit right rotation.
Parameters:
xValue to rotate.nBits to shift.
Returns:
Rotated value.
function store32_le¶
Macro Definition Documentation¶
define G¶
BLAKE2s G mixing function.
Parameters:
vWorking vector (16 words).aVector indices.xMessage words.
The documentation for this class was generated from the following file src/syntropic/crypto/syn_blake2s.c