xref: /freebsd-src/crypto/openssl/doc/internal/man3/evp_keymgmt_newdata.pod (revision b077aed33b7b6aefca7b17ddb250cf521f938613)
1*b077aed3SPierre Pronchery=pod
2*b077aed3SPierre Pronchery
3*b077aed3SPierre Pronchery=head1 NAME
4*b077aed3SPierre Pronchery
5*b077aed3SPierre Proncheryevp_keymgmt_newdata, evp_keymgmt_freedata,
6*b077aed3SPierre Proncheryevp_keymgmt_get_params,
7*b077aed3SPierre Proncheryevp_keymgmt_has, evp_keymgmt_validate,
8*b077aed3SPierre Proncheryevp_keymgmt_import, evp_keymgmt_import_types,
9*b077aed3SPierre Proncheryevp_keymgmt_export, evp_keymgmt_export_types
10*b077aed3SPierre Pronchery- internal KEYMGMT interface functions
11*b077aed3SPierre Pronchery
12*b077aed3SPierre Pronchery=head1 SYNOPSIS
13*b077aed3SPierre Pronchery
14*b077aed3SPierre Pronchery #include "crypto/evp.h"
15*b077aed3SPierre Pronchery
16*b077aed3SPierre Pronchery void *evp_keymgmt_newdata(const EVP_KEYMGMT *keymgmt);
17*b077aed3SPierre Pronchery void evp_keymgmt_freedata(const EVP_KEYMGMT *keymgmt, void *keyddata);
18*b077aed3SPierre Pronchery int evp_keymgmt_get_params(const EVP_KEYMGMT *keymgmt,
19*b077aed3SPierre Pronchery                            void *keydata, OSSL_PARAM params[]);
20*b077aed3SPierre Pronchery
21*b077aed3SPierre Pronchery int evp_keymgmt_has(const EVP_KEYMGMT *keymgmt, void *keyddata, int selection);
22*b077aed3SPierre Pronchery int evp_keymgmt_validate(const EVP_KEYMGMT *keymgmt, void *keydata,
23*b077aed3SPierre Pronchery                          int selection);
24*b077aed3SPierre Pronchery
25*b077aed3SPierre Pronchery int evp_keymgmt_import(const EVP_KEYMGMT *keymgmt, void *keydata,
26*b077aed3SPierre Pronchery                        int selection, const OSSL_PARAM params[]);
27*b077aed3SPierre Pronchery const OSSL_PARAM *evp_keymgmt_import_types(const EVP_KEYMGMT *keymgmt,
28*b077aed3SPierre Pronchery                                            int selection);
29*b077aed3SPierre Pronchery int evp_keymgmt_export(const EVP_KEYMGMT *keymgmt, void *keydata,
30*b077aed3SPierre Pronchery                        int selection, OSSL_CALLBACK *param_cb, void *cbarg);
31*b077aed3SPierre Pronchery const OSSL_PARAM *evp_keymgmt_export_types(const EVP_KEYMGMT *keymgmt,
32*b077aed3SPierre Pronchery                                            int selection);
33*b077aed3SPierre Pronchery
34*b077aed3SPierre Pronchery=head1 DESCRIPTION
35*b077aed3SPierre Pronchery
36*b077aed3SPierre ProncheryAll these functions are helpers to call the provider's corresponding
37*b077aed3SPierre Proncheryfunction.  They all have in common that they take a B<EVP_KEYMGMT> as
38*b077aed3SPierre Proncheryfirst argument, which they also retrieve a provider context from when
39*b077aed3SPierre Proncheryneeded.  The rest of the arguments are simply passed on to the
40*b077aed3SPierre Proncheryfunction they wrap around.
41*b077aed3SPierre Pronchery
42*b077aed3SPierre Proncheryevp_keymgmt_newdata() calls the method's new() function.
43*b077aed3SPierre Pronchery
44*b077aed3SPierre Proncheryevp_keymgmt_freedata() calls the method's free() function.
45*b077aed3SPierre Pronchery
46*b077aed3SPierre Pronchery(the name evp_keymgmt_freedata() was chosen to avoid a clash with
47*b077aed3SPierre ProncheryEVP_KEYMGMT_free() on case insensitive systems, the name
48*b077aed3SPierre Proncheryevp_keymgmt_newdata() was chosen for consistency)
49*b077aed3SPierre Pronchery
50*b077aed3SPierre Proncheryevp_keymgmt_get_params() calls the method's get_params() function.
51*b077aed3SPierre Pronchery
52*b077aed3SPierre Proncheryevp_keymgmt_has() calls the method's has() function.
53*b077aed3SPierre Pronchery
54*b077aed3SPierre Proncheryevp_keymgmt_validate() calls the method's validate() function.
55*b077aed3SPierre Pronchery
56*b077aed3SPierre Proncheryevp_keymgmt_import() calls the method's import() function.
57*b077aed3SPierre Pronchery
58*b077aed3SPierre Proncheryevp_keymgmt_import_types() calls the method's import_types() function.
59*b077aed3SPierre Pronchery
60*b077aed3SPierre Proncheryevp_keymgmt_export() calls the method's export() function.
61*b077aed3SPierre Pronchery
62*b077aed3SPierre Proncheryevp_keymgmt_export_types() calls the method's export_types() function.
63*b077aed3SPierre Pronchery
64*b077aed3SPierre Pronchery=head1 RETURN VALUES
65*b077aed3SPierre Pronchery
66*b077aed3SPierre Proncheryevp_keymgmt_newdata() returns a pointer to a provider side key object,
67*b077aed3SPierre Proncheryor NULL on error.
68*b077aed3SPierre Pronchery
69*b077aed3SPierre Proncheryevp_keymgmt_import_types(), and evp_keymgmt_export_types() return a parameter
70*b077aed3SPierre Proncherydescriptor for importing and exporting key data, or NULL if there are no such
71*b077aed3SPierre Proncherydescriptors.
72*b077aed3SPierre Pronchery
73*b077aed3SPierre ProncheryAll other functions return 1 on success and 0 on error.
74*b077aed3SPierre Pronchery
75*b077aed3SPierre Pronchery=head1 HISTORY
76*b077aed3SPierre Pronchery
77*b077aed3SPierre ProncheryThe functions described here were all added in OpenSSL 3.0.
78*b077aed3SPierre Pronchery
79*b077aed3SPierre Pronchery=head1 COPYRIGHT
80*b077aed3SPierre Pronchery
81*b077aed3SPierre ProncheryCopyright 2019-2020 The OpenSSL Project Authors. All Rights Reserved.
82*b077aed3SPierre Pronchery
83*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License").  You may not use
84*b077aed3SPierre Proncherythis file except in compliance with the License.  You can obtain a copy
85*b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at
86*b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>.
87*b077aed3SPierre Pronchery
88*b077aed3SPierre Pronchery=cut
89