BLAKE2S_HASH_SIZE
KKASSERT(outlen > 0 && outlen <= BLAKE2S_HASH_SIZE);
KKASSERT(outlen > 0 && outlen <= BLAKE2S_HASH_SIZE);
out != NULL && outlen <= BLAKE2S_HASH_SIZE &&
uint8_t i_hash[BLAKE2S_HASH_SIZE] __aligned(__alignof__(uint32_t));
KKASSERT(out != NULL && outlen <= BLAKE2S_HASH_SIZE &&
blake2s_init(&blake, BLAKE2S_HASH_SIZE);
blake2s_init(&blake, BLAKE2S_HASH_SIZE);
blake2s_init(&blake, BLAKE2S_HASH_SIZE);
blake2s_update(&blake, i_hash, BLAKE2S_HASH_SIZE);
explicit_bzero(i_hash, BLAKE2S_HASH_SIZE);
uint8_t out[BLAKE2S_HASH_SIZE + 1];
uint8_t sec[BLAKE2S_HASH_SIZE];
KKASSERT(a_len <= BLAKE2S_HASH_SIZE &&
b_len <= BLAKE2S_HASH_SIZE &&
c_len <= BLAKE2S_HASH_SIZE);
noise_hmac(sec, x, ck, BLAKE2S_HASH_SIZE /* outlen */,
noise_hmac(out, out, sec, BLAKE2S_HASH_SIZE /* outlen */,
1 /* inlen */, BLAKE2S_HASH_SIZE);
out[BLAKE2S_HASH_SIZE] = 2;
noise_hmac(out, out, sec, BLAKE2S_HASH_SIZE /* outlen */,
BLAKE2S_HASH_SIZE + 1 /* inlen */, BLAKE2S_HASH_SIZE);
out[BLAKE2S_HASH_SIZE] = 3;
noise_hmac(out, out, sec, BLAKE2S_HASH_SIZE /* outlen */,
BLAKE2S_HASH_SIZE + 1 /* inlen */, BLAKE2S_HASH_SIZE);
#define NOISE_HASH_LEN BLAKE2S_HASH_SIZE