1b077aed3SPierre Pronchery=pod 2b077aed3SPierre Pronchery 3b077aed3SPierre Pronchery=head1 NAME 4b077aed3SPierre Pronchery 5b077aed3SPierre ProncheryEVP_PKEY_CTX_set_params, 6b077aed3SPierre ProncheryEVP_PKEY_CTX_settable_params, 7b077aed3SPierre ProncheryEVP_PKEY_CTX_get_params, 8b077aed3SPierre ProncheryEVP_PKEY_CTX_gettable_params 9b077aed3SPierre Pronchery- provider parameter passing operations 10b077aed3SPierre Pronchery 11b077aed3SPierre Pronchery=head1 SYNOPSIS 12b077aed3SPierre Pronchery 13b077aed3SPierre Pronchery #include <openssl/evp.h> 14b077aed3SPierre Pronchery 15b077aed3SPierre Pronchery int EVP_PKEY_CTX_set_params(EVP_PKEY_CTX *ctx, const OSSL_PARAM *params); 16b077aed3SPierre Pronchery const OSSL_PARAM *EVP_PKEY_CTX_settable_params(const EVP_PKEY_CTX *ctx); 17b077aed3SPierre Pronchery int EVP_PKEY_CTX_get_params(EVP_PKEY_CTX *ctx, OSSL_PARAM *params); 18b077aed3SPierre Pronchery const OSSL_PARAM *EVP_PKEY_CTX_gettable_params(const EVP_PKEY_CTX *ctx); 19b077aed3SPierre Pronchery 20b077aed3SPierre Pronchery=head1 DESCRIPTION 21b077aed3SPierre Pronchery 22b077aed3SPierre ProncheryThe EVP_PKEY_CTX_get_params() and EVP_PKEY_CTX_set_params() functions allow 23b077aed3SPierre Proncherytransfer of arbitrary key parameters to and from providers. 24b077aed3SPierre ProncheryNot all parameters may be supported by all providers. 25b077aed3SPierre ProncherySee L<OSSL_PROVIDER(3)> for more information on providers. 2644096ebdSEnji CooperThe I<params> field is a pointer to a list of B<OSSL_PARAM> structures, 2744096ebdSEnji Cooperterminated with a L<OSSL_PARAM_END(3)> struct. 2844096ebdSEnji CooperSee L<OSSL_PARAM(3)> for information about passing parameters. 29b077aed3SPierre ProncheryThese functions must only be called after the EVP_PKEY_CTX has been initialised 30b077aed3SPierre Proncheryfor use in an operation. 31b077aed3SPierre ProncheryThese methods replace the EVP_PKEY_CTX_ctrl() mechanism. (EVP_PKEY_CTX_ctrl now 32b077aed3SPierre Proncherycalls these methods internally to interact with providers). 33b077aed3SPierre Pronchery 34b077aed3SPierre ProncheryEVP_PKEY_CTX_gettable_params() and EVP_PKEY_CTX_settable_params() get a 35b077aed3SPierre Proncheryconstant L<OSSL_PARAM(3)> array that describes the gettable and 36b077aed3SPierre Proncherysettable parameters for the current algorithm implementation, i.e. parameters 37b077aed3SPierre Proncherythat can be used with EVP_PKEY_CTX_get_params() and EVP_PKEY_CTX_set_params() 38b077aed3SPierre Proncheryrespectively. 39b077aed3SPierre ProncheryThese functions must only be called after the EVP_PKEY_CTX has been initialised 40b077aed3SPierre Proncheryfor use in an operation. 41b077aed3SPierre Pronchery 42b077aed3SPierre Pronchery=head2 Parameters 43b077aed3SPierre Pronchery 44b077aed3SPierre ProncheryExamples of EVP_PKEY parameters include the following: 45b077aed3SPierre Pronchery 46b077aed3SPierre ProncheryL<provider-keymgmt(7)/Common parameters> 47b077aed3SPierre ProncheryL<provider-keyexch(7)/Key Exchange parameters> 48b077aed3SPierre ProncheryL<provider-signature(7)/Signature parameters> 49b077aed3SPierre Pronchery 50b077aed3SPierre ProncheryL<EVP_PKEY-RSA(7)/Common RSA parameters> 51b077aed3SPierre ProncheryL<EVP_PKEY-RSA(7)/RSA key generation parameters> 52b077aed3SPierre ProncheryL<EVP_PKEY-FFC(7)/FFC parameters> 53b077aed3SPierre ProncheryL<EVP_PKEY-FFC(7)/FFC key generation parameters> 54b077aed3SPierre ProncheryL<EVP_PKEY-DSA(7)/DSA parameters> 55b077aed3SPierre ProncheryL<EVP_PKEY-DSA(7)/DSA key generation parameters> 56b077aed3SPierre ProncheryL<EVP_PKEY-DH(7)/DH parameters> 57b077aed3SPierre ProncheryL<EVP_PKEY-DH(7)/DH key generation parameters> 58b077aed3SPierre ProncheryL<EVP_PKEY-EC(7)/Common EC parameters> 59b077aed3SPierre ProncheryL<EVP_PKEY-X25519(7)/Common X25519, X448, ED25519 and ED448 parameters> 60*e7be843bSPierre ProncheryL<EVP_PKEY-ML-DSA(7)/Common parameters> 61*e7be843bSPierre ProncheryL<EVP_PKEY-ML-KEM(7)/Common parameters> 62b077aed3SPierre Pronchery 63b077aed3SPierre Pronchery=head1 RETURN VALUES 64b077aed3SPierre Pronchery 65b077aed3SPierre ProncheryEVP_PKEY_CTX_set_params() returns 1 for success or 0 otherwise. 66b077aed3SPierre ProncheryEVP_PKEY_CTX_settable_params() returns an OSSL_PARAM array on success or NULL on 67b077aed3SPierre Proncheryerror. 68b077aed3SPierre ProncheryIt may also return NULL if there are no settable parameters available. 69b077aed3SPierre Pronchery 70b077aed3SPierre ProncheryAll other functions and macros described on this page return a positive value 71b077aed3SPierre Proncheryfor success and 0 or a negative value for failure. In particular a return value 72b077aed3SPierre Proncheryof -2 indicates the operation is not supported by the public key algorithm. 73b077aed3SPierre Pronchery 74b077aed3SPierre Pronchery=head1 SEE ALSO 75b077aed3SPierre Pronchery 76b077aed3SPierre ProncheryL<EVP_PKEY_CTX_new(3)>, 77b077aed3SPierre ProncheryL<EVP_PKEY_encrypt(3)>, 78b077aed3SPierre ProncheryL<EVP_PKEY_decrypt(3)>, 79b077aed3SPierre ProncheryL<EVP_PKEY_sign(3)>, 80b077aed3SPierre ProncheryL<EVP_PKEY_verify(3)>, 81b077aed3SPierre ProncheryL<EVP_PKEY_verify_recover(3)>, 82b077aed3SPierre ProncheryL<EVP_PKEY_derive(3)>, 83b077aed3SPierre ProncheryL<EVP_PKEY_keygen(3)> 84b077aed3SPierre Pronchery 85b077aed3SPierre Pronchery=head1 HISTORY 86b077aed3SPierre Pronchery 87b077aed3SPierre ProncheryAll functions were added in OpenSSL 3.0. 88b077aed3SPierre Pronchery 89*e7be843bSPierre ProncherySupport for B<ML-DSA>> and B<ML-KEM> was added in OpenSSL 3.5. 90*e7be843bSPierre Pronchery 91b077aed3SPierre Pronchery=head1 COPYRIGHT 92b077aed3SPierre Pronchery 93*e7be843bSPierre ProncheryCopyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved. 94b077aed3SPierre Pronchery 95b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 96b077aed3SPierre Proncherythis file except in compliance with the License. You can obtain a copy 97b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at 98b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>. 99b077aed3SPierre Pronchery 100b077aed3SPierre Pronchery=cut 101