libhasha 2.2.2
Loading...
Searching...
No Matches
blake3.h
Go to the documentation of this file.
1
21
22#if !defined(__HASHA_BLAKE3_H)
23#define __HASHA_BLAKE3_H
24
25#include "internal/internal.h"
26
28
36typedef struct ha_blake3_context
37{
44 uint8_t input[64];
45
53 uint32_t bytes;
54
61 uint32_t block;
62
69 uint64_t chunk;
70
78 uint32_t *cv;
79
87 uint32_t cv_buf[54 * 8];
89
99
112 size_t length);
113
127 size_t length);
128
143HA_PUBFUN void ha_blake3_hash(ha_inbuf_t data, size_t length,
144 ha_digest_t digest, size_t digest_length);
145
147
148#endif // __HASHA_BLAKE3_H
HA_PUBFUN void ha_blake3_final(ha_blake3_context *ctx, ha_digest_t digest, size_t length)
Finalizes the BLAKE3 hash and produces the final digest.
HA_PUBFUN void ha_blake3_hash(ha_inbuf_t data, size_t length, ha_digest_t digest, size_t digest_length)
Computes the BLAKE3 hash in a single operation.
HA_PUBFUN void ha_blake3_init(ha_blake3_context *ctx)
Initializes the BLAKE3 context for hashing.
HA_PUBFUN void ha_blake3_update(ha_blake3_context *ctx, ha_inbuf_t data, size_t length)
Updates the BLAKE3 hash with more input data.
#define HA_PUBFUN
Definition hadefs.h:34
#define HA_EXTERN_C_END
Definition hadefs.h:78
#define HA_EXTERN_C_BEG
Definition hadefs.h:70
BLAKE3 hash state context.
Definition blake3.h:37
uint32_t bytes
The number of bytes processed so far.
Definition blake3.h:53
uint64_t chunk
The chunk counter for tracking progress.
Definition blake3.h:69
uint32_t cv_buf[54 *8]
Buffer for the hash state (54 * 8 words).
Definition blake3.h:87
uint8_t input[64]
Input buffer for storing data being processed.
Definition blake3.h:44
uint32_t block
The block counter for the current chunk.
Definition blake3.h:61
uint32_t * cv
Pointer to the current hash state.
Definition blake3.h:78
__ha_out_buf_type ha_digest_t
Definition types.h:15
__ha_in_buf_type ha_inbuf_t
Definition types.h:12