From: Pauli Date: Mon, 1 Mar 2021 23:01:33 +0000 (+1000) Subject: evp: add params argument to key manager's gen_init call X-Git-Tag: openssl-3.0.0-alpha14~334 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1be63b3e962097f20db2172e2c468a2a51d01da0;p=thirdparty%2Fopenssl.git evp: add params argument to key manager's gen_init call Reviewed-by: Shane Lontis (Merged from https://github.com/openssl/openssl/pull/14383) --- diff --git a/crypto/evp/keymgmt_meth.c b/crypto/evp/keymgmt_meth.c index 3142996cabb..b42e2b77c92 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 091d3877954..7383fbe072c 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 70cc6fff1ce..5dd0db3bae6 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,