summaryrefslogtreecommitdiffstats
path: root/test/drbg_cavs_test.c
diff options
context:
space:
mode:
authorShane Lontis <shane.lontis@oracle.com>2018-07-24 11:16:38 +1000
committerPauli <paul.dale@oracle.com>2018-09-28 07:22:13 +1000
commit8bf366519661e12fd894dc5420f5b64dccfd7ecd (patch)
tree2dbd982aa266dcc238ac4e973694110974c35b79 /test/drbg_cavs_test.c
parent1362190b1b786a87378e55e9a1c20c46b6b6a286 (diff)
Added DRBG_HMAC & DRBG_HASH + Added defaults for setting DRBG for master/public/private + renamed generate_counter back to reseed_counter + generated new cavs data tests
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/6779)
Diffstat (limited to 'test/drbg_cavs_test.c')
-rw-r--r--test/drbg_cavs_test.c36
1 files changed, 30 insertions, 6 deletions
diff --git a/test/drbg_cavs_test.c b/test/drbg_cavs_test.c
index 413f5bf698..5e0b202680 100644
--- a/test/drbg_cavs_test.c
+++ b/test/drbg_cavs_test.c
@@ -71,8 +71,10 @@ static int single_kat_no_reseed(const struct drbg_kat *td)
int failures = 0;
TEST_CTX t;
- if (td->df != USE_DF)
+ if ((td->flags & USE_DF) == 0)
flags |= RAND_DRBG_FLAG_CTR_NO_DF;
+ if ((td->flags & USE_HMAC) != 0)
+ flags |= RAND_DRBG_FLAG_HMAC;
if (!TEST_ptr(drbg = RAND_DRBG_new(td->nid, flags, NULL)))
return 0;
@@ -133,8 +135,10 @@ static int single_kat_pr_false(const struct drbg_kat *td)
int failures = 0;
TEST_CTX t;
- if (td->df != USE_DF)
+ if ((td->flags & USE_DF) == 0)
flags |= RAND_DRBG_FLAG_CTR_NO_DF;
+ if ((td->flags & USE_HMAC) != 0)
+ flags |= RAND_DRBG_FLAG_HMAC;
if (!TEST_ptr(drbg = RAND_DRBG_new(td->nid, flags, NULL)))
return 0;
@@ -200,8 +204,10 @@ static int single_kat_pr_true(const struct drbg_kat *td)
int failures = 0;
TEST_CTX t;
- if (td->df != USE_DF)
+ if ((td->flags & USE_DF) == 0)
flags |= RAND_DRBG_FLAG_CTR_NO_DF;
+ if ((td->flags & USE_HMAC) != 0)
+ flags |= RAND_DRBG_FLAG_HMAC;
if (!TEST_ptr(drbg = RAND_DRBG_new(td->nid, flags, NULL)))
return 0;
@@ -252,9 +258,9 @@ err:
return failures == 0;
}
-static int test_cavs_kats(int i)
+static int test_cavs_kats(const struct drbg_kat *test[], int i)
{
- const struct drbg_kat *td = drbg_test[i];
+ const struct drbg_kat *td = test[i];
int rv = 0;
switch (td->type) {
@@ -278,10 +284,28 @@ err:
return rv;
}
+static int test_cavs_ctr(int i)
+{
+ return test_cavs_kats(drbg_ctr_test, i);
+}
+
+static int test_cavs_hmac(int i)
+{
+ return test_cavs_kats(drbg_hmac_test, i);
+}
+
+static int test_cavs_hash(int i)
+{
+ return test_cavs_kats(drbg_hash_test, i);
+}
+
int setup_tests(void)
{
app_data_index = RAND_DRBG_get_ex_new_index(0L, NULL, NULL, NULL, NULL);
- ADD_ALL_TESTS(test_cavs_kats, drbg_test_nelem);
+ ADD_ALL_TESTS(test_cavs_ctr, drbg_ctr_nelem);
+ ADD_ALL_TESTS(test_cavs_hmac, drbg_hmac_nelem);
+ ADD_ALL_TESTS(test_cavs_hash, drbg_hash_nelem);
+
return 1;
}