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,
129 PKCS12_MAC_DATA_free,
139 PKCS7_ENC_CONTENT_free,
140 PKCS7_ENC_CONTENT_new,
143 PKCS7_ISSUER_AND_SERIAL_free,
144 PKCS7_ISSUER_AND_SERIAL_new,
145 PKCS7_RECIP_INFO_free,
146 PKCS7_RECIP_INFO_new,
149 PKCS7_SIGNER_INFO_free,
150 PKCS7_SIGNER_INFO_new,
151 PKCS7_SIGN_ENVELOPE_free,
152 PKCS7_SIGN_ENVELOPE_new,
157 PKCS8_PRIV_KEY_INFO_free,
158 PKCS8_PRIV_KEY_INFO_new,
159 PKEY_USAGE_PERIOD_free,
160 PKEY_USAGE_PERIOD_new,
165 POLICY_CONSTRAINTS_free,
166 POLICY_CONSTRAINTS_new,
169 PROFESSION_INFO_free,
171 PROFESSION_INFOS_free,
172 PROFESSION_INFOS_new,
173 PROXY_CERT_INFO_EXTENSION_free,
174 PROXY_CERT_INFO_EXTENSION_new,
179 RSA_OAEP_PARAMS_free,
229 X509_NAME_ENTRY_free,
247 - ASN1 object utilities
253 #include <openssl/asn1t.h>
255 DECLARE_ASN1_FUNCTIONS(type)
256 IMPLEMENT_ASN1_FUNCTIONS(stname)
258 typedef struct ASN1_ITEM_st ASN1_ITEM;
260 extern const ASN1_ITEM TYPE_it;
261 TYPE *TYPE_new(void);
262 TYPE *TYPE_dup(TYPE *a);
263 void TYPE_free(TYPE *a);
264 int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
268 In the description below, I<TYPE> is used
269 as a placeholder for any of the OpenSSL datatypes, such as I<X509>.
271 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
273 Every ASN1 object as a global variable, TYPE_it, that describes the item
274 such as its fields. (On systems which cannot export variables from shared
275 libraries, the global is instead a function which returns a pointer to a
278 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
279 to generate the function declarations.
281 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
282 to generate the function bodies.
285 TYPE_new() allocates an empty object of the indicated type.
286 The object returned must be released by calling TYPE_free().
288 TYPE_dup() copies an existing object.
290 TYPE_free() releases the object and all pointers and sub-objects
293 TYPE_print_ctx() prints the object B<a> on the specified BIO B<out>.
294 Each line will be prefixed with B<indent> spaces.
295 The B<pctx> specifies the printing context and is for internal
296 use; use NULL to get the default behavior. If a print function is
297 user-defined, then pass in any B<pctx> down to any nested calls.
301 TYPE_new() and TYPE_dup() return a pointer to the object or NULL on failure.
303 TYPE_print_ctx() returns 1 on success or zero on failure.
307 Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
309 Licensed under the OpenSSL license (the "License"). You may not use
310 this file except in compliance with the License. You can obtain a copy
311 in the file LICENSE in the source distribution or at
312 L<https://www.openssl.org/source/license.html>.