1313962Sallanjude/* 2313962Sallanjude * $FreeBSD: stable/11/tests/sys/geom/class/eli/hmac_test.c 327856 2018-01-12 00:31:07Z asomers $ 3313962Sallanjude */ 4313962Sallanjude 5313962Sallanjude#include <sys/param.h> 6313962Sallanjude#include <atf-c.h> 7313962Sallanjude 8313962Sallanjude#include <geom/eli/pkcs5v2.h> 9313962Sallanjude 10313962Sallanjudeconst struct { 11313962Sallanjude char *salt; 12313962Sallanjude size_t saltlen; 13313962Sallanjude char *passwd; 14313962Sallanjude int iterations; 15313962Sallanjude char *hmacout; 16313962Sallanjude size_t hmaclen; 17313962Sallanjude} testdata[] = { 18313962Sallanjude#include "testvect.h" 19313962Sallanjude}; 20313962Sallanjude 21313962SallanjudeATF_TC_WITHOUT_HEAD(hmactest); 22313962SallanjudeATF_TC_BODY(hmactest, tc) 23313962Sallanjude{ 24313962Sallanjude size_t i; 25313962Sallanjude uint8_t hmacout[64]; 26313962Sallanjude 27313962Sallanjude for (i = 0; i < nitems(testdata); i++) { 28313962Sallanjude pkcs5v2_genkey(hmacout, testdata[i].hmaclen, 29313962Sallanjude (uint8_t *)testdata[i].salt, testdata[i].saltlen, 30313962Sallanjude testdata[i].passwd, testdata[i].iterations); 31313962Sallanjude ATF_REQUIRE(bcmp(hmacout, testdata[i].hmacout, 32313962Sallanjude testdata[i].hmaclen) == 0); 33313962Sallanjude } 34313962Sallanjude} 35313962Sallanjude 36313962SallanjudeATF_TP_ADD_TCS(tp) 37313962Sallanjude{ 38313962Sallanjude ATF_TP_ADD_TC(tp, hmactest); 39313962Sallanjude 40313962Sallanjude return (atf_no_error()); 41313962Sallanjude} 42