BLAKE2S_BLOCK_SIZE
u8 block[BLAKE2S_BLOCK_SIZE];
unsigned long entropy[BLAKE2S_BLOCK_SIZE / sizeof(long)];
static const u8 compiletime_seed[BLAKE2S_BLOCK_SIZE] __initconst __latent_entropy;
u8 x_key[BLAKE2S_BLOCK_SIZE] __aligned(__alignof__(u32)) = { 0 };
if (keylen > BLAKE2S_BLOCK_SIZE) {
for (i = 0; i < BLAKE2S_BLOCK_SIZE; ++i)
blake2s_update(&blake, x_key, BLAKE2S_BLOCK_SIZE);
for (i = 0; i < BLAKE2S_BLOCK_SIZE; ++i)
blake2s_update(&blake, x_key, BLAKE2S_BLOCK_SIZE);
memzero_explicit(x_key, BLAKE2S_BLOCK_SIZE);
u8 buf[BLAKE2S_BLOCK_SIZE];
memset(&ctx->buf[keylen], 0, BLAKE2S_BLOCK_SIZE - keylen);
ctx->buflen = BLAKE2S_BLOCK_SIZE;
const size_t fill = BLAKE2S_BLOCK_SIZE - ctx->buflen;
blake2s_compress(ctx, ctx->buf, 1, BLAKE2S_BLOCK_SIZE);
if (inlen > BLAKE2S_BLOCK_SIZE) {
const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2S_BLOCK_SIZE);
blake2s_compress(ctx, in, nblocks - 1, BLAKE2S_BLOCK_SIZE);
in += BLAKE2S_BLOCK_SIZE * (nblocks - 1);
inlen -= BLAKE2S_BLOCK_SIZE * (nblocks - 1);
BLAKE2S_BLOCK_SIZE - ctx->buflen); /* Padding */
(nblocks > 1 && inc != BLAKE2S_BLOCK_SIZE));
memcpy(m, data, BLAKE2S_BLOCK_SIZE);
data += BLAKE2S_BLOCK_SIZE;
BUILD_BUG_ON(SZ_4K / BLAKE2S_BLOCK_SIZE < 8);
SZ_4K / BLAKE2S_BLOCK_SIZE);
data += blocks * BLAKE2S_BLOCK_SIZE;
data += BLAKE2S_BLOCK_SIZE;
const size_t fill = BLAKE2S_BLOCK_SIZE - ctx->buflen;
blake2s_compress(ctx, ctx->buf, 1, BLAKE2S_BLOCK_SIZE);
if (inlen > BLAKE2S_BLOCK_SIZE) {
const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2S_BLOCK_SIZE);
blake2s_compress(ctx, in, nblocks - 1, BLAKE2S_BLOCK_SIZE);
in += BLAKE2S_BLOCK_SIZE * (nblocks - 1);
inlen -= BLAKE2S_BLOCK_SIZE * (nblocks - 1);
BLAKE2S_BLOCK_SIZE - ctx->buflen); /* Padding */
memcpy(m, data, BLAKE2S_BLOCK_SIZE);
u8 buf[BLAKE2S_BLOCK_SIZE];
memset(&ctx->buf[keylen], 0, BLAKE2S_BLOCK_SIZE - keylen);
ctx->buflen = BLAKE2S_BLOCK_SIZE;