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,
128 OSSL_CMP_PKIHEADER_free,
129 OSSL_CMP_PKIHEADER_it,
130 OSSL_CMP_PKIHEADER_new,
133 OSSL_CMP_PKISTATUS_it,
134 OSSL_CRMF_CERTID_free,
136 OSSL_CRMF_CERTID_new,
137 OSSL_CRMF_CERTTEMPLATE_free,
138 OSSL_CRMF_CERTTEMPLATE_it,
139 OSSL_CRMF_CERTTEMPLATE_new,
140 OSSL_CRMF_ENCRYPTEDVALUE_free,
141 OSSL_CRMF_ENCRYPTEDVALUE_it,
142 OSSL_CRMF_ENCRYPTEDVALUE_new,
149 OSSL_CRMF_PBMPARAMETER_free,
150 OSSL_CRMF_PBMPARAMETER_it,
151 OSSL_CRMF_PBMPARAMETER_new,
152 OSSL_CRMF_PKIPUBLICATIONINFO_free,
153 OSSL_CRMF_PKIPUBLICATIONINFO_it,
154 OSSL_CRMF_PKIPUBLICATIONINFO_new,
155 OSSL_CRMF_SINGLEPUBINFO_free,
156 OSSL_CRMF_SINGLEPUBINFO_it,
157 OSSL_CRMF_SINGLEPUBINFO_new,
168 PKCS12_MAC_DATA_free,
178 PKCS7_ENC_CONTENT_free,
179 PKCS7_ENC_CONTENT_new,
182 PKCS7_ISSUER_AND_SERIAL_free,
183 PKCS7_ISSUER_AND_SERIAL_new,
184 PKCS7_RECIP_INFO_free,
185 PKCS7_RECIP_INFO_new,
188 PKCS7_SIGNER_INFO_free,
189 PKCS7_SIGNER_INFO_new,
190 PKCS7_SIGN_ENVELOPE_free,
191 PKCS7_SIGN_ENVELOPE_new,
196 PKCS8_PRIV_KEY_INFO_free,
197 PKCS8_PRIV_KEY_INFO_new,
198 PKEY_USAGE_PERIOD_free,
199 PKEY_USAGE_PERIOD_new,
204 POLICY_CONSTRAINTS_free,
205 POLICY_CONSTRAINTS_new,
208 PROFESSION_INFOS_free,
209 PROFESSION_INFOS_new,
210 PROFESSION_INFO_free,
212 PROXY_CERT_INFO_EXTENSION_free,
213 PROXY_CERT_INFO_EXTENSION_new,
218 RSA_OAEP_PARAMS_free,
268 X509_NAME_ENTRY_free,
286 - ASN1 object utilities
292 #include <openssl/asn1t.h>
294 DECLARE_ASN1_FUNCTIONS(type)
295 IMPLEMENT_ASN1_FUNCTIONS(stname)
297 typedef struct ASN1_ITEM_st ASN1_ITEM;
299 extern const ASN1_ITEM TYPE_it;
300 TYPE *TYPE_new(void);
301 TYPE *TYPE_dup(const TYPE *a);
302 void TYPE_free(TYPE *a);
303 int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
307 In the description below, B<I<TYPE>> is used
308 as a placeholder for any of the OpenSSL datatypes, such as B<X509>.
310 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
312 Every ASN1 object as a global variable, TYPE_it, that describes the item
313 such as its fields. (On systems which cannot export variables from shared
314 libraries, the global is instead a function which returns a pointer to a
317 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
318 to generate the function declarations.
320 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
321 to generate the function bodies.
324 B<I<TYPE>_new>() allocates an empty object of the indicated type.
325 The object returned must be released by calling B<I<TYPE>_free>().
327 B<I<TYPE>_dup>() copies an existing object, leaving it untouched.
329 B<I<TYPE>_free>() releases the object and all pointers and sub-objects
332 B<I<TYPE>_print_ctx>() prints the object I<a> on the specified BIO I<out>.
333 Each line will be prefixed with I<indent> spaces.
334 The I<pctx> specifies the printing context and is for internal
335 use; use NULL to get the default behavior. If a print function is
336 user-defined, then pass in any I<pctx> down to any nested calls.
340 B<I<TYPE>_new>() and B<I<TYPE>_dup>() return a pointer to the object or NULL on
343 B<I<TYPE>_print_ctx>() returns 1 on success or zero on failure.
347 Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
349 Licensed under the Apache License 2.0 (the "License"). You may not use
350 this file except in compliance with the License. You can obtain a copy
351 in the file LICENSE in the source distribution or at
352 L<https://www.openssl.org/source/license.html>.