1/*
2 * $FreeBSD: stable/11/tests/sys/geom/class/eli/hmac_test.c 327856 2018-01-12 00:31:07Z asomers $
3 */
4
5#include <sys/param.h>
6#include <atf-c.h>
7
8#include <geom/eli/pkcs5v2.h>
9
10const struct {
11	char	*salt;
12	size_t	saltlen;
13	char	*passwd;
14	int	iterations;
15	char	*hmacout;
16	size_t	hmaclen;
17} testdata[] = {
18#include "testvect.h"
19};
20
21ATF_TC_WITHOUT_HEAD(hmactest);
22ATF_TC_BODY(hmactest, tc)
23{
24	size_t i;
25	uint8_t hmacout[64];
26
27	for (i = 0; i < nitems(testdata); i++) {
28		pkcs5v2_genkey(hmacout, testdata[i].hmaclen,
29		    (uint8_t *)testdata[i].salt, testdata[i].saltlen,
30		    testdata[i].passwd, testdata[i].iterations);
31		ATF_REQUIRE(bcmp(hmacout, testdata[i].hmacout,
32		    testdata[i].hmaclen) == 0);
33	}
34}
35
36ATF_TP_ADD_TCS(tp)
37{
38	ATF_TP_ADD_TC(tp, hmactest);
39
40	return (atf_no_error());
41}
42