Invoke tear_down when exiting test_encode_tls_sct() prematurely
[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_new_ex,
33 CMS_ContentInfo_print_ctx,
34 CMS_EnvelopedData_it,
35 CMS_ReceiptRequest_free,
36 CMS_ReceiptRequest_new,
37 CMS_SignedData_free,
38 CMS_SignedData_new,
39 CRL_DIST_POINTS_free,
40 CRL_DIST_POINTS_new,
41 DIRECTORYSTRING_free,
42 DIRECTORYSTRING_new,
43 DISPLAYTEXT_free,
44 DISPLAYTEXT_new,
45 DIST_POINT_NAME_free,
46 DIST_POINT_NAME_new,
47 DIST_POINT_free,
48 DIST_POINT_new,
49 DSAparams_dup,
50 ECPARAMETERS_free,
51 ECPARAMETERS_new,
52 ECPKPARAMETERS_free,
53 ECPKPARAMETERS_new,
54 EDIPARTYNAME_free,
55 EDIPARTYNAME_new,
56 ESS_CERT_ID_dup,
57 ESS_CERT_ID_free,
58 ESS_CERT_ID_new,
59 ESS_CERT_ID_V2_dup,
60 ESS_CERT_ID_V2_free,
61 ESS_CERT_ID_V2_new,
62 ESS_ISSUER_SERIAL_dup,
63 ESS_ISSUER_SERIAL_free,
64 ESS_ISSUER_SERIAL_new,
65 ESS_SIGNING_CERT_dup,
66 ESS_SIGNING_CERT_free,
67 ESS_SIGNING_CERT_it,
68 ESS_SIGNING_CERT_new,
69 ESS_SIGNING_CERT_V2_dup,
70 ESS_SIGNING_CERT_V2_free,
71 ESS_SIGNING_CERT_V2_it,
72 ESS_SIGNING_CERT_V2_new,
73 EXTENDED_KEY_USAGE_free,
74 EXTENDED_KEY_USAGE_new,
75 GENERAL_NAMES_free,
76 GENERAL_NAMES_new,
77 GENERAL_NAME_dup,
78 GENERAL_NAME_free,
79 GENERAL_NAME_new,
80 GENERAL_SUBTREE_free,
81 GENERAL_SUBTREE_new,
82 IPAddressChoice_free,
83 IPAddressChoice_new,
84 IPAddressFamily_free,
85 IPAddressFamily_new,
86 IPAddressOrRange_free,
87 IPAddressOrRange_new,
88 IPAddressRange_free,
89 IPAddressRange_new,
90 ISSUER_SIGN_TOOL_free,
91 ISSUER_SIGN_TOOL_it,
92 ISSUER_SIGN_TOOL_new,
93 ISSUING_DIST_POINT_free,
94 ISSUING_DIST_POINT_it,
95 ISSUING_DIST_POINT_new,
96 NAME_CONSTRAINTS_free,
97 NAME_CONSTRAINTS_new,
98 NAMING_AUTHORITY_free,
99 NAMING_AUTHORITY_new,
100 NETSCAPE_CERT_SEQUENCE_free,
101 NETSCAPE_CERT_SEQUENCE_new,
102 NETSCAPE_SPKAC_free,
103 NETSCAPE_SPKAC_new,
104 NETSCAPE_SPKI_free,
105 NETSCAPE_SPKI_new,
106 NOTICEREF_free,
107 NOTICEREF_new,
108 OCSP_BASICRESP_free,
109 OCSP_BASICRESP_new,
110 OCSP_CERTID_dup,
111 OCSP_CERTID_new,
112 OCSP_CERTSTATUS_free,
113 OCSP_CERTSTATUS_new,
114 OCSP_CRLID_free,
115 OCSP_CRLID_new,
116 OCSP_ONEREQ_free,
117 OCSP_ONEREQ_new,
118 OCSP_REQINFO_free,
119 OCSP_REQINFO_new,
120 OCSP_RESPBYTES_free,
121 OCSP_RESPBYTES_new,
122 OCSP_RESPDATA_free,
123 OCSP_RESPDATA_new,
124 OCSP_RESPID_free,
125 OCSP_RESPID_new,
126 OCSP_RESPONSE_new,
127 OCSP_REVOKEDINFO_free,
128 OCSP_REVOKEDINFO_new,
129 OCSP_SERVICELOC_free,
130 OCSP_SERVICELOC_new,
131 OCSP_SIGNATURE_free,
132 OCSP_SIGNATURE_new,
133 OCSP_SINGLERESP_free,
134 OCSP_SINGLERESP_new,
135 OSSL_CMP_ITAV_dup,
136 OSSL_CMP_ITAV_free,
137 OSSL_CMP_MSG_dup,
138 OSSL_CMP_MSG_it,
139 OSSL_CMP_MSG_free,
140 OSSL_CMP_PKIHEADER_free,
141 OSSL_CMP_PKIHEADER_it,
142 OSSL_CMP_PKIHEADER_new,
143 OSSL_CMP_PKISI_dup,
144 OSSL_CMP_PKISI_free,
145 OSSL_CMP_PKISI_it,
146 OSSL_CMP_PKISI_new,
147 OSSL_CMP_PKISTATUS_it,
148 OSSL_CRMF_CERTID_dup,
149 OSSL_CRMF_CERTID_free,
150 OSSL_CRMF_CERTID_it,
151 OSSL_CRMF_CERTID_new,
152 OSSL_CRMF_CERTTEMPLATE_free,
153 OSSL_CRMF_CERTTEMPLATE_it,
154 OSSL_CRMF_CERTTEMPLATE_new,
155 OSSL_CRMF_ENCRYPTEDVALUE_free,
156 OSSL_CRMF_ENCRYPTEDVALUE_it,
157 OSSL_CRMF_ENCRYPTEDVALUE_new,
158 OSSL_CRMF_MSGS_free,
159 OSSL_CRMF_MSGS_it,
160 OSSL_CRMF_MSGS_new,
161 OSSL_CRMF_MSG_dup,
162 OSSL_CRMF_MSG_free,
163 OSSL_CRMF_MSG_it,
164 OSSL_CRMF_MSG_new,
165 OSSL_CRMF_PBMPARAMETER_free,
166 OSSL_CRMF_PBMPARAMETER_it,
167 OSSL_CRMF_PBMPARAMETER_new,
168 OSSL_CRMF_PKIPUBLICATIONINFO_free,
169 OSSL_CRMF_PKIPUBLICATIONINFO_it,
170 OSSL_CRMF_PKIPUBLICATIONINFO_new,
171 OSSL_CRMF_SINGLEPUBINFO_free,
172 OSSL_CRMF_SINGLEPUBINFO_it,
173 OSSL_CRMF_SINGLEPUBINFO_new,
174 OTHERNAME_free,
175 OTHERNAME_new,
176 PBE2PARAM_free,
177 PBE2PARAM_new,
178 PBEPARAM_free,
179 PBEPARAM_new,
180 PBKDF2PARAM_free,
181 PBKDF2PARAM_new,
182 PKCS12_BAGS_free,
183 PKCS12_BAGS_new,
184 PKCS12_MAC_DATA_free,
185 PKCS12_MAC_DATA_new,
186 PKCS12_SAFEBAG_free,
187 PKCS12_SAFEBAG_new,
188 PKCS12_free,
189 PKCS12_new,
190 PKCS7_DIGEST_free,
191 PKCS7_DIGEST_new,
192 PKCS7_ENCRYPT_free,
193 PKCS7_ENCRYPT_new,
194 PKCS7_ENC_CONTENT_free,
195 PKCS7_ENC_CONTENT_new,
196 PKCS7_ENVELOPE_free,
197 PKCS7_ENVELOPE_new,
198 PKCS7_ISSUER_AND_SERIAL_free,
199 PKCS7_ISSUER_AND_SERIAL_new,
200 PKCS7_RECIP_INFO_free,
201 PKCS7_RECIP_INFO_new,
202 PKCS7_SIGNED_free,
203 PKCS7_SIGNED_new,
204 PKCS7_SIGNER_INFO_free,
205 PKCS7_SIGNER_INFO_new,
206 PKCS7_SIGN_ENVELOPE_free,
207 PKCS7_SIGN_ENVELOPE_new,
208 PKCS7_dup,
209 PKCS7_free,
210 PKCS7_new_ex,
211 PKCS7_new,
212 PKCS7_print_ctx,
213 PKCS8_PRIV_KEY_INFO_free,
214 PKCS8_PRIV_KEY_INFO_new,
215 PKEY_USAGE_PERIOD_free,
216 PKEY_USAGE_PERIOD_new,
217 POLICYINFO_free,
218 POLICYINFO_new,
219 POLICYQUALINFO_free,
220 POLICYQUALINFO_new,
221 POLICY_CONSTRAINTS_free,
222 POLICY_CONSTRAINTS_new,
223 POLICY_MAPPING_free,
224 POLICY_MAPPING_new,
225 PROFESSION_INFOS_free,
226 PROFESSION_INFOS_new,
227 PROFESSION_INFO_free,
228 PROFESSION_INFO_new,
229 PROXY_CERT_INFO_EXTENSION_free,
230 PROXY_CERT_INFO_EXTENSION_new,
231 PROXY_POLICY_free,
232 PROXY_POLICY_new,
233 RSAPrivateKey_dup,
234 RSAPublicKey_dup,
235 RSA_OAEP_PARAMS_free,
236 RSA_OAEP_PARAMS_new,
237 RSA_PSS_PARAMS_free,
238 RSA_PSS_PARAMS_new,
239 RSA_PSS_PARAMS_dup,
240 SCRYPT_PARAMS_free,
241 SCRYPT_PARAMS_new,
242 SXNETID_free,
243 SXNETID_new,
244 SXNET_free,
245 SXNET_new,
246 TLS_FEATURE_free,
247 TLS_FEATURE_new,
248 TS_ACCURACY_dup,
249 TS_ACCURACY_free,
250 TS_ACCURACY_new,
251 TS_MSG_IMPRINT_dup,
252 TS_MSG_IMPRINT_free,
253 TS_MSG_IMPRINT_new,
254 TS_REQ_dup,
255 TS_REQ_free,
256 TS_REQ_new,
257 TS_RESP_dup,
258 TS_RESP_free,
259 TS_RESP_new,
260 TS_STATUS_INFO_dup,
261 TS_STATUS_INFO_free,
262 TS_STATUS_INFO_new,
263 TS_TST_INFO_dup,
264 TS_TST_INFO_free,
265 TS_TST_INFO_new,
266 USERNOTICE_free,
267 USERNOTICE_new,
268 X509_ALGOR_free,
269 X509_ALGOR_it,
270 X509_ALGOR_new,
271 X509_ATTRIBUTE_dup,
272 X509_ATTRIBUTE_free,
273 X509_ATTRIBUTE_new,
274 X509_CERT_AUX_free,
275 X509_CERT_AUX_new,
276 X509_CINF_free,
277 X509_CINF_new,
278 X509_CRL_INFO_free,
279 X509_CRL_INFO_new,
280 X509_CRL_dup,
281 X509_CRL_free,
282 X509_CRL_new_ex,
283 X509_CRL_new,
284 X509_EXTENSION_dup,
285 X509_EXTENSION_free,
286 X509_EXTENSION_new,
287 X509_NAME_ENTRY_dup,
288 X509_NAME_ENTRY_free,
289 X509_NAME_ENTRY_new,
290 X509_NAME_dup,
291 X509_NAME_free,
292 X509_NAME_new,
293 X509_REQ_INFO_free,
294 X509_REQ_INFO_new,
295 X509_REQ_dup,
296 X509_REQ_free,
297 X509_REQ_new,
298 X509_REQ_new_ex,
299 X509_REVOKED_dup,
300 X509_REVOKED_free,
301 X509_REVOKED_new,
302 X509_SIG_free,
303 X509_SIG_new,
304 X509_VAL_free,
305 X509_VAL_new,
306 X509_dup,
307 - ASN1 object utilities
308
309 =head1 SYNOPSIS
310
311 =for openssl generic
312
313  #include <openssl/asn1t.h>
314
315  DECLARE_ASN1_FUNCTIONS(type)
316  IMPLEMENT_ASN1_FUNCTIONS(stname)
317
318  typedef struct ASN1_ITEM_st ASN1_ITEM;
319
320  extern const ASN1_ITEM TYPE_it;
321  TYPE *TYPE_new(void);
322  TYPE *TYPE_dup(const TYPE *a);
323  void TYPE_free(TYPE *a);
324  int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
325
326 The following functions have been deprecated since OpenSSL 3.0, and can be
327 hidden entirely by defining B<OPENSSL_API_COMPAT> with a suitable version value,
328 see L<openssl_user_macros(7)>:
329
330  DSA *DSAparams_dup(const DSA *dsa);
331  RSA *RSAPrivateKey_dup(const RSA *rsa);
332  RSA *RSAPublicKey_dup(const RSA *rsa);
333
334 =head1 DESCRIPTION
335
336 In the description below, B<I<TYPE>> is used
337 as a placeholder for any of the OpenSSL datatypes, such as B<X509>.
338
339 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
340 interpreter.
341 Every ASN1 object as a global variable, TYPE_it, that describes the item
342 such as its fields.  (On systems which cannot export variables from shared
343 libraries, the global is instead a function which returns a pointer to a
344 static variable.
345
346 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
347 to generate the function declarations.
348
349 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
350 to generate the function bodies.
351
352
353 B<I<TYPE>_new>() allocates an empty object of the indicated type.
354 The object returned must be released by calling B<I<TYPE>_free>().
355
356 B<I<TYPE>_new_ex>() is similar to B<I<TYPE>_new>() but also passes the
357 library context I<libctx> and the property query I<propq> to use when retrieving
358 algorithms from providers. This created object can then be used when loading
359 binary data using B<d2i_I<TYPE>>().
360
361 B<I<TYPE>_dup>() copies an existing object, leaving it untouched.
362
363 B<I<TYPE>_free>() releases the object and all pointers and sub-objects
364 within it.
365
366 B<I<TYPE>_print_ctx>() prints the object I<a> on the specified BIO I<out>.
367 Each line will be prefixed with I<indent> spaces.
368 The I<pctx> specifies the printing context and is for internal
369 use; use NULL to get the default behavior.  If a print function is
370 user-defined, then pass in any I<pctx> down to any nested calls.
371
372 =head1 RETURN VALUES
373
374 B<I<TYPE>_new>(), B<I<TYPE>_new_ex>() and B<I<TYPE>_dup>() return a pointer to
375 the object or NULL on failure.
376
377 B<I<TYPE>_print_ctx>() returns 1 on success or zero on failure.
378
379 =head1 HISTORY
380
381 The functions X509_REQ_new_ex(), X509_CRL_new_ex(), PKCS7_new_ex() and
382 CMS_ContentInfo_new_ex() were added in OpenSSL 3.0.
383
384 The functions DSAparams_dup(), RSAPrivateKey_dup() and RSAPublicKey_dup() were
385 deprecated in 3.0.
386
387 =head1 COPYRIGHT
388
389 Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved.
390
391 Licensed under the Apache License 2.0 (the "License").  You may not use
392 this file except in compliance with the License.  You can obtain a copy
393 in the file LICENSE in the source distribution or at
394 L<https://www.openssl.org/source/license.html>.
395
396 =cut