From 1be63b3e962097f20db2172e2c468a2a51d01da0 Mon Sep 17 00:00:00 2001 From: Pauli Date: Tue, 2 Mar 2021 09:01:33 +1000 Subject: [PATCH] evp: add params argument to key manager's gen_init call Reviewed-by: Shane Lontis (Merged from https://github.com/openssl/openssl/pull/14383) --- crypto/evp/keymgmt_meth.c | 5 +++-- crypto/evp/pmeth_gn.c | 5 +++-- include/crypto/evp.h | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/crypto/evp/keymgmt_meth.c b/crypto/evp/keymgmt_meth.c index 3142996cab..b42e2b77c9 100644 --- a/crypto/evp/keymgmt_meth.c +++ b/crypto/evp/keymgmt_meth.c @@ -302,13 +302,14 @@ void evp_keymgmt_freedata(const EVP_KEYMGMT *keymgmt, void *keydata) keymgmt->free(keydata); } -void *evp_keymgmt_gen_init(const EVP_KEYMGMT *keymgmt, int selection) +void *evp_keymgmt_gen_init(const EVP_KEYMGMT *keymgmt, int selection, + const OSSL_PARAM params[]) { void *provctx = ossl_provider_ctx(EVP_KEYMGMT_provider(keymgmt)); if (keymgmt->gen_init == NULL) return NULL; - return keymgmt->gen_init(provctx, selection); + return keymgmt->gen_init(provctx, selection, params); } int evp_keymgmt_gen_set_template(const EVP_KEYMGMT *keymgmt, void *genctx, diff --git a/crypto/evp/pmeth_gn.c b/crypto/evp/pmeth_gn.c index 091d387795..7383fbe072 100644 --- a/crypto/evp/pmeth_gn.c +++ b/crypto/evp/pmeth_gn.c @@ -37,11 +37,12 @@ static int gen_init(EVP_PKEY_CTX *ctx, int operation) case EVP_PKEY_OP_PARAMGEN: ctx->op.keymgmt.genctx = evp_keymgmt_gen_init(ctx->keymgmt, - OSSL_KEYMGMT_SELECT_ALL_PARAMETERS); + OSSL_KEYMGMT_SELECT_ALL_PARAMETERS, NULL); break; case EVP_PKEY_OP_KEYGEN: ctx->op.keymgmt.genctx = - evp_keymgmt_gen_init(ctx->keymgmt, OSSL_KEYMGMT_SELECT_KEYPAIR); + evp_keymgmt_gen_init(ctx->keymgmt, OSSL_KEYMGMT_SELECT_KEYPAIR, + NULL); break; } diff --git a/include/crypto/evp.h b/include/crypto/evp.h index 70cc6fff1c..5dd0db3bae 100644 --- a/include/crypto/evp.h +++ b/include/crypto/evp.h @@ -776,7 +776,8 @@ int evp_keymgmt_get_params(const EVP_KEYMGMT *keymgmt, void *keydata, OSSL_PARAM params[]); int evp_keymgmt_set_params(const EVP_KEYMGMT *keymgmt, void *keydata, const OSSL_PARAM params[]); -void *evp_keymgmt_gen_init(const EVP_KEYMGMT *keymgmt, int selection); +void *evp_keymgmt_gen_init(const EVP_KEYMGMT *keymgmt, int selection, + const OSSL_PARAM params[]); int evp_keymgmt_gen_set_template(const EVP_KEYMGMT *keymgmt, void *genctx, void *template); int evp_keymgmt_gen_set_params(const EVP_KEYMGMT *keymgmt, void *genctx, -- 2.34.1