xref: /freebsd/crypto/openssl/doc/man3/EVP_PKEY_todata.pod (revision aa7957345732816fb0ba8308798d2f79f45597f9)
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