1b077aed3SPierre Pronchery=pod 2b077aed3SPierre Pronchery 3b077aed3SPierre Pronchery=head1 NAME 4b077aed3SPierre Pronchery 5b077aed3SPierre ProncheryEVP_PKEY_todata, EVP_PKEY_export 6b077aed3SPierre Pronchery- functions to return keys as an array of key parameters 7b077aed3SPierre Pronchery 8b077aed3SPierre Pronchery=head1 SYNOPSIS 9b077aed3SPierre Pronchery 10b077aed3SPierre Pronchery #include <openssl/evp.h> 11b077aed3SPierre Pronchery 12b077aed3SPierre Pronchery int EVP_PKEY_todata(const EVP_PKEY *pkey, int selection, OSSL_PARAM **params); 13b077aed3SPierre Pronchery int EVP_PKEY_export(const EVP_PKEY *pkey, int selection, 14b077aed3SPierre Pronchery OSSL_CALLBACK *export_cb, void *export_cbarg); 15b077aed3SPierre Pronchery 16b077aed3SPierre Pronchery=head1 DESCRIPTION 17b077aed3SPierre Pronchery 18b077aed3SPierre ProncheryThe functions described here are used to extract B<EVP_PKEY> key values as an 19b077aed3SPierre Proncheryarray of L<OSSL_PARAM(3)>. 20b077aed3SPierre Pronchery 21b077aed3SPierre ProncheryEVP_PKEY_todata() extracts values from a key I<pkey> using the I<selection>. 22b077aed3SPierre ProncheryI<selection> is described in L<EVP_PKEY_fromdata(3)/Selections>. 23b077aed3SPierre ProncheryL<OSSL_PARAM_free(3)> should be used to free the returned parameters in 24b077aed3SPierre ProncheryI<*params>. 25b077aed3SPierre Pronchery 26*aa795734SPierre ProncheryEVP_PKEY_export() is similar to EVP_PKEY_todata() but uses a callback 27b077aed3SPierre ProncheryI<export_cb> that gets passed the value of I<export_cbarg>. 28b077aed3SPierre ProncherySee L<openssl-core.h(7)> for more information about the callback. Note that the 29b077aed3SPierre ProncheryL<OSSL_PARAM(3)> array that is passed to the callback is not persistent after the 30b077aed3SPierre Proncherycallback returns. The user must preserve the items of interest, or use 31b077aed3SPierre ProncheryEVP_PKEY_todata() if persistence is required. 32b077aed3SPierre Pronchery 33b077aed3SPierre Pronchery=head1 NOTES 34b077aed3SPierre Pronchery 35b077aed3SPierre ProncheryThese functions only work with key management methods coming from a provider. 36b077aed3SPierre ProncheryThis is the mirror function to L<EVP_PKEY_fromdata(3)>. 37b077aed3SPierre Pronchery 38b077aed3SPierre Pronchery=head1 RETURN VALUES 39b077aed3SPierre Pronchery 40b077aed3SPierre ProncheryEVP_PKEY_todata() and EVP_PKEY_export() return 1 for success and 0 for failure. 41b077aed3SPierre Pronchery 42b077aed3SPierre Pronchery=head1 SEE ALSO 43b077aed3SPierre Pronchery 44b077aed3SPierre ProncheryL<OSSL_PARAM(3)>, L<openssl-core.h(7)>, 45b077aed3SPierre ProncheryL<EVP_PKEY_fromdata(3)>, 46b077aed3SPierre ProncheryL<EVP_PKEY-RSA(7)>, L<EVP_PKEY-DSA(7)>, L<EVP_PKEY-DH(7)>, L<EVP_PKEY-EC(7)>, 47b077aed3SPierre ProncheryL<EVP_PKEY-ED448(7)>, L<EVP_PKEY-X25519(7)>, L<EVP_PKEY-X448(7)>, 48b077aed3SPierre ProncheryL<EVP_PKEY-ED25519(7)> 49b077aed3SPierre Pronchery 50b077aed3SPierre Pronchery=head1 HISTORY 51b077aed3SPierre Pronchery 52b077aed3SPierre ProncheryThese functions were added in OpenSSL 3.0. 53b077aed3SPierre Pronchery 54b077aed3SPierre Pronchery=head1 COPYRIGHT 55b077aed3SPierre Pronchery 56*aa795734SPierre ProncheryCopyright 2021-2023 The OpenSSL Project Authors. All Rights Reserved. 57b077aed3SPierre Pronchery 58b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 59b077aed3SPierre Proncherythis file except in compliance with the License. You can obtain a copy 60b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at 61b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>. 62b077aed3SPierre Pronchery 63b077aed3SPierre Pronchery=cut 64b077aed3SPierre Pronchery 65