aboutsummaryrefslogtreecommitdiffstats
path: root/libblake_blake2xs_init.c
blob: 5404eee43f4c3f746a2360bf698cb8c8cb53c9c5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* See LICENSE file for copyright and license details. */
#include "common.h"

void
libblake_blake2xs_init(struct libblake_blake2xs_state *state, const struct libblake_blake2xs_params *params, const unsigned char *key)
{
	libblake_internal_blake2xs_init0(state, params);

	memcpy(&state->xof_params, params, sizeof(state->xof_params));
	state->xof_params.digest_len = 32;
	state->xof_params.key_len = 0;
	state->xof_params.fanout = 0;
	state->xof_params.depth = 0;
	state->xof_params.leaf_len = 32;
	state->xof_params.xof_len = params->xof_len;
	state->xof_params.node_depth = 0;
	state->xof_params.inner_len = 32;

	memset(&state->intermediate, 0, sizeof(state->intermediate));

	if (params->key_len) {
		state->b2s.t[0] = 64;
		libblake_internal_blake2s_compress(&state->b2s, key);
	}
}