5 DECLARE_ASN1_FUNCTIONS,
6 IMPLEMENT_ASN1_FUNCTIONS,
8 ACCESS_DESCRIPTION_free,
9 ACCESS_DESCRIPTION_new,
12 ADMISSION_SYNTAX_free,
16 ASIdentifierChoice_free,
17 ASIdentifierChoice_new,
22 AUTHORITY_INFO_ACCESS_free,
23 AUTHORITY_INFO_ACCESS_new,
26 BASIC_CONSTRAINTS_free,
27 BASIC_CONSTRAINTS_new,
28 CERTIFICATEPOLICIES_free,
29 CERTIFICATEPOLICIES_new,
32 CMS_ContentInfo_print_ctx,
33 CMS_ReceiptRequest_free,
34 CMS_ReceiptRequest_new,
58 ESS_ISSUER_SERIAL_dup,
59 ESS_ISSUER_SERIAL_free,
60 ESS_ISSUER_SERIAL_new,
62 ESS_SIGNING_CERT_free,
64 ESS_SIGNING_CERT_V2_dup,
65 ESS_SIGNING_CERT_V2_free,
66 ESS_SIGNING_CERT_V2_new,
67 EXTENDED_KEY_USAGE_free,
68 EXTENDED_KEY_USAGE_new,
80 IPAddressOrRange_free,
84 ISSUING_DIST_POINT_free,
85 ISSUING_DIST_POINT_new,
86 NAME_CONSTRAINTS_free,
88 NAMING_AUTHORITY_free,
90 NETSCAPE_CERT_SEQUENCE_free,
91 NETSCAPE_CERT_SEQUENCE_new,
102 OCSP_CERTSTATUS_free,
117 OCSP_REVOKEDINFO_free,
118 OCSP_REVOKEDINFO_new,
119 OCSP_SERVICELOC_free,
123 OCSP_SINGLERESP_free,
130 OSSL_CMP_PKIHEADER_free,
131 OSSL_CMP_PKIHEADER_it,
132 OSSL_CMP_PKIHEADER_new,
137 OSSL_CMP_PKISTATUS_it,
138 OSSL_CRMF_CERTID_free,
140 OSSL_CRMF_CERTID_new,
141 OSSL_CRMF_CERTTEMPLATE_free,
142 OSSL_CRMF_CERTTEMPLATE_it,
143 OSSL_CRMF_CERTTEMPLATE_new,
144 OSSL_CRMF_ENCRYPTEDVALUE_free,
145 OSSL_CRMF_ENCRYPTEDVALUE_it,
146 OSSL_CRMF_ENCRYPTEDVALUE_new,
153 OSSL_CRMF_PBMPARAMETER_free,
154 OSSL_CRMF_PBMPARAMETER_it,
155 OSSL_CRMF_PBMPARAMETER_new,
156 OSSL_CRMF_PKIPUBLICATIONINFO_free,
157 OSSL_CRMF_PKIPUBLICATIONINFO_it,
158 OSSL_CRMF_PKIPUBLICATIONINFO_new,
159 OSSL_CRMF_SINGLEPUBINFO_free,
160 OSSL_CRMF_SINGLEPUBINFO_it,
161 OSSL_CRMF_SINGLEPUBINFO_new,
172 PKCS12_MAC_DATA_free,
182 PKCS7_ENC_CONTENT_free,
183 PKCS7_ENC_CONTENT_new,
186 PKCS7_ISSUER_AND_SERIAL_free,
187 PKCS7_ISSUER_AND_SERIAL_new,
188 PKCS7_RECIP_INFO_free,
189 PKCS7_RECIP_INFO_new,
192 PKCS7_SIGNER_INFO_free,
193 PKCS7_SIGNER_INFO_new,
194 PKCS7_SIGN_ENVELOPE_free,
195 PKCS7_SIGN_ENVELOPE_new,
200 PKCS8_PRIV_KEY_INFO_free,
201 PKCS8_PRIV_KEY_INFO_new,
202 PKEY_USAGE_PERIOD_free,
203 PKEY_USAGE_PERIOD_new,
208 POLICY_CONSTRAINTS_free,
209 POLICY_CONSTRAINTS_new,
212 PROFESSION_INFOS_free,
213 PROFESSION_INFOS_new,
214 PROFESSION_INFO_free,
216 PROXY_CERT_INFO_EXTENSION_free,
217 PROXY_CERT_INFO_EXTENSION_new,
222 RSA_OAEP_PARAMS_free,
272 X509_NAME_ENTRY_free,
290 - ASN1 object utilities
296 #include <openssl/asn1t.h>
298 DECLARE_ASN1_FUNCTIONS(type)
299 IMPLEMENT_ASN1_FUNCTIONS(stname)
301 typedef struct ASN1_ITEM_st ASN1_ITEM;
303 extern const ASN1_ITEM TYPE_it;
304 TYPE *TYPE_new(void);
305 TYPE *TYPE_dup(const TYPE *a);
306 void TYPE_free(TYPE *a);
307 int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
311 In the description below, B<I<TYPE>> is used
312 as a placeholder for any of the OpenSSL datatypes, such as B<X509>.
314 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
316 Every ASN1 object as a global variable, TYPE_it, that describes the item
317 such as its fields. (On systems which cannot export variables from shared
318 libraries, the global is instead a function which returns a pointer to a
321 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
322 to generate the function declarations.
324 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
325 to generate the function bodies.
328 B<I<TYPE>_new>() allocates an empty object of the indicated type.
329 The object returned must be released by calling B<I<TYPE>_free>().
331 B<I<TYPE>_dup>() copies an existing object, leaving it untouched.
333 B<I<TYPE>_free>() releases the object and all pointers and sub-objects
336 B<I<TYPE>_print_ctx>() prints the object I<a> on the specified BIO I<out>.
337 Each line will be prefixed with I<indent> spaces.
338 The I<pctx> specifies the printing context and is for internal
339 use; use NULL to get the default behavior. If a print function is
340 user-defined, then pass in any I<pctx> down to any nested calls.
344 B<I<TYPE>_new>() and B<I<TYPE>_dup>() return a pointer to the object or NULL on
347 B<I<TYPE>_print_ctx>() returns 1 on success or zero on failure.
351 Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
353 Licensed under the Apache License 2.0 (the "License"). You may not use
354 this file except in compliance with the License. You can obtain a copy
355 in the file LICENSE in the source distribution or at
356 L<https://www.openssl.org/source/license.html>.