More configurable crypto and ssl library initialization
[openssl.git] / doc / man3 / X509_dup.pod
1 =pod
2
3 =head1 NAME
4
5 DECLARE_ASN1_FUNCTIONS,
6 IMPLEMENT_ASN1_FUNCTIONS,
7 ASN1_ITEM,
8 ACCESS_DESCRIPTION_free,
9 ACCESS_DESCRIPTION_new,
10 ADMISSIONS_free,
11 ADMISSIONS_new,
12 ADMISSION_SYNTAX_free,
13 ADMISSION_SYNTAX_new,
14 ASIdOrRange_free,
15 ASIdOrRange_new,
16 ASIdentifierChoice_free,
17 ASIdentifierChoice_new,
18 ASIdentifiers_free,
19 ASIdentifiers_new,
20 ASRange_free,
21 ASRange_new,
22 AUTHORITY_INFO_ACCESS_free,
23 AUTHORITY_INFO_ACCESS_new,
24 AUTHORITY_KEYID_free,
25 AUTHORITY_KEYID_new,
26 BASIC_CONSTRAINTS_free,
27 BASIC_CONSTRAINTS_new,
28 CERTIFICATEPOLICIES_free,
29 CERTIFICATEPOLICIES_new,
30 CMS_ContentInfo_free,
31 CMS_ContentInfo_new,
32 CMS_ContentInfo_print_ctx,
33 CMS_ReceiptRequest_free,
34 CMS_ReceiptRequest_new,
35 CRL_DIST_POINTS_free,
36 CRL_DIST_POINTS_new,
37 DIRECTORYSTRING_free,
38 DIRECTORYSTRING_new,
39 DISPLAYTEXT_free,
40 DISPLAYTEXT_new,
41 DIST_POINT_NAME_free,
42 DIST_POINT_NAME_new,
43 DIST_POINT_free,
44 DIST_POINT_new,
45 DSAparams_dup,
46 ECPARAMETERS_free,
47 ECPARAMETERS_new,
48 ECPKPARAMETERS_free,
49 ECPKPARAMETERS_new,
50 EDIPARTYNAME_free,
51 EDIPARTYNAME_new,
52 ESS_CERT_ID_dup,
53 ESS_CERT_ID_free,
54 ESS_CERT_ID_new,
55 ESS_ISSUER_SERIAL_dup,
56 ESS_ISSUER_SERIAL_free,
57 ESS_ISSUER_SERIAL_new,
58 ESS_SIGNING_CERT_dup,
59 ESS_SIGNING_CERT_free,
60 ESS_SIGNING_CERT_new,
61 EXTENDED_KEY_USAGE_free,
62 EXTENDED_KEY_USAGE_new,
63 GENERAL_NAMES_free,
64 GENERAL_NAMES_new,
65 GENERAL_NAME_dup,
66 GENERAL_NAME_free,
67 GENERAL_NAME_new,
68 GENERAL_SUBTREE_free,
69 GENERAL_SUBTREE_new,
70 IPAddressChoice_free,
71 IPAddressChoice_new,
72 IPAddressFamily_free,
73 IPAddressFamily_new,
74 IPAddressOrRange_free,
75 IPAddressOrRange_new,
76 IPAddressRange_free,
77 IPAddressRange_new,
78 ISSUING_DIST_POINT_free,
79 ISSUING_DIST_POINT_new,
80 NAME_CONSTRAINTS_free,
81 NAME_CONSTRAINTS_new,
82 NAMING_AUTHORITY_free,
83 NAMING_AUTHORITY_new,
84 NETSCAPE_CERT_SEQUENCE_free,
85 NETSCAPE_CERT_SEQUENCE_new,
86 NETSCAPE_SPKAC_free,
87 NETSCAPE_SPKAC_new,
88 NETSCAPE_SPKI_free,
89 NETSCAPE_SPKI_new,
90 NOTICEREF_free,
91 NOTICEREF_new,
92 OCSP_BASICRESP_free,
93 OCSP_BASICRESP_new,
94 OCSP_CERTID_dup,
95 OCSP_CERTID_new,
96 OCSP_CERTSTATUS_free,
97 OCSP_CERTSTATUS_new,
98 OCSP_CRLID_free,
99 OCSP_CRLID_new,
100 OCSP_ONEREQ_free,
101 OCSP_ONEREQ_new,
102 OCSP_REQINFO_free,
103 OCSP_REQINFO_new,
104 OCSP_RESPBYTES_free,
105 OCSP_RESPBYTES_new,
106 OCSP_RESPDATA_free,
107 OCSP_RESPDATA_new,
108 OCSP_RESPID_free,
109 OCSP_RESPID_new,
110 OCSP_RESPONSE_new,
111 OCSP_REVOKEDINFO_free,
112 OCSP_REVOKEDINFO_new,
113 OCSP_SERVICELOC_free,
114 OCSP_SERVICELOC_new,
115 OCSP_SIGNATURE_free,
116 OCSP_SIGNATURE_new,
117 OCSP_SINGLERESP_free,
118 OCSP_SINGLERESP_new,
119 OTHERNAME_free,
120 OTHERNAME_new,
121 PBE2PARAM_free,
122 PBE2PARAM_new,
123 PBEPARAM_free,
124 PBEPARAM_new,
125 PBKDF2PARAM_free,
126 PBKDF2PARAM_new,
127 PKCS12_BAGS_free,
128 PKCS12_BAGS_new,
129 PKCS12_MAC_DATA_free,
130 PKCS12_MAC_DATA_new,
131 PKCS12_SAFEBAG_free,
132 PKCS12_SAFEBAG_new,
133 PKCS12_free,
134 PKCS12_new,
135 PKCS7_DIGEST_free,
136 PKCS7_DIGEST_new,
137 PKCS7_ENCRYPT_free,
138 PKCS7_ENCRYPT_new,
139 PKCS7_ENC_CONTENT_free,
140 PKCS7_ENC_CONTENT_new,
141 PKCS7_ENVELOPE_free,
142 PKCS7_ENVELOPE_new,
143 PKCS7_ISSUER_AND_SERIAL_free,
144 PKCS7_ISSUER_AND_SERIAL_new,
145 PKCS7_RECIP_INFO_free,
146 PKCS7_RECIP_INFO_new,
147 PKCS7_SIGNED_free,
148 PKCS7_SIGNED_new,
149 PKCS7_SIGNER_INFO_free,
150 PKCS7_SIGNER_INFO_new,
151 PKCS7_SIGN_ENVELOPE_free,
152 PKCS7_SIGN_ENVELOPE_new,
153 PKCS7_dup,
154 PKCS7_free,
155 PKCS7_new,
156 PKCS7_print_ctx,
157 PKCS8_PRIV_KEY_INFO_free,
158 PKCS8_PRIV_KEY_INFO_new,
159 PKEY_USAGE_PERIOD_free,
160 PKEY_USAGE_PERIOD_new,
161 POLICYINFO_free,
162 POLICYINFO_new,
163 POLICYQUALINFO_free,
164 POLICYQUALINFO_new,
165 POLICY_CONSTRAINTS_free,
166 POLICY_CONSTRAINTS_new,
167 POLICY_MAPPING_free,
168 POLICY_MAPPING_new,
169 PROFESSION_INFO_free,
170 PROFESSION_INFO_new,
171 PROFESSION_INFOS_free,
172 PROFESSION_INFOS_new,
173 PROXY_CERT_INFO_EXTENSION_free,
174 PROXY_CERT_INFO_EXTENSION_new,
175 PROXY_POLICY_free,
176 PROXY_POLICY_new,
177 RSAPrivateKey_dup,
178 RSAPublicKey_dup,
179 RSA_OAEP_PARAMS_free,
180 RSA_OAEP_PARAMS_new,
181 RSA_PSS_PARAMS_free,
182 RSA_PSS_PARAMS_new,
183 SCRYPT_PARAMS_free,
184 SCRYPT_PARAMS_new,
185 SXNETID_free,
186 SXNETID_new,
187 SXNET_free,
188 SXNET_new,
189 TLS_FEATURE_free,
190 TLS_FEATURE_new,
191 TS_ACCURACY_dup,
192 TS_ACCURACY_free,
193 TS_ACCURACY_new,
194 TS_MSG_IMPRINT_dup,
195 TS_MSG_IMPRINT_free,
196 TS_MSG_IMPRINT_new,
197 TS_REQ_dup,
198 TS_REQ_free,
199 TS_REQ_new,
200 TS_RESP_dup,
201 TS_RESP_free,
202 TS_RESP_new,
203 TS_STATUS_INFO_dup,
204 TS_STATUS_INFO_free,
205 TS_STATUS_INFO_new,
206 TS_TST_INFO_dup,
207 TS_TST_INFO_free,
208 TS_TST_INFO_new,
209 USERNOTICE_free,
210 USERNOTICE_new,
211 X509_ALGOR_free,
212 X509_ALGOR_new,
213 X509_ATTRIBUTE_dup,
214 X509_ATTRIBUTE_free,
215 X509_ATTRIBUTE_new,
216 X509_CERT_AUX_free,
217 X509_CERT_AUX_new,
218 X509_CINF_free,
219 X509_CINF_new,
220 X509_CRL_INFO_free,
221 X509_CRL_INFO_new,
222 X509_CRL_dup,
223 X509_CRL_free,
224 X509_CRL_new,
225 X509_EXTENSION_dup,
226 X509_EXTENSION_free,
227 X509_EXTENSION_new,
228 X509_NAME_ENTRY_dup,
229 X509_NAME_ENTRY_free,
230 X509_NAME_ENTRY_new,
231 X509_NAME_dup,
232 X509_NAME_free,
233 X509_NAME_new,
234 X509_REQ_INFO_free,
235 X509_REQ_INFO_new,
236 X509_REQ_dup,
237 X509_REQ_free,
238 X509_REQ_new,
239 X509_REVOKED_dup,
240 X509_REVOKED_free,
241 X509_REVOKED_new,
242 X509_SIG_free,
243 X509_SIG_new,
244 X509_VAL_free,
245 X509_VAL_new,
246 X509_dup,
247 - ASN1 object utilities
248
249 =head1 SYNOPSIS
250
251 =for comment generic
252
253  #include <openssl/asn1t.h>
254
255  DECLARE_ASN1_FUNCTIONS(type)
256  IMPLEMENT_ASN1_FUNCTIONS(stname)
257
258  typedef struct ASN1_ITEM_st ASN1_ITEM;
259
260  extern const ASN1_ITEM TYPE_it;
261  TYPE *TYPE_new(void);
262  TYPE *TYPE_dup(TYPE *a);
263  void TYPE_free(TYPE *a);
264  int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
265
266 =head1 DESCRIPTION
267
268 In the description below, I<TYPE> is used
269 as a placeholder for any of the OpenSSL datatypes, such as I<X509>.
270
271 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
272 interpreter.
273 Every ASN1 object as a global variable, TYPE_it, that describes the item
274 such as its fields.  (On systems which cannot export variables from shared
275 libraries, the global is instead a function which returns a pointer to a
276 static variable.
277
278 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
279 to generate the function declarations.
280
281 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
282 to generate the function bodies.
283
284
285 TYPE_new() allocates an empty object of the indicated type.
286 The object returned must be released by calling TYPE_free().
287
288 TYPE_dup() copies an existing object.
289
290 TYPE_free() releases the object and all pointers and sub-objects
291 within it.
292
293 TYPE_print_ctx() prints the object B<a> on the specified BIO B<out>.
294 Each line will be prefixed with B<indent> spaces.
295 The B<pctx> specifies the printing context and is for internal
296 use; use NULL to get the default behavior.  If a print function is
297 user-defined, then pass in any B<pctx> down to any nested calls.
298
299 =head1 RETURN VALUES
300
301 TYPE_new() and TYPE_dup() return a pointer to the object or NULL on failure.
302
303 TYPE_print_ctx() returns 1 on success or zero on failure.
304
305 =head1 COPYRIGHT
306
307 Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
308
309 Licensed under the Apache License 2.0 (the "License").  You may not use
310 this file except in compliance with the License.  You can obtain a copy
311 in the file LICENSE in the source distribution or at
312 L<https://www.openssl.org/source/license.html>.
313
314 =cut