xref: /freebsd/crypto/openssl/doc/man3/X509_dup.pod (revision aa7957345732816fb0ba8308798d2f79f45597f9)
1e71b7053SJung-uk Kim=pod
2e71b7053SJung-uk Kim
3e71b7053SJung-uk Kim=head1 NAME
4e71b7053SJung-uk Kim
5e71b7053SJung-uk KimDECLARE_ASN1_FUNCTIONS,
6e71b7053SJung-uk KimIMPLEMENT_ASN1_FUNCTIONS,
7e71b7053SJung-uk KimASN1_ITEM,
8e71b7053SJung-uk KimACCESS_DESCRIPTION_free,
9e71b7053SJung-uk KimACCESS_DESCRIPTION_new,
10e71b7053SJung-uk KimADMISSIONS_free,
11e71b7053SJung-uk KimADMISSIONS_new,
12e71b7053SJung-uk KimADMISSION_SYNTAX_free,
13e71b7053SJung-uk KimADMISSION_SYNTAX_new,
14e71b7053SJung-uk KimASIdOrRange_free,
15e71b7053SJung-uk KimASIdOrRange_new,
16e71b7053SJung-uk KimASIdentifierChoice_free,
17e71b7053SJung-uk KimASIdentifierChoice_new,
18e71b7053SJung-uk KimASIdentifiers_free,
19e71b7053SJung-uk KimASIdentifiers_new,
20e71b7053SJung-uk KimASRange_free,
21e71b7053SJung-uk KimASRange_new,
22e71b7053SJung-uk KimAUTHORITY_INFO_ACCESS_free,
23e71b7053SJung-uk KimAUTHORITY_INFO_ACCESS_new,
24e71b7053SJung-uk KimAUTHORITY_KEYID_free,
25e71b7053SJung-uk KimAUTHORITY_KEYID_new,
26e71b7053SJung-uk KimBASIC_CONSTRAINTS_free,
27e71b7053SJung-uk KimBASIC_CONSTRAINTS_new,
28e71b7053SJung-uk KimCERTIFICATEPOLICIES_free,
29e71b7053SJung-uk KimCERTIFICATEPOLICIES_new,
30e71b7053SJung-uk KimCMS_ContentInfo_free,
31e71b7053SJung-uk KimCMS_ContentInfo_new,
32b077aed3SPierre ProncheryCMS_ContentInfo_new_ex,
33e71b7053SJung-uk KimCMS_ContentInfo_print_ctx,
34e71b7053SJung-uk KimCMS_ReceiptRequest_free,
35e71b7053SJung-uk KimCMS_ReceiptRequest_new,
36e71b7053SJung-uk KimCRL_DIST_POINTS_free,
37e71b7053SJung-uk KimCRL_DIST_POINTS_new,
38e71b7053SJung-uk KimDIRECTORYSTRING_free,
39e71b7053SJung-uk KimDIRECTORYSTRING_new,
40e71b7053SJung-uk KimDISPLAYTEXT_free,
41e71b7053SJung-uk KimDISPLAYTEXT_new,
42e71b7053SJung-uk KimDIST_POINT_NAME_free,
43e71b7053SJung-uk KimDIST_POINT_NAME_new,
44e71b7053SJung-uk KimDIST_POINT_free,
45e71b7053SJung-uk KimDIST_POINT_new,
46e71b7053SJung-uk KimDSAparams_dup,
47e71b7053SJung-uk KimECPARAMETERS_free,
48e71b7053SJung-uk KimECPARAMETERS_new,
49e71b7053SJung-uk KimECPKPARAMETERS_free,
50e71b7053SJung-uk KimECPKPARAMETERS_new,
51e71b7053SJung-uk KimEDIPARTYNAME_free,
52e71b7053SJung-uk KimEDIPARTYNAME_new,
53e71b7053SJung-uk KimESS_CERT_ID_dup,
54e71b7053SJung-uk KimESS_CERT_ID_free,
55e71b7053SJung-uk KimESS_CERT_ID_new,
56b077aed3SPierre ProncheryESS_CERT_ID_V2_dup,
57b077aed3SPierre ProncheryESS_CERT_ID_V2_free,
58b077aed3SPierre ProncheryESS_CERT_ID_V2_new,
59e71b7053SJung-uk KimESS_ISSUER_SERIAL_dup,
60e71b7053SJung-uk KimESS_ISSUER_SERIAL_free,
61e71b7053SJung-uk KimESS_ISSUER_SERIAL_new,
62e71b7053SJung-uk KimESS_SIGNING_CERT_dup,
63e71b7053SJung-uk KimESS_SIGNING_CERT_free,
64b077aed3SPierre ProncheryESS_SIGNING_CERT_it,
65e71b7053SJung-uk KimESS_SIGNING_CERT_new,
66b077aed3SPierre ProncheryESS_SIGNING_CERT_V2_dup,
67b077aed3SPierre ProncheryESS_SIGNING_CERT_V2_free,
68b077aed3SPierre ProncheryESS_SIGNING_CERT_V2_it,
69b077aed3SPierre ProncheryESS_SIGNING_CERT_V2_new,
70e71b7053SJung-uk KimEXTENDED_KEY_USAGE_free,
71e71b7053SJung-uk KimEXTENDED_KEY_USAGE_new,
72e71b7053SJung-uk KimGENERAL_NAMES_free,
73e71b7053SJung-uk KimGENERAL_NAMES_new,
74e71b7053SJung-uk KimGENERAL_NAME_dup,
75e71b7053SJung-uk KimGENERAL_NAME_free,
76e71b7053SJung-uk KimGENERAL_NAME_new,
77e71b7053SJung-uk KimGENERAL_SUBTREE_free,
78e71b7053SJung-uk KimGENERAL_SUBTREE_new,
79e71b7053SJung-uk KimIPAddressChoice_free,
80e71b7053SJung-uk KimIPAddressChoice_new,
81e71b7053SJung-uk KimIPAddressFamily_free,
82e71b7053SJung-uk KimIPAddressFamily_new,
83e71b7053SJung-uk KimIPAddressOrRange_free,
84e71b7053SJung-uk KimIPAddressOrRange_new,
85e71b7053SJung-uk KimIPAddressRange_free,
86e71b7053SJung-uk KimIPAddressRange_new,
87b077aed3SPierre ProncheryISSUER_SIGN_TOOL_free,
88b077aed3SPierre ProncheryISSUER_SIGN_TOOL_it,
89b077aed3SPierre ProncheryISSUER_SIGN_TOOL_new,
90e71b7053SJung-uk KimISSUING_DIST_POINT_free,
91b077aed3SPierre ProncheryISSUING_DIST_POINT_it,
92e71b7053SJung-uk KimISSUING_DIST_POINT_new,
93e71b7053SJung-uk KimNAME_CONSTRAINTS_free,
94e71b7053SJung-uk KimNAME_CONSTRAINTS_new,
95e71b7053SJung-uk KimNAMING_AUTHORITY_free,
96e71b7053SJung-uk KimNAMING_AUTHORITY_new,
97e71b7053SJung-uk KimNETSCAPE_CERT_SEQUENCE_free,
98e71b7053SJung-uk KimNETSCAPE_CERT_SEQUENCE_new,
99e71b7053SJung-uk KimNETSCAPE_SPKAC_free,
100e71b7053SJung-uk KimNETSCAPE_SPKAC_new,
101e71b7053SJung-uk KimNETSCAPE_SPKI_free,
102e71b7053SJung-uk KimNETSCAPE_SPKI_new,
103e71b7053SJung-uk KimNOTICEREF_free,
104e71b7053SJung-uk KimNOTICEREF_new,
105e71b7053SJung-uk KimOCSP_BASICRESP_free,
106e71b7053SJung-uk KimOCSP_BASICRESP_new,
107e71b7053SJung-uk KimOCSP_CERTID_dup,
108e71b7053SJung-uk KimOCSP_CERTID_new,
109e71b7053SJung-uk KimOCSP_CERTSTATUS_free,
110e71b7053SJung-uk KimOCSP_CERTSTATUS_new,
111e71b7053SJung-uk KimOCSP_CRLID_free,
112e71b7053SJung-uk KimOCSP_CRLID_new,
113e71b7053SJung-uk KimOCSP_ONEREQ_free,
114e71b7053SJung-uk KimOCSP_ONEREQ_new,
115e71b7053SJung-uk KimOCSP_REQINFO_free,
116e71b7053SJung-uk KimOCSP_REQINFO_new,
117e71b7053SJung-uk KimOCSP_RESPBYTES_free,
118e71b7053SJung-uk KimOCSP_RESPBYTES_new,
119e71b7053SJung-uk KimOCSP_RESPDATA_free,
120e71b7053SJung-uk KimOCSP_RESPDATA_new,
121e71b7053SJung-uk KimOCSP_RESPID_free,
122e71b7053SJung-uk KimOCSP_RESPID_new,
123e71b7053SJung-uk KimOCSP_RESPONSE_new,
124e71b7053SJung-uk KimOCSP_REVOKEDINFO_free,
125e71b7053SJung-uk KimOCSP_REVOKEDINFO_new,
126e71b7053SJung-uk KimOCSP_SERVICELOC_free,
127e71b7053SJung-uk KimOCSP_SERVICELOC_new,
128e71b7053SJung-uk KimOCSP_SIGNATURE_free,
129e71b7053SJung-uk KimOCSP_SIGNATURE_new,
130e71b7053SJung-uk KimOCSP_SINGLERESP_free,
131e71b7053SJung-uk KimOCSP_SINGLERESP_new,
132b077aed3SPierre ProncheryOSSL_CMP_ITAV_dup,
133b077aed3SPierre ProncheryOSSL_CMP_ITAV_free,
134b077aed3SPierre ProncheryOSSL_CMP_MSG_dup,
135b077aed3SPierre ProncheryOSSL_CMP_MSG_it,
136b077aed3SPierre ProncheryOSSL_CMP_MSG_free,
137b077aed3SPierre ProncheryOSSL_CMP_PKIHEADER_free,
138b077aed3SPierre ProncheryOSSL_CMP_PKIHEADER_it,
139b077aed3SPierre ProncheryOSSL_CMP_PKIHEADER_new,
140b077aed3SPierre ProncheryOSSL_CMP_PKISI_dup,
141b077aed3SPierre ProncheryOSSL_CMP_PKISI_free,
142b077aed3SPierre ProncheryOSSL_CMP_PKISI_it,
143b077aed3SPierre ProncheryOSSL_CMP_PKISI_new,
144b077aed3SPierre ProncheryOSSL_CMP_PKISTATUS_it,
145b077aed3SPierre ProncheryOSSL_CRMF_CERTID_dup,
146b077aed3SPierre ProncheryOSSL_CRMF_CERTID_free,
147b077aed3SPierre ProncheryOSSL_CRMF_CERTID_it,
148b077aed3SPierre ProncheryOSSL_CRMF_CERTID_new,
149b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_free,
150b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_it,
151b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_new,
152b077aed3SPierre ProncheryOSSL_CRMF_ENCRYPTEDVALUE_free,
153b077aed3SPierre ProncheryOSSL_CRMF_ENCRYPTEDVALUE_it,
154b077aed3SPierre ProncheryOSSL_CRMF_ENCRYPTEDVALUE_new,
155b077aed3SPierre ProncheryOSSL_CRMF_MSGS_free,
156b077aed3SPierre ProncheryOSSL_CRMF_MSGS_it,
157b077aed3SPierre ProncheryOSSL_CRMF_MSGS_new,
158b077aed3SPierre ProncheryOSSL_CRMF_MSG_dup,
159b077aed3SPierre ProncheryOSSL_CRMF_MSG_free,
160b077aed3SPierre ProncheryOSSL_CRMF_MSG_it,
161b077aed3SPierre ProncheryOSSL_CRMF_MSG_new,
162b077aed3SPierre ProncheryOSSL_CRMF_PBMPARAMETER_free,
163b077aed3SPierre ProncheryOSSL_CRMF_PBMPARAMETER_it,
164b077aed3SPierre ProncheryOSSL_CRMF_PBMPARAMETER_new,
165b077aed3SPierre ProncheryOSSL_CRMF_PKIPUBLICATIONINFO_free,
166b077aed3SPierre ProncheryOSSL_CRMF_PKIPUBLICATIONINFO_it,
167b077aed3SPierre ProncheryOSSL_CRMF_PKIPUBLICATIONINFO_new,
168b077aed3SPierre ProncheryOSSL_CRMF_SINGLEPUBINFO_free,
169b077aed3SPierre ProncheryOSSL_CRMF_SINGLEPUBINFO_it,
170b077aed3SPierre ProncheryOSSL_CRMF_SINGLEPUBINFO_new,
171e71b7053SJung-uk KimOTHERNAME_free,
172e71b7053SJung-uk KimOTHERNAME_new,
173e71b7053SJung-uk KimPBE2PARAM_free,
174e71b7053SJung-uk KimPBE2PARAM_new,
175e71b7053SJung-uk KimPBEPARAM_free,
176e71b7053SJung-uk KimPBEPARAM_new,
177e71b7053SJung-uk KimPBKDF2PARAM_free,
178e71b7053SJung-uk KimPBKDF2PARAM_new,
179e71b7053SJung-uk KimPKCS12_BAGS_free,
180e71b7053SJung-uk KimPKCS12_BAGS_new,
181e71b7053SJung-uk KimPKCS12_MAC_DATA_free,
182e71b7053SJung-uk KimPKCS12_MAC_DATA_new,
183e71b7053SJung-uk KimPKCS12_SAFEBAG_free,
184e71b7053SJung-uk KimPKCS12_SAFEBAG_new,
185e71b7053SJung-uk KimPKCS12_free,
186e71b7053SJung-uk KimPKCS12_new,
187e71b7053SJung-uk KimPKCS7_DIGEST_free,
188e71b7053SJung-uk KimPKCS7_DIGEST_new,
189e71b7053SJung-uk KimPKCS7_ENCRYPT_free,
190e71b7053SJung-uk KimPKCS7_ENCRYPT_new,
191e71b7053SJung-uk KimPKCS7_ENC_CONTENT_free,
192e71b7053SJung-uk KimPKCS7_ENC_CONTENT_new,
193e71b7053SJung-uk KimPKCS7_ENVELOPE_free,
194e71b7053SJung-uk KimPKCS7_ENVELOPE_new,
195e71b7053SJung-uk KimPKCS7_ISSUER_AND_SERIAL_free,
196e71b7053SJung-uk KimPKCS7_ISSUER_AND_SERIAL_new,
197e71b7053SJung-uk KimPKCS7_RECIP_INFO_free,
198e71b7053SJung-uk KimPKCS7_RECIP_INFO_new,
199e71b7053SJung-uk KimPKCS7_SIGNED_free,
200e71b7053SJung-uk KimPKCS7_SIGNED_new,
201e71b7053SJung-uk KimPKCS7_SIGNER_INFO_free,
202e71b7053SJung-uk KimPKCS7_SIGNER_INFO_new,
203e71b7053SJung-uk KimPKCS7_SIGN_ENVELOPE_free,
204e71b7053SJung-uk KimPKCS7_SIGN_ENVELOPE_new,
205e71b7053SJung-uk KimPKCS7_dup,
206e71b7053SJung-uk KimPKCS7_free,
207b077aed3SPierre ProncheryPKCS7_new_ex,
208e71b7053SJung-uk KimPKCS7_new,
209e71b7053SJung-uk KimPKCS7_print_ctx,
210e71b7053SJung-uk KimPKCS8_PRIV_KEY_INFO_free,
211e71b7053SJung-uk KimPKCS8_PRIV_KEY_INFO_new,
212e71b7053SJung-uk KimPKEY_USAGE_PERIOD_free,
213e71b7053SJung-uk KimPKEY_USAGE_PERIOD_new,
214e71b7053SJung-uk KimPOLICYINFO_free,
215e71b7053SJung-uk KimPOLICYINFO_new,
216e71b7053SJung-uk KimPOLICYQUALINFO_free,
217e71b7053SJung-uk KimPOLICYQUALINFO_new,
218e71b7053SJung-uk KimPOLICY_CONSTRAINTS_free,
219e71b7053SJung-uk KimPOLICY_CONSTRAINTS_new,
220e71b7053SJung-uk KimPOLICY_MAPPING_free,
221e71b7053SJung-uk KimPOLICY_MAPPING_new,
222e71b7053SJung-uk KimPROFESSION_INFOS_free,
223e71b7053SJung-uk KimPROFESSION_INFOS_new,
224b077aed3SPierre ProncheryPROFESSION_INFO_free,
225b077aed3SPierre ProncheryPROFESSION_INFO_new,
226e71b7053SJung-uk KimPROXY_CERT_INFO_EXTENSION_free,
227e71b7053SJung-uk KimPROXY_CERT_INFO_EXTENSION_new,
228e71b7053SJung-uk KimPROXY_POLICY_free,
229e71b7053SJung-uk KimPROXY_POLICY_new,
230e71b7053SJung-uk KimRSAPrivateKey_dup,
231e71b7053SJung-uk KimRSAPublicKey_dup,
232e71b7053SJung-uk KimRSA_OAEP_PARAMS_free,
233e71b7053SJung-uk KimRSA_OAEP_PARAMS_new,
234e71b7053SJung-uk KimRSA_PSS_PARAMS_free,
235e71b7053SJung-uk KimRSA_PSS_PARAMS_new,
236b077aed3SPierre ProncheryRSA_PSS_PARAMS_dup,
237e71b7053SJung-uk KimSCRYPT_PARAMS_free,
238e71b7053SJung-uk KimSCRYPT_PARAMS_new,
239e71b7053SJung-uk KimSXNETID_free,
240e71b7053SJung-uk KimSXNETID_new,
241e71b7053SJung-uk KimSXNET_free,
242e71b7053SJung-uk KimSXNET_new,
243e71b7053SJung-uk KimTLS_FEATURE_free,
244e71b7053SJung-uk KimTLS_FEATURE_new,
245e71b7053SJung-uk KimTS_ACCURACY_dup,
246e71b7053SJung-uk KimTS_ACCURACY_free,
247e71b7053SJung-uk KimTS_ACCURACY_new,
248e71b7053SJung-uk KimTS_MSG_IMPRINT_dup,
249e71b7053SJung-uk KimTS_MSG_IMPRINT_free,
250e71b7053SJung-uk KimTS_MSG_IMPRINT_new,
251e71b7053SJung-uk KimTS_REQ_dup,
252e71b7053SJung-uk KimTS_REQ_free,
253e71b7053SJung-uk KimTS_REQ_new,
254e71b7053SJung-uk KimTS_RESP_dup,
255e71b7053SJung-uk KimTS_RESP_free,
256e71b7053SJung-uk KimTS_RESP_new,
257e71b7053SJung-uk KimTS_STATUS_INFO_dup,
258e71b7053SJung-uk KimTS_STATUS_INFO_free,
259e71b7053SJung-uk KimTS_STATUS_INFO_new,
260e71b7053SJung-uk KimTS_TST_INFO_dup,
261e71b7053SJung-uk KimTS_TST_INFO_free,
262e71b7053SJung-uk KimTS_TST_INFO_new,
263e71b7053SJung-uk KimUSERNOTICE_free,
264e71b7053SJung-uk KimUSERNOTICE_new,
265e71b7053SJung-uk KimX509_ALGOR_free,
266b077aed3SPierre ProncheryX509_ALGOR_it,
267e71b7053SJung-uk KimX509_ALGOR_new,
268e71b7053SJung-uk KimX509_ATTRIBUTE_dup,
269e71b7053SJung-uk KimX509_ATTRIBUTE_free,
270e71b7053SJung-uk KimX509_ATTRIBUTE_new,
271e71b7053SJung-uk KimX509_CERT_AUX_free,
272e71b7053SJung-uk KimX509_CERT_AUX_new,
273e71b7053SJung-uk KimX509_CINF_free,
274e71b7053SJung-uk KimX509_CINF_new,
275e71b7053SJung-uk KimX509_CRL_INFO_free,
276e71b7053SJung-uk KimX509_CRL_INFO_new,
277e71b7053SJung-uk KimX509_CRL_dup,
278e71b7053SJung-uk KimX509_CRL_free,
279b077aed3SPierre ProncheryX509_CRL_new_ex,
280e71b7053SJung-uk KimX509_CRL_new,
281e71b7053SJung-uk KimX509_EXTENSION_dup,
282e71b7053SJung-uk KimX509_EXTENSION_free,
283e71b7053SJung-uk KimX509_EXTENSION_new,
284e71b7053SJung-uk KimX509_NAME_ENTRY_dup,
285e71b7053SJung-uk KimX509_NAME_ENTRY_free,
286e71b7053SJung-uk KimX509_NAME_ENTRY_new,
287e71b7053SJung-uk KimX509_NAME_dup,
288e71b7053SJung-uk KimX509_NAME_free,
289e71b7053SJung-uk KimX509_NAME_new,
290e71b7053SJung-uk KimX509_REQ_INFO_free,
291e71b7053SJung-uk KimX509_REQ_INFO_new,
292e71b7053SJung-uk KimX509_REQ_dup,
293e71b7053SJung-uk KimX509_REQ_free,
294e71b7053SJung-uk KimX509_REQ_new,
295b077aed3SPierre ProncheryX509_REQ_new_ex,
296e71b7053SJung-uk KimX509_REVOKED_dup,
297e71b7053SJung-uk KimX509_REVOKED_free,
298e71b7053SJung-uk KimX509_REVOKED_new,
299e71b7053SJung-uk KimX509_SIG_free,
300e71b7053SJung-uk KimX509_SIG_new,
301e71b7053SJung-uk KimX509_VAL_free,
302e71b7053SJung-uk KimX509_VAL_new,
303e71b7053SJung-uk KimX509_dup,
304e71b7053SJung-uk Kim- ASN1 object utilities
305e71b7053SJung-uk Kim
306e71b7053SJung-uk Kim=head1 SYNOPSIS
307e71b7053SJung-uk Kim
308b077aed3SPierre Pronchery=for openssl generic
309e71b7053SJung-uk Kim
310e71b7053SJung-uk Kim #include <openssl/asn1t.h>
311e71b7053SJung-uk Kim
312e71b7053SJung-uk Kim DECLARE_ASN1_FUNCTIONS(type)
313e71b7053SJung-uk Kim IMPLEMENT_ASN1_FUNCTIONS(stname)
314e71b7053SJung-uk Kim
315e71b7053SJung-uk Kim typedef struct ASN1_ITEM_st ASN1_ITEM;
316e71b7053SJung-uk Kim
317e71b7053SJung-uk Kim extern const ASN1_ITEM TYPE_it;
318e71b7053SJung-uk Kim TYPE *TYPE_new(void);
319b077aed3SPierre Pronchery TYPE *TYPE_dup(const TYPE *a);
320e71b7053SJung-uk Kim void TYPE_free(TYPE *a);
321e71b7053SJung-uk Kim int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
322e71b7053SJung-uk Kim
323b077aed3SPierre ProncheryThe following functions have been deprecated since OpenSSL 3.0, and can be
324b077aed3SPierre Proncheryhidden entirely by defining B<OPENSSL_API_COMPAT> with a suitable version value,
325b077aed3SPierre Proncherysee L<openssl_user_macros(7)>:
326b077aed3SPierre Pronchery
327b077aed3SPierre Pronchery DSA *DSAparams_dup(const DSA *dsa);
328b077aed3SPierre Pronchery RSA *RSAPrivateKey_dup(const RSA *rsa);
329b077aed3SPierre Pronchery RSA *RSAPublicKey_dup(const RSA *rsa);
330b077aed3SPierre Pronchery
331e71b7053SJung-uk Kim=head1 DESCRIPTION
332e71b7053SJung-uk Kim
333b077aed3SPierre ProncheryIn the description below, B<I<TYPE>> is used
334b077aed3SPierre Proncheryas a placeholder for any of the OpenSSL datatypes, such as B<X509>.
335e71b7053SJung-uk Kim
336e71b7053SJung-uk KimThe OpenSSL ASN1 parsing library templates are like a data-driven bytecode
337e71b7053SJung-uk Kiminterpreter.
338e71b7053SJung-uk KimEvery ASN1 object as a global variable, TYPE_it, that describes the item
339e71b7053SJung-uk Kimsuch as its fields.  (On systems which cannot export variables from shared
340e71b7053SJung-uk Kimlibraries, the global is instead a function which returns a pointer to a
341e71b7053SJung-uk Kimstatic variable.
342e71b7053SJung-uk Kim
343e71b7053SJung-uk KimThe macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
344e71b7053SJung-uk Kimto generate the function declarations.
345e71b7053SJung-uk Kim
346e71b7053SJung-uk KimThe macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
347e71b7053SJung-uk Kimto generate the function bodies.
348e71b7053SJung-uk Kim
349e71b7053SJung-uk Kim
350b077aed3SPierre ProncheryB<I<TYPE>_new>() allocates an empty object of the indicated type.
351b077aed3SPierre ProncheryThe object returned must be released by calling B<I<TYPE>_free>().
352e71b7053SJung-uk Kim
353*aa795734SPierre ProncheryB<I<TYPE>_new_ex>() is similar to B<I<TYPE>_new>() but also passes the
354b077aed3SPierre Proncherylibrary context I<libctx> and the property query I<propq> to use when retrieving
355b077aed3SPierre Proncheryalgorithms from providers. This created object can then be used when loading
356b077aed3SPierre Proncherybinary data using B<d2i_I<TYPE>>().
357e71b7053SJung-uk Kim
358b077aed3SPierre ProncheryB<I<TYPE>_dup>() copies an existing object, leaving it untouched.
359b077aed3SPierre Pronchery
360b077aed3SPierre ProncheryB<I<TYPE>_free>() releases the object and all pointers and sub-objects
361e71b7053SJung-uk Kimwithin it.
362e71b7053SJung-uk Kim
363b077aed3SPierre ProncheryB<I<TYPE>_print_ctx>() prints the object I<a> on the specified BIO I<out>.
364b077aed3SPierre ProncheryEach line will be prefixed with I<indent> spaces.
365b077aed3SPierre ProncheryThe I<pctx> specifies the printing context and is for internal
366e71b7053SJung-uk Kimuse; use NULL to get the default behavior.  If a print function is
367b077aed3SPierre Proncheryuser-defined, then pass in any I<pctx> down to any nested calls.
368e71b7053SJung-uk Kim
369e71b7053SJung-uk Kim=head1 RETURN VALUES
370e71b7053SJung-uk Kim
371b077aed3SPierre ProncheryB<I<TYPE>_new>(), B<I<TYPE>_new_ex>() and B<I<TYPE>_dup>() return a pointer to
372b077aed3SPierre Proncherythe object or NULL on failure.
373e71b7053SJung-uk Kim
374b077aed3SPierre ProncheryB<I<TYPE>_print_ctx>() returns 1 on success or zero on failure.
375b077aed3SPierre Pronchery
376b077aed3SPierre Pronchery=head1 HISTORY
377b077aed3SPierre Pronchery
378b077aed3SPierre ProncheryThe functions X509_REQ_new_ex(), X509_CRL_new_ex(), PKCS7_new_ex() and
379b077aed3SPierre ProncheryCMS_ContentInfo_new_ex() were added in OpenSSL 3.0.
380b077aed3SPierre Pronchery
381b077aed3SPierre ProncheryThe functions DSAparams_dup(), RSAPrivateKey_dup() and RSAPublicKey_dup() were
382b077aed3SPierre Proncherydeprecated in 3.0.
383e71b7053SJung-uk Kim
384e71b7053SJung-uk Kim=head1 COPYRIGHT
385e71b7053SJung-uk Kim
386*aa795734SPierre ProncheryCopyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved.
387e71b7053SJung-uk Kim
388b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License").  You may not use
389e71b7053SJung-uk Kimthis file except in compliance with the License.  You can obtain a copy
390e71b7053SJung-uk Kimin the file LICENSE in the source distribution or at
391e71b7053SJung-uk KimL<https://www.openssl.org/source/license.html>.
392e71b7053SJung-uk Kim
393e71b7053SJung-uk Kim=cut
394