X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=test%2Fevp_test.c;h=17b9fc0dfb1ddb9e02d3751601a47703c84d6872;hp=76a0231c8b2f02d70730c9f312d5baa780f1ed38;hb=703170d4b9da1b3adc0e4d87719a5156080b2dca;hpb=3ce46435e6ebed69bec0fa3454cc195ced426d42 diff --git a/test/evp_test.c b/test/evp_test.c index 76a0231c8b..17b9fc0dfb 100644 --- a/test/evp_test.c +++ b/test/evp_test.c @@ -557,7 +557,7 @@ static int cipher_test_parse(EVP_TEST *t, const char *keyword, if (cdat->aad[i] == NULL) return parse_bin(value, &cdat->aad[i], &cdat->aad_len[i]); } - return 0; + return -1; } if (strcmp(keyword, "Tag") == 0) return parse_bin(value, &cdat->tag, &cdat->tag_len); @@ -567,7 +567,7 @@ static int cipher_test_parse(EVP_TEST *t, const char *keyword, else if (strcmp(value, "FALSE") == 0) cdat->tag_late = 0; else - return 0; + return -1; return 1; } } @@ -578,7 +578,7 @@ static int cipher_test_parse(EVP_TEST *t, const char *keyword, else if (strcmp(value, "DECRYPT") == 0) cdat->enc = 0; else - return 0; + return -1; return 1; } return 0; @@ -1016,7 +1016,7 @@ static int mac_test_parse(EVP_TEST *t, if (strcmp(keyword, "Algorithm") == 0) { mdata->alg = OPENSSL_strdup(value); if (!mdata->alg) - return 0; + return -1; return 1; } if (strcmp(keyword, "Input") == 0) @@ -1163,11 +1163,29 @@ static int mac_test_run_mac(EVP_TEST *t) } #endif - if (expected->alg != NULL) - params[params_n++] = - OSSL_PARAM_construct_utf8_string(OSSL_MAC_PARAM_ALGORITHM, - expected->alg, - strlen(expected->alg) + 1); + if (expected->alg != NULL) { + /* + * The underlying algorithm may be a cipher or a digest. + * We don't know which it is, but we can ask the MAC what it + * should be and bet on that. + */ + if (OSSL_PARAM_locate_const(defined_params, + OSSL_MAC_PARAM_CIPHER) != NULL) { + params[params_n++] = + OSSL_PARAM_construct_utf8_string(OSSL_MAC_PARAM_CIPHER, + expected->alg, + strlen(expected->alg) + 1); + } else if (OSSL_PARAM_locate_const(defined_params, + OSSL_MAC_PARAM_DIGEST) != NULL) { + params[params_n++] = + OSSL_PARAM_construct_utf8_string(OSSL_MAC_PARAM_DIGEST, + expected->alg, + strlen(expected->alg) + 1); + } else { + t->err = "MAC_BAD_PARAMS"; + goto err; + } + } if (expected->key != NULL) params[params_n++] = OSSL_PARAM_construct_octet_string(OSSL_MAC_PARAM_KEY, @@ -1533,9 +1551,9 @@ static int pderive_test_parse(EVP_TEST *t, if (strcmp(keyword, "PeerKey") == 0) { EVP_PKEY *peer; if (find_key(&peer, value, public_keys) == 0) - return 0; + return -1; if (EVP_PKEY_derive_set_peer(kdata->ctx, peer) <= 0) - return 0; + return -1; return 1; } if (strcmp(keyword, "SharedSecret") == 0) @@ -2529,7 +2547,7 @@ static int digestsigver_test_parse(EVP_TEST *t, } if (strcmp(keyword, "Ctrl") == 0) { if (mdata->pctx == NULL) - return 0; + return -1; return pkey_test_ctrl(t, mdata->pctx, value); } return 0;