Reorganize the internal evp_keymgmt functions
[openssl.git] / doc / internal / man3 / evp_keymgmt_freekey.pod
1 =pod
2
3 =head1 NAME
4
5 evp_keymgmt_importdomparams, evp_keymgmt_gendomparams,
6 evp_keymgmt_freedomparams,
7 evp_keymgmt_exportdomparams,
8 evp_keymgmt_importdomparams_types, evp_keymgmt_exportdomparams_types,
9 evp_keymgmt_importkey, evp_keymgmt_genkey, evp_keymgmt_loadkey,
10 evp_keymgmt_freekey,
11 evp_keymgmt_exportkey,
12 evp_keymgmt_importkey_types, evp_keymgmt_exportkey_types
13 - internal KEYMGMT support functions
14
15 =head1 SYNOPSIS
16
17  #include "crypto/evp.h"
18
19  void *evp_keymgmt_importdomparams(const EVP_KEYMGMT *keymgmt,
20                                 const OSSL_PARAM params[]);
21  void *evp_keymgmt_gendomparams(const EVP_KEYMGMT *keymgmt,
22                              const OSSL_PARAM params[]);
23  void evp_keymgmt_freedomparams(const EVP_KEYMGMT *keymgmt, void *provdomparams);
24  int evp_keymgmt_exportdomparams(const EVP_KEYMGMT *keymgmt,
25                               void *provdomparams, OSSL_PARAM params[]);
26  const OSSL_PARAM *evp_keymgmt_importdomparams_types(const EVP_KEYMGMT *keymgmt);
27  const OSSL_PARAM *evp_keymgmt_exportdomparams_types(const EVP_KEYMGMT *keymgmt);
28
29  void *evp_keymgmt_importkey(const EVP_KEYMGMT *keymgmt,
30                              const OSSL_PARAM params[]);
31  void *evp_keymgmt_genkey(const EVP_KEYMGMT *keymgmt, void *domparams,
32                           const OSSL_PARAM params[]);
33  void *evp_keymgmt_loadkey(const EVP_KEYMGMT *keymgmt,
34                            void *id, size_t idlen);
35  void evp_keymgmt_freekey(const EVP_KEYMGMT *keymgmt, void *provkey);
36  int evp_keymgmt_exportkey(const EVP_KEYMGMT *keymgmt, void *provkey,
37                            OSSL_PARAM params[]);
38  const OSSL_PARAM *evp_keymgmt_importkey_types(const EVP_KEYMGMT *keymgmt);
39  const OSSL_PARAM *evp_keymgmt_exportkey_types(const EVP_KEYMGMT *keymgmt);
40
41 =head1 DESCRIPTION
42
43 All these functions are helpers to call the provider's corresponding
44 function.
45
46 evp_keymgmt_importdomparams() calls the method's importdomparams() function.
47
48 evp_keymgmt_gendomparams() calls the method's gendomparams() function.
49
50 evp_keymgmt_freedomparams() calls the method's freedomparams() function.
51
52 evp_keymgmt_exportdomparams() calls the method's exportdomparams()
53 function.
54
55 evp_keymgmt_importdomparams_types() calls the method's
56 importdomparams_types() function.
57
58 evp_keymgmt_exportdomparams_types() calls the method's
59 exportdomparams_types() function.
60
61 evp_keymgmt_importkey() calls the method's importkey()
62 function.
63
64 evp_keymgmt_genkey() calls the method's genkey() function.
65
66 evp_keymgmt_loadkey() calls the method's loadkey() function.
67
68 evp_keymgmt_freekey() calls the method's freekey() function.
69
70 evp_keymgmt_exportkey() calls the method's exportkey()
71 function.
72
73 evp_keymgmt_importkey_types() calls the method's importkey_types() function.
74
75 evp_keymgmt_exportkey_types() calls the method's exportkey_types() function.
76
77 =head1 RETURN VALUES
78
79 evp_keymgmt_importdomparams(), evp_keymgmt_gendomparams() return a pointer
80 to a provider owned set of domparams parameters, or NULL on error.
81
82 evp_keymgmt_importkey(), evp_keymgmt_genkey(), evp_keymgmt_loadkey() return
83 a pointer to a provider owned key, or NULL on error.
84
85 evp_keymgmt_exportdomparams() and evp_keymgmt_exportkey() return 1 on success,
86 or 0 on error.
87
88 evp_keymgmt_importdomparams_types(), evp_keymgmt_exportdomparams_types()
89 return parameter descriptor for importing and exporting domparams
90 parameters, or NULL if there are no such descriptors.
91
92 evp_keymgmt_importkey_types() and evp_keymgmt_exportkey_types()
93 return parameter descriptor for importing and exporting keys, or NULL
94 if there are no such descriptors.
95
96 =head1 HISTORY
97
98 The functions described here were all added in OpenSSL 3.0.
99
100 =head1 COPYRIGHT
101
102 Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
103
104 Licensed under the Apache License 2.0 (the "License").  You may not use
105 this file except in compliance with the License.  You can obtain a copy
106 in the file LICENSE in the source distribution or at
107 L<https://www.openssl.org/source/license.html>.
108
109 =cut