diff --git a/test/evp_test.c b/test/evp_test.c index 097e74104d..5412b1f95e 100644 --- a/test/evp_test.c +++ b/test/evp_test.c @@ -2808,6 +2808,7 @@ static int kdf_test_run(EVP_TEST *t) KDF_DATA *expected = t->data; unsigned char *got = NULL; size_t got_len = expected->output_len; + EVP_KDF_CTX *ctx; if (!EVP_KDF_CTX_set_params(expected->ctx, expected->params)) { t->err = "KDF_CTRL_ERROR"; @@ -2817,6 +2818,10 @@ static int kdf_test_run(EVP_TEST *t) t->err = "INTERNAL_ERROR"; goto err; } + if ((ctx = EVP_KDF_CTX_dup(expected->ctx)) != NULL) { + EVP_KDF_CTX_free(expected->ctx); + expected->ctx = ctx; + } if (EVP_KDF_derive(expected->ctx, got, got_len, NULL) <= 0) { t->err = "KDF_DERIVE_ERROR"; goto err;