1*b077aed3SPierre Pronchery=pod 2*b077aed3SPierre Pronchery 3*b077aed3SPierre Pronchery=head1 NAME 4*b077aed3SPierre Pronchery 5*b077aed3SPierre ProncheryEVP_PKEY_settable_params, EVP_PKEY_set_params, 6*b077aed3SPierre ProncheryEVP_PKEY_set_int_param, EVP_PKEY_set_size_t_param, EVP_PKEY_set_bn_param, 7*b077aed3SPierre ProncheryEVP_PKEY_set_utf8_string_param, EVP_PKEY_set_octet_string_param 8*b077aed3SPierre Pronchery- set key parameters into a key 9*b077aed3SPierre Pronchery 10*b077aed3SPierre Pronchery=head1 SYNOPSIS 11*b077aed3SPierre Pronchery 12*b077aed3SPierre Pronchery #include <openssl/evp.h> 13*b077aed3SPierre Pronchery 14*b077aed3SPierre Pronchery const OSSL_PARAM *EVP_PKEY_settable_params(const EVP_PKEY *pkey); 15*b077aed3SPierre Pronchery int EVP_PKEY_set_params(EVP_PKEY *pkey, OSSL_PARAM params[]); 16*b077aed3SPierre Pronchery int EVP_PKEY_set_int_param(EVP_PKEY *pkey, const char *key_name, int in); 17*b077aed3SPierre Pronchery int EVP_PKEY_set_size_t_param(EVP_PKEY *pkey, const char *key_name, size_t in); 18*b077aed3SPierre Pronchery int EVP_PKEY_set_bn_param(EVP_PKEY *pkey, const char *key_name, 19*b077aed3SPierre Pronchery const BIGNUM *bn); 20*b077aed3SPierre Pronchery int EVP_PKEY_set_utf8_string_param(EVP_PKEY *pkey, const char *key_name, 21*b077aed3SPierre Pronchery const char *str); 22*b077aed3SPierre Pronchery int EVP_PKEY_set_octet_string_param(EVP_PKEY *pkey, const char *key_name, 23*b077aed3SPierre Pronchery const unsigned char *buf, size_t bsize); 24*b077aed3SPierre Pronchery 25*b077aed3SPierre Pronchery=head1 DESCRIPTION 26*b077aed3SPierre Pronchery 27*b077aed3SPierre ProncheryThese functions can be used to set additional parameters into an existing 28*b077aed3SPierre ProncheryB<EVP_PKEY>. 29*b077aed3SPierre Pronchery 30*b077aed3SPierre ProncheryEVP_PKEY_set_params() sets one or more I<params> into a I<pkey>. 31*b077aed3SPierre ProncherySee L<OSSL_PARAM(3)> for information about parameters. 32*b077aed3SPierre Pronchery 33*b077aed3SPierre ProncheryEVP_PKEY_settable_params() returns a constant list of I<params> indicating 34*b077aed3SPierre Proncherythe names and types of key parameters that can be set. 35*b077aed3SPierre ProncherySee L<OSSL_PARAM(3)> for information about parameters. 36*b077aed3SPierre Pronchery 37*b077aed3SPierre ProncheryEVP_PKEY_set_int_param() sets an integer value I<in> into a key I<pkey> for the 38*b077aed3SPierre Proncheryassociated field I<key_name>. 39*b077aed3SPierre Pronchery 40*b077aed3SPierre ProncheryEVP_PKEY_set_size_t_param() sets an size_t value I<in> into a key I<pkey> for 41*b077aed3SPierre Proncherythe associated field I<key_name>. 42*b077aed3SPierre Pronchery 43*b077aed3SPierre ProncheryEVP_PKEY_set_bn_param() sets the BIGNUM value I<bn> into a key I<pkey> for the 44*b077aed3SPierre Proncheryassociated field I<key_name>. 45*b077aed3SPierre Pronchery 46*b077aed3SPierre ProncheryEVP_PKEY_set_utf8_string_param() sets the UTF8 string I<str> into a key I<pkey> 47*b077aed3SPierre Proncheryfor the associated field I<key_name>. 48*b077aed3SPierre Pronchery 49*b077aed3SPierre ProncheryEVP_PKEY_set_octet_string_param() sets the octet string value I<buf> with a 50*b077aed3SPierre Proncherysize I<bsize> into a key I<pkey> for the associated field I<key_name>. 51*b077aed3SPierre Pronchery 52*b077aed3SPierre Pronchery=head1 NOTES 53*b077aed3SPierre Pronchery 54*b077aed3SPierre ProncheryThese functions only work for B<EVP_PKEY>s that contain a provider side key. 55*b077aed3SPierre Pronchery 56*b077aed3SPierre Pronchery=head1 RETURN VALUES 57*b077aed3SPierre Pronchery 58*b077aed3SPierre ProncheryEVP_PKEY_settable_params() returns NULL on error or if it is not supported, 59*b077aed3SPierre Pronchery 60*b077aed3SPierre ProncheryAll other methods return 1 if a value was successfully set, or 0 if 61*b077aed3SPierre Proncherythere was an error. 62*b077aed3SPierre Pronchery 63*b077aed3SPierre Pronchery=head1 SEE ALSO 64*b077aed3SPierre Pronchery 65*b077aed3SPierre ProncheryL<EVP_PKEY_gettable_params(3)>, 66*b077aed3SPierre ProncheryL<EVP_PKEY_CTX_new(3)>, L<provider-keymgmt(7)>, L<OSSL_PARAM(3)>, 67*b077aed3SPierre Pronchery 68*b077aed3SPierre Pronchery 69*b077aed3SPierre Pronchery=head1 HISTORY 70*b077aed3SPierre Pronchery 71*b077aed3SPierre ProncheryThese functions were added in OpenSSL 3.0. 72*b077aed3SPierre Pronchery 73*b077aed3SPierre Pronchery=head1 COPYRIGHT 74*b077aed3SPierre Pronchery 75*b077aed3SPierre ProncheryCopyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. 76*b077aed3SPierre Pronchery 77*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 78*b077aed3SPierre Proncherythis file except in compliance with the License. You can obtain a copy 79*b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at 80*b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>. 81*b077aed3SPierre Pronchery 82*b077aed3SPierre Pronchery=cut 83*b077aed3SPierre Pronchery 84