Certificate Management Protocol (CMP, RFC 4210) extension to OpenSSL
[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 OSSL_CRMF_CERTID_free,
120 OSSL_CRMF_CERTID_new,
121 OSSL_CRMF_CERTTEMPLATE_free,
122 OSSL_CRMF_CERTTEMPLATE_new,
123 OSSL_CRMF_ENCRYPTEDVALUE_free,
124 OSSL_CRMF_ENCRYPTEDVALUE_new,
125 OSSL_CRMF_MSG_free,
126 OSSL_CRMF_MSG_new,
127 OSSL_CRMF_PBMPARAMETER_free,
128 OSSL_CRMF_PBMPARAMETER_new,
129 OSSL_CRMF_PKIPUBLICATIONINFO_free,
130 OSSL_CRMF_PKIPUBLICATIONINFO_new,
131 OSSL_CRMF_MSGS_free,
132 OSSL_CRMF_MSGS_new,
133 OTHERNAME_free,
134 OTHERNAME_new,
135 PBE2PARAM_free,
136 PBE2PARAM_new,
137 PBEPARAM_free,
138 PBEPARAM_new,
139 PBKDF2PARAM_free,
140 PBKDF2PARAM_new,
141 PKCS12_BAGS_free,
142 PKCS12_BAGS_new,
143 PKCS12_MAC_DATA_free,
144 PKCS12_MAC_DATA_new,
145 PKCS12_SAFEBAG_free,
146 PKCS12_SAFEBAG_new,
147 PKCS12_free,
148 PKCS12_new,
149 PKCS7_DIGEST_free,
150 PKCS7_DIGEST_new,
151 PKCS7_ENCRYPT_free,
152 PKCS7_ENCRYPT_new,
153 PKCS7_ENC_CONTENT_free,
154 PKCS7_ENC_CONTENT_new,
155 PKCS7_ENVELOPE_free,
156 PKCS7_ENVELOPE_new,
157 PKCS7_ISSUER_AND_SERIAL_free,
158 PKCS7_ISSUER_AND_SERIAL_new,
159 PKCS7_RECIP_INFO_free,
160 PKCS7_RECIP_INFO_new,
161 PKCS7_SIGNED_free,
162 PKCS7_SIGNED_new,
163 PKCS7_SIGNER_INFO_free,
164 PKCS7_SIGNER_INFO_new,
165 PKCS7_SIGN_ENVELOPE_free,
166 PKCS7_SIGN_ENVELOPE_new,
167 PKCS7_dup,
168 PKCS7_free,
169 PKCS7_new,
170 PKCS7_print_ctx,
171 PKCS8_PRIV_KEY_INFO_free,
172 PKCS8_PRIV_KEY_INFO_new,
173 PKEY_USAGE_PERIOD_free,
174 PKEY_USAGE_PERIOD_new,
175 POLICYINFO_free,
176 POLICYINFO_new,
177 POLICYQUALINFO_free,
178 POLICYQUALINFO_new,
179 POLICY_CONSTRAINTS_free,
180 POLICY_CONSTRAINTS_new,
181 POLICY_MAPPING_free,
182 POLICY_MAPPING_new,
183 PROFESSION_INFO_free,
184 PROFESSION_INFO_new,
185 PROFESSION_INFOS_free,
186 PROFESSION_INFOS_new,
187 PROXY_CERT_INFO_EXTENSION_free,
188 PROXY_CERT_INFO_EXTENSION_new,
189 PROXY_POLICY_free,
190 PROXY_POLICY_new,
191 RSAPrivateKey_dup,
192 RSAPublicKey_dup,
193 RSA_OAEP_PARAMS_free,
194 RSA_OAEP_PARAMS_new,
195 RSA_PSS_PARAMS_free,
196 RSA_PSS_PARAMS_new,
197 SCRYPT_PARAMS_free,
198 SCRYPT_PARAMS_new,
199 SXNETID_free,
200 SXNETID_new,
201 SXNET_free,
202 SXNET_new,
203 TLS_FEATURE_free,
204 TLS_FEATURE_new,
205 TS_ACCURACY_dup,
206 TS_ACCURACY_free,
207 TS_ACCURACY_new,
208 TS_MSG_IMPRINT_dup,
209 TS_MSG_IMPRINT_free,
210 TS_MSG_IMPRINT_new,
211 TS_REQ_dup,
212 TS_REQ_free,
213 TS_REQ_new,
214 TS_RESP_dup,
215 TS_RESP_free,
216 TS_RESP_new,
217 TS_STATUS_INFO_dup,
218 TS_STATUS_INFO_free,
219 TS_STATUS_INFO_new,
220 TS_TST_INFO_dup,
221 TS_TST_INFO_free,
222 TS_TST_INFO_new,
223 USERNOTICE_free,
224 USERNOTICE_new,
225 X509_ALGOR_free,
226 X509_ALGOR_new,
227 X509_ATTRIBUTE_dup,
228 X509_ATTRIBUTE_free,
229 X509_ATTRIBUTE_new,
230 X509_CERT_AUX_free,
231 X509_CERT_AUX_new,
232 X509_CINF_free,
233 X509_CINF_new,
234 X509_CRL_INFO_free,
235 X509_CRL_INFO_new,
236 X509_CRL_dup,
237 X509_CRL_free,
238 X509_CRL_new,
239 X509_EXTENSION_dup,
240 X509_EXTENSION_free,
241 X509_EXTENSION_new,
242 X509_NAME_ENTRY_dup,
243 X509_NAME_ENTRY_free,
244 X509_NAME_ENTRY_new,
245 X509_NAME_dup,
246 X509_NAME_free,
247 X509_NAME_new,
248 X509_REQ_INFO_free,
249 X509_REQ_INFO_new,
250 X509_REQ_dup,
251 X509_REQ_free,
252 X509_REQ_new,
253 X509_REVOKED_dup,
254 X509_REVOKED_free,
255 X509_REVOKED_new,
256 X509_SIG_free,
257 X509_SIG_new,
258 X509_VAL_free,
259 X509_VAL_new,
260 X509_dup,
261 - ASN1 object utilities
262
263 =head1 SYNOPSIS
264
265 =for comment generic
266
267  #include <openssl/asn1t.h>
268
269  DECLARE_ASN1_FUNCTIONS(type)
270  IMPLEMENT_ASN1_FUNCTIONS(stname)
271
272  typedef struct ASN1_ITEM_st ASN1_ITEM;
273
274  extern const ASN1_ITEM TYPE_it;
275  TYPE *TYPE_new(void);
276  TYPE *TYPE_dup(const TYPE *a);
277  void TYPE_free(TYPE *a);
278  int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
279
280 =head1 DESCRIPTION
281
282 In the description below, I<TYPE> is used
283 as a placeholder for any of the OpenSSL datatypes, such as I<X509>.
284
285 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
286 interpreter.
287 Every ASN1 object as a global variable, TYPE_it, that describes the item
288 such as its fields.  (On systems which cannot export variables from shared
289 libraries, the global is instead a function which returns a pointer to a
290 static variable.
291
292 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
293 to generate the function declarations.
294
295 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
296 to generate the function bodies.
297
298
299 TYPE_new() allocates an empty object of the indicated type.
300 The object returned must be released by calling TYPE_free().
301
302 TYPE_dup() copies an existing object, leaving it untouched.
303
304 TYPE_free() releases the object and all pointers and sub-objects
305 within it.
306
307 TYPE_print_ctx() prints the object B<a> on the specified BIO B<out>.
308 Each line will be prefixed with B<indent> spaces.
309 The B<pctx> specifies the printing context and is for internal
310 use; use NULL to get the default behavior.  If a print function is
311 user-defined, then pass in any B<pctx> down to any nested calls.
312
313 =head1 RETURN VALUES
314
315 TYPE_new() and TYPE_dup() return a pointer to the object or NULL on failure.
316
317 TYPE_print_ctx() returns 1 on success or zero on failure.
318
319 =head1 COPYRIGHT
320
321 Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
322
323 Licensed under the Apache License 2.0 (the "License").  You may not use
324 this file except in compliance with the License.  You can obtain a copy
325 in the file LICENSE in the source distribution or at
326 L<https://www.openssl.org/source/license.html>.
327
328 =cut