summaryrefslogtreecommitdiffstats
path: root/test/evp_test.c
diff options
context:
space:
mode:
authorAntoine Salon <asalon@vmware.com>2018-12-20 15:36:40 -0800
committerMatt Caswell <matt@openssl.org>2019-02-06 09:24:28 +0000
commitb215db236c6668c785bd99787b3fd07d5b2e6a10 (patch)
treea4cf31fd96bf695678752b97f56572d3cd8d181d /test/evp_test.c
parent33e113b0cbd9a0845f6f8a63e8aad558a897cac6 (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.c26
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;