diff options
author | Antoine Salon <asalon@vmware.com> | 2018-12-20 15:36:40 -0800 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2019-02-06 09:24:28 +0000 |
commit | b215db236c6668c785bd99787b3fd07d5b2e6a10 (patch) | |
tree | a4cf31fd96bf695678752b97f56572d3cd8d181d /test/evp_test.c | |
parent | 33e113b0cbd9a0845f6f8a63e8aad558a897cac6 (diff) |
blake2: add evpmac test vectors
Signed-off-by: Antoine Salon <asalon@vmware.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7726)
Diffstat (limited to 'test/evp_test.c')
-rw-r--r-- | test/evp_test.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/test/evp_test.c b/test/evp_test.c index eaedab2cb8..932b03c68b 100644 --- a/test/evp_test.c +++ b/test/evp_test.c @@ -864,6 +864,9 @@ typedef struct mac_data_st { size_t output_len; unsigned char *custom; size_t custom_len; + /* MAC salt (blake2) */ + unsigned char *salt; + size_t salt_len; /* Collection of controls */ STACK_OF(OPENSSL_STRING) *controls; } MAC_DATA; @@ -947,6 +950,7 @@ static void mac_test_cleanup(EVP_TEST *t) OPENSSL_free(mdat->key); OPENSSL_free(mdat->iv); OPENSSL_free(mdat->custom); + OPENSSL_free(mdat->salt); OPENSSL_free(mdat->input); OPENSSL_free(mdat->output); } @@ -962,6 +966,8 @@ static int mac_test_parse(EVP_TEST *t, return parse_bin(value, &mdata->iv, &mdata->iv_len); if (strcmp(keyword, "Custom") == 0) return parse_bin(value, &mdata->custom, &mdata->custom_len); + if (strcmp(keyword, "Salt") == 0) + return parse_bin(value, &mdata->salt, &mdata->salt_len); if (strcmp(keyword, "Algorithm") == 0) { mdata->alg = OPENSSL_strdup(value); if (!mdata->alg) @@ -1156,6 +1162,18 @@ static int mac_test_run_mac(EVP_TEST *t) } } + if (expected->salt != NULL) { + rv = EVP_MAC_ctrl(ctx, EVP_MAC_CTRL_SET_SALT, + expected->salt, expected->salt_len); + if (rv == -2) { + t->err = "MAC_CTRL_INVALID"; + goto err; + } else if (rv <= 0) { + t->err = "MAC_CTRL_ERROR"; + goto err; + } + } + if (expected->iv != NULL) { rv = EVP_MAC_ctrl(ctx, EVP_MAC_CTRL_SET_IV, expected->iv, expected->iv_len); @@ -1168,10 +1186,6 @@ static int mac_test_run_mac(EVP_TEST *t) } } - if (!EVP_MAC_init(ctx)) { - t->err = "MAC_INIT_ERROR"; - goto err; - } for (i = 0; i < sk_OPENSSL_STRING_num(expected->controls); i++) { char *p, *tmpval; char *value = sk_OPENSSL_STRING_value(expected->controls, i); @@ -1193,6 +1207,10 @@ static int mac_test_run_mac(EVP_TEST *t) goto err; } } + if (!EVP_MAC_init(ctx)) { + t->err = "MAC_INIT_ERROR"; + goto err; + } if (!EVP_MAC_update(ctx, expected->input, expected->input_len)) { t->err = "MAC_UPDATE_ERROR"; goto err; |