14#ifndef CRYPTO_BLAKE2B_H
15#define CRYPTO_BLAKE2B_H
20#define BLAKE2BLEN256 32
21#define BLAKE2BLEN384 48
22#define BLAKE2BLEN512 64
25#define BLAKE2BROUNDS 12
28#define B2B_G(a, b, c, d, x, y) \
29 v[a] = v[a] + v[b] + x; \
30 v[d] = ror64(v[d] ^ v[a], 32); \
32 v[b] = ror64(v[b] ^ v[c], 24); \
33 v[a] = v[a] + v[b] + y; \
34 v[d] = ror64(v[d] ^ v[a], 16); \
36 v[b] = ror64(v[b] ^ v[c], 63);
58int blake2b(
const void *in,
size_t inlen,
const void *key,
59 int keylen,
void *out,
int outlen);
63 void test_kcu_blake2b(
64 const void *in,
size_t *inlen,
size_t max_inlen,
65 const void *key,
int *keylen,
int max_keylen,
66 void *out,
int outlen,
int *ret,
int num);
int blake2b_init(BLAKE2B_CTX *ctx, const void *key, int keylen, int outlen)
Initialize a Blake2b context with optional key.
Definition: blake2b.c:122
void blake2b_update(BLAKE2B_CTX *ctx, const void *in, size_t inlen)
Add inlen bytes from in to a Blake2b context for hashing.
Definition: blake2b.c:91
int blake2b(const void *in, size_t inlen, const void *key, int keylen, void *out, int outlen)
Convenient all-in-one Blake2b computation.
Definition: blake2b.c:185
void blake2b_final(BLAKE2B_CTX *ctx, void *out)
Finalize a Blake2b message digest.
Definition: blake2b.c:158
uint64_t outlen
Digest length.
Definition: blake2b.h:46
uint64_t c
Length of buffered input.
Definition: blake2b.h:45
Device utilities and includes support.