5 DECLARE_ASN1_FUNCTIONS,
6 IMPLEMENT_ASN1_FUNCTIONS,
8 ACCESS_DESCRIPTION_free,
9 ACCESS_DESCRIPTION_new,
12 ASIdentifierChoice_free,
13 ASIdentifierChoice_new,
18 AUTHORITY_INFO_ACCESS_free,
19 AUTHORITY_INFO_ACCESS_new,
22 BASIC_CONSTRAINTS_free,
23 BASIC_CONSTRAINTS_new,
24 CERTIFICATEPOLICIES_free,
25 CERTIFICATEPOLICIES_new,
28 CMS_ContentInfo_print_ctx,
29 CMS_ReceiptRequest_free,
30 CMS_ReceiptRequest_new,
51 ESS_ISSUER_SERIAL_dup,
52 ESS_ISSUER_SERIAL_free,
53 ESS_ISSUER_SERIAL_new,
55 ESS_SIGNING_CERT_free,
57 EXTENDED_KEY_USAGE_free,
58 EXTENDED_KEY_USAGE_new,
70 IPAddressOrRange_free,
74 ISSUING_DIST_POINT_free,
75 ISSUING_DIST_POINT_new,
76 NAME_CONSTRAINTS_free,
78 NETSCAPE_CERT_SEQUENCE_free,
79 NETSCAPE_CERT_SEQUENCE_new,
105 OCSP_REVOKEDINFO_free,
106 OCSP_REVOKEDINFO_new,
107 OCSP_SERVICELOC_free,
111 OCSP_SINGLERESP_free,
123 PKCS12_MAC_DATA_free,
133 PKCS7_ENC_CONTENT_free,
134 PKCS7_ENC_CONTENT_new,
137 PKCS7_ISSUER_AND_SERIAL_free,
138 PKCS7_ISSUER_AND_SERIAL_new,
139 PKCS7_RECIP_INFO_free,
140 PKCS7_RECIP_INFO_new,
143 PKCS7_SIGNER_INFO_free,
144 PKCS7_SIGNER_INFO_new,
145 PKCS7_SIGN_ENVELOPE_free,
146 PKCS7_SIGN_ENVELOPE_new,
151 PKCS8_PRIV_KEY_INFO_free,
152 PKCS8_PRIV_KEY_INFO_new,
153 PKEY_USAGE_PERIOD_free,
154 PKEY_USAGE_PERIOD_new,
159 POLICY_CONSTRAINTS_free,
160 POLICY_CONSTRAINTS_new,
163 PROXY_CERT_INFO_EXTENSION_free,
164 PROXY_CERT_INFO_EXTENSION_new,
169 RSA_OAEP_PARAMS_free,
211 X509_CRL_METHOD_free,
220 X509_NAME_ENTRY_free,
238 - ASN1 object utilities
244 #include <openssl/asn1t.h>
246 DECLARE_ASN1_FUNCTIONS(type)
247 IMPLEMENT_ASN1_FUNCTIONS(stname)
249 typedef struct ASN1_ITEM_st ASN1_ITEM;
251 extern const ASN1_ITEM TYPE_it;
252 TYPE *TYPE_new(void);
253 TYPE *TYPE_dup(TYPE *a);
254 void TYPE_free(TYPE *a);
255 int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
259 In the description below, I<TYPE> is used
260 as a placeholder for any of the OpenSSL datatypes, such as I<X509>.
262 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
264 Every ASN1 object as a global variable, TYPE_it, that describes the item
265 such as its fields. (On systems which cannot export variables from shared
266 libraries, the global is instead a function which returns a pointer to a
269 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
270 to generate the function declarations.
272 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
273 to generate the function bodies.
276 TYPE_new() allocates an empty object of the indicated type.
277 The object returned must be released by calling TYPE_free().
279 TYPE_dup() copies an existing object.
281 TYPE_free() releases the object and all pointers and sub-objects
284 TYPE_print_ctx() prints the object B<a> on the specified BIO B<out>.
285 Each line will be prefixed with B<indent> spaces.
286 The B<pctx> specifies the printing context and is for internal
287 use; use NULL to get the default behavior. If a print function is
288 user-defined, then pass in any B<pctx> down to any nested calls.
292 TYPE_new() and TYPE_dup() return a pointer to the object or NULL on failure.
294 TYPE_print_ctx() returns 1 on success or zero on failure.
298 Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
300 Licensed under the OpenSSL license (the "License"). You may not use
301 this file except in compliance with the License. You can obtain a copy
302 in the file LICENSE in the source distribution or at
303 L<https://www.openssl.org/source/license.html>.