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,
55 ESS_ISSUER_SERIAL_dup,
56 ESS_ISSUER_SERIAL_free,
57 ESS_ISSUER_SERIAL_new,
59 ESS_SIGNING_CERT_free,
61 EXTENDED_KEY_USAGE_free,
62 EXTENDED_KEY_USAGE_new,
74 IPAddressOrRange_free,
78 ISSUING_DIST_POINT_free,
79 ISSUING_DIST_POINT_new,
80 NAME_CONSTRAINTS_free,
82 NAMING_AUTHORITY_free,
84 NETSCAPE_CERT_SEQUENCE_free,
85 NETSCAPE_CERT_SEQUENCE_new,
111 OCSP_REVOKEDINFO_free,
112 OCSP_REVOKEDINFO_new,
113 OCSP_SERVICELOC_free,
117 OCSP_SINGLERESP_free,
123 OSSL_CMP_PKIHEADER_free,
124 OSSL_CMP_PKIHEADER_it,
125 OSSL_CMP_PKIHEADER_new,
127 OSSL_CMP_PKISTATUS_it,
128 OSSL_CRMF_CERTID_free,
130 OSSL_CRMF_CERTID_new,
131 OSSL_CRMF_CERTTEMPLATE_free,
132 OSSL_CRMF_CERTTEMPLATE_it,
133 OSSL_CRMF_CERTTEMPLATE_new,
134 OSSL_CRMF_ENCRYPTEDVALUE_free,
135 OSSL_CRMF_ENCRYPTEDVALUE_it,
136 OSSL_CRMF_ENCRYPTEDVALUE_new,
143 OSSL_CRMF_PBMPARAMETER_free,
144 OSSL_CRMF_PBMPARAMETER_it,
145 OSSL_CRMF_PBMPARAMETER_new,
146 OSSL_CRMF_PKIPUBLICATIONINFO_free,
147 OSSL_CRMF_PKIPUBLICATIONINFO_it,
148 OSSL_CRMF_PKIPUBLICATIONINFO_new,
149 OSSL_CRMF_SINGLEPUBINFO_free,
150 OSSL_CRMF_SINGLEPUBINFO_it,
151 OSSL_CRMF_SINGLEPUBINFO_new,
162 PKCS12_MAC_DATA_free,
172 PKCS7_ENC_CONTENT_free,
173 PKCS7_ENC_CONTENT_new,
176 PKCS7_ISSUER_AND_SERIAL_free,
177 PKCS7_ISSUER_AND_SERIAL_new,
178 PKCS7_RECIP_INFO_free,
179 PKCS7_RECIP_INFO_new,
182 PKCS7_SIGNER_INFO_free,
183 PKCS7_SIGNER_INFO_new,
184 PKCS7_SIGN_ENVELOPE_free,
185 PKCS7_SIGN_ENVELOPE_new,
190 PKCS8_PRIV_KEY_INFO_free,
191 PKCS8_PRIV_KEY_INFO_new,
192 PKEY_USAGE_PERIOD_free,
193 PKEY_USAGE_PERIOD_new,
198 POLICY_CONSTRAINTS_free,
199 POLICY_CONSTRAINTS_new,
202 PROFESSION_INFOS_free,
203 PROFESSION_INFOS_new,
204 PROFESSION_INFO_free,
206 PROXY_CERT_INFO_EXTENSION_free,
207 PROXY_CERT_INFO_EXTENSION_new,
212 RSA_OAEP_PARAMS_free,
262 X509_NAME_ENTRY_free,
280 - ASN1 object utilities
286 #include <openssl/asn1t.h>
288 DECLARE_ASN1_FUNCTIONS(type)
289 IMPLEMENT_ASN1_FUNCTIONS(stname)
291 typedef struct ASN1_ITEM_st ASN1_ITEM;
293 extern const ASN1_ITEM TYPE_it;
294 TYPE *TYPE_new(void);
295 TYPE *TYPE_dup(const TYPE *a);
296 void TYPE_free(TYPE *a);
297 int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
301 In the description below, I<TYPE> is used
302 as a placeholder for any of the OpenSSL datatypes, such as I<X509>.
304 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
306 Every ASN1 object as a global variable, TYPE_it, that describes the item
307 such as its fields. (On systems which cannot export variables from shared
308 libraries, the global is instead a function which returns a pointer to a
311 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
312 to generate the function declarations.
314 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
315 to generate the function bodies.
318 TYPE_new() allocates an empty object of the indicated type.
319 The object returned must be released by calling TYPE_free().
321 TYPE_dup() copies an existing object, leaving it untouched.
323 TYPE_free() releases the object and all pointers and sub-objects
326 TYPE_print_ctx() prints the object B<a> on the specified BIO B<out>.
327 Each line will be prefixed with B<indent> spaces.
328 The B<pctx> specifies the printing context and is for internal
329 use; use NULL to get the default behavior. If a print function is
330 user-defined, then pass in any B<pctx> down to any nested calls.
334 TYPE_new() and TYPE_dup() return a pointer to the object or NULL on failure.
336 TYPE_print_ctx() returns 1 on success or zero on failure.
340 Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
342 Licensed under the Apache License 2.0 (the "License"). You may not use
343 this file except in compliance with the License. You can obtain a copy
344 in the file LICENSE in the source distribution or at
345 L<https://www.openssl.org/source/license.html>.