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,
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,
127 OSSL_CRMF_PBMPARAMETER_free,
128 OSSL_CRMF_PBMPARAMETER_new,
129 OSSL_CRMF_PKIPUBLICATIONINFO_free,
130 OSSL_CRMF_PKIPUBLICATIONINFO_new,
143 PKCS12_MAC_DATA_free,
153 PKCS7_ENC_CONTENT_free,
154 PKCS7_ENC_CONTENT_new,
157 PKCS7_ISSUER_AND_SERIAL_free,
158 PKCS7_ISSUER_AND_SERIAL_new,
159 PKCS7_RECIP_INFO_free,
160 PKCS7_RECIP_INFO_new,
163 PKCS7_SIGNER_INFO_free,
164 PKCS7_SIGNER_INFO_new,
165 PKCS7_SIGN_ENVELOPE_free,
166 PKCS7_SIGN_ENVELOPE_new,
171 PKCS8_PRIV_KEY_INFO_free,
172 PKCS8_PRIV_KEY_INFO_new,
173 PKEY_USAGE_PERIOD_free,
174 PKEY_USAGE_PERIOD_new,
179 POLICY_CONSTRAINTS_free,
180 POLICY_CONSTRAINTS_new,
183 PROFESSION_INFO_free,
185 PROFESSION_INFOS_free,
186 PROFESSION_INFOS_new,
187 PROXY_CERT_INFO_EXTENSION_free,
188 PROXY_CERT_INFO_EXTENSION_new,
193 RSA_OAEP_PARAMS_free,
243 X509_NAME_ENTRY_free,
261 - ASN1 object utilities
267 #include <openssl/asn1t.h>
269 DECLARE_ASN1_FUNCTIONS(type)
270 IMPLEMENT_ASN1_FUNCTIONS(stname)
272 typedef struct ASN1_ITEM_st ASN1_ITEM;
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);
282 In the description below, I<TYPE> is used
283 as a placeholder for any of the OpenSSL datatypes, such as I<X509>.
285 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
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
292 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
293 to generate the function declarations.
295 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
296 to generate the function bodies.
299 TYPE_new() allocates an empty object of the indicated type.
300 The object returned must be released by calling TYPE_free().
302 TYPE_dup() copies an existing object, leaving it untouched.
304 TYPE_free() releases the object and all pointers and sub-objects
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.
315 TYPE_new() and TYPE_dup() return a pointer to the object or NULL on failure.
317 TYPE_print_ctx() returns 1 on success or zero on failure.
321 Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
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>.