BLAKE2B_OUTBYTES
uint8_t outbuffer[BLAKE2B_OUTBYTES] = { 0 };
uint8_t outbuf[BLAKE2B_OUTBYTES];
uint8_t inbuf[BLAKE2B_OUTBYTES];
outlen_md = (outlen <= BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES;
&& EVP_DigestFinal_ex(ctx, (outlen > BLAKE2B_OUTBYTES) ? outbuf : out,
if (outlen > BLAKE2B_OUTBYTES) {
memcpy(out, outbuf, BLAKE2B_OUTBYTES / 2);
out += BLAKE2B_OUTBYTES / 2;
outlen_curr = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2;
while (outlen_curr > BLAKE2B_OUTBYTES) {
memcpy(inbuf, outbuf, BLAKE2B_OUTBYTES);
if (blake2b(md, mac, outbuf, BLAKE2B_OUTBYTES, inbuf,
BLAKE2B_OUTBYTES, NULL, 0)
memcpy(out, outbuf, BLAKE2B_OUTBYTES / 2);
out += BLAKE2B_OUTBYTES / 2;
outlen_curr -= BLAKE2B_OUTBYTES / 2;
memcpy(inbuf, outbuf, BLAKE2B_OUTBYTES);
if (blake2b(md, mac, outbuf, outlen_curr, inbuf, BLAKE2B_OUTBYTES,
#define BLAKE2_OUTBYTES BLAKE2B_OUTBYTES
rc = blake2b_init_ref(&ctx->state, BLAKE2B_OUTBYTES);
rc = blake2b_init_key_ref(&ctx->state, BLAKE2B_OUTBYTES, key,
rc = blake2b_final_ref(&ctx->state, out, BLAKE2B_OUTBYTES);
.hashsize = BLAKE2B_OUTBYTES,
CTASSERT((size_t)BLAKE2S_OUTBYTES <= (size_t)BLAKE2B_OUTBYTES);
hashlen = BLAKE2B_OUTBYTES;
char res[BLAKE2B_OUTBYTES], res2[BLAKE2B_OUTBYTES];
#define FXRNG_HASH_SZ BLAKE2B_OUTBYTES /* 64 */
static const uint8_t blake2bp_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
static const uint8_t blake2bp_keyed_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
static const uint8_t blake2b_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
static const uint8_t blake2b_keyed_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] =
uint8_t hash[BLAKE2B_OUTBYTES];