BLAKE2B_BLOCK_SIZE
.base.cra_blocksize = BLAKE2B_BLOCK_SIZE, \
u8 buf[BLAKE2B_BLOCK_SIZE];
memset(&ctx->buf[keylen], 0, BLAKE2B_BLOCK_SIZE - keylen);
ctx->buflen = BLAKE2B_BLOCK_SIZE;
SZ_4K / BLAKE2B_BLOCK_SIZE);
data += blocks * BLAKE2B_BLOCK_SIZE;
data += BLAKE2B_BLOCK_SIZE;
const size_t fill = BLAKE2B_BLOCK_SIZE - ctx->buflen;
blake2b_compress(ctx, ctx->buf, 1, BLAKE2B_BLOCK_SIZE);
if (inlen > BLAKE2B_BLOCK_SIZE) {
const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2B_BLOCK_SIZE);
blake2b_compress(ctx, in, nblocks - 1, BLAKE2B_BLOCK_SIZE);
in += BLAKE2B_BLOCK_SIZE * (nblocks - 1);
inlen -= BLAKE2B_BLOCK_SIZE * (nblocks - 1);
BLAKE2B_BLOCK_SIZE - ctx->buflen); /* Padding */
(nblocks > 1 && inc != BLAKE2B_BLOCK_SIZE));
memcpy(m, data, BLAKE2B_BLOCK_SIZE);