BLAKE2S_BLOCK_SIZE
KKASSERT(!((nblocks > 1 && inc != BLAKE2S_BLOCK_SIZE)));
memcpy(m, block, BLAKE2S_BLOCK_SIZE);
block += BLAKE2S_BLOCK_SIZE;
const size_t fill = BLAKE2S_BLOCK_SIZE - state->buflen;
blake2s_compress(state, state->buf, 1, BLAKE2S_BLOCK_SIZE);
if (inlen > BLAKE2S_BLOCK_SIZE) {
(inlen + BLAKE2S_BLOCK_SIZE - 1) / BLAKE2S_BLOCK_SIZE;
blake2s_compress(state, in, nblocks - 1, BLAKE2S_BLOCK_SIZE);
in += BLAKE2S_BLOCK_SIZE * (nblocks - 1);
inlen -= BLAKE2S_BLOCK_SIZE * (nblocks - 1);
BLAKE2S_BLOCK_SIZE - state->buflen); /* Padding */
uint8_t block[BLAKE2S_BLOCK_SIZE] = { 0 };
blake2s_update(state, block, BLAKE2S_BLOCK_SIZE);
explicit_bzero(block, BLAKE2S_BLOCK_SIZE);
uint8_t buf[BLAKE2S_BLOCK_SIZE];
uint8_t x_key[BLAKE2S_BLOCK_SIZE] __aligned(__alignof__(uint32_t));
memset(x_key, 0, BLAKE2S_BLOCK_SIZE);
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);
explicit_bzero(x_key, BLAKE2S_BLOCK_SIZE);