% limb manual
% blake3_init(3)
% limb 0.1.0
% 2023-07-24
# NAME
blake3\_init, blake3\_update, blake3\_final - compute the BLAKE3 of a given
block of data
# SYNOPSIS
#include <limb/blake3.h>
```pre hl
void blake3_init(void *<em>ctx</em>);
void blake3_update(const void *<em>msg</em>, size_t <em>size</em>, void *<em>ctx</em>);
void blake3_final(void * restrict <em>md</em>, void *<em>ctx</em>);
```
# DESCRIPTION
The `blake3_init`() function initializes the given blake3 context `ctx` to
calculate a 256bit BLAKE3 digest.
The `blake3_update`() function feeds the specified chunk of data pointed by `msg`
of length `size` (in bytes) to be hashed into the given `ctx`. You can call this
function repeatedly as many times as needed.
The `blake3_final`() function stores the calculated hash from `ctx` in binary
form into `md`, which must be able to store 32 bytes.
# SEE ALSO
[hasher_blake3.h](0), [hasher_hash](3), [sha3_224_init](3)