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,
47 ESS_ISSUER_SERIAL_dup,
48 ESS_ISSUER_SERIAL_free,
49 ESS_ISSUER_SERIAL_new,
51 ESS_SIGNING_CERT_free,
53 EXTENDED_KEY_USAGE_free,
54 EXTENDED_KEY_USAGE_new,
66 IPAddressOrRange_free,
70 ISSUING_DIST_POINT_free,
71 ISSUING_DIST_POINT_new,
72 NAME_CONSTRAINTS_free,
74 NETSCAPE_CERT_SEQUENCE_free,
75 NETSCAPE_CERT_SEQUENCE_new,
101 OCSP_REVOKEDINFO_free,
102 OCSP_REVOKEDINFO_new,
103 OCSP_SERVICELOC_free,
107 OCSP_SINGLERESP_free,
119 PKCS12_MAC_DATA_free,
129 PKCS7_ENC_CONTENT_free,
130 PKCS7_ENC_CONTENT_new,
133 PKCS7_ISSUER_AND_SERIAL_free,
134 PKCS7_ISSUER_AND_SERIAL_new,
135 PKCS7_RECIP_INFO_free,
136 PKCS7_RECIP_INFO_new,
139 PKCS7_SIGNER_INFO_free,
140 PKCS7_SIGNER_INFO_new,
141 PKCS7_SIGN_ENVELOPE_free,
142 PKCS7_SIGN_ENVELOPE_new,
147 PKCS8_PRIV_KEY_INFO_free,
148 PKCS8_PRIV_KEY_INFO_new,
149 PKEY_USAGE_PERIOD_free,
150 PKEY_USAGE_PERIOD_new,
155 POLICY_CONSTRAINTS_free,
156 POLICY_CONSTRAINTS_new,
159 PROXY_CERT_INFO_EXTENSION_free,
160 PROXY_CERT_INFO_EXTENSION_new,
165 RSA_OAEP_PARAMS_free,
207 X509_CRL_METHOD_free,
216 X509_NAME_ENTRY_free,
234 - ASN1 object utilities
238 #include <openssl/asn1t.h>
240 #define DECLARE_ASN1_FUNCTIONS(type) ...
241 #define IMPLEMENT_ASN1_FUNCTIONS(stname) ...
243 typedef struct ASN1_ITEM_st ASN1_ITEM;
245 extern const ASN1_ITEM TYPE_it;
246 TYPE *TYPE_new(void);
247 TYPE *TYPE_dup(TYPE *a);
248 void TYPE_free(TYPE *a);
249 int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx);
254 In the description below, I<TYPE> is used
255 as a placeholder for any of the OpenSSL datatypes, such as I<X509>.
257 The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
259 Every ASN1 object as a global variable, TYPE_it, that describes the item
260 such as its fields. (On systems which cannot export variables from shared
261 libraries, the global is instead a function which returns a pointer to a
264 The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
265 to generate the function declarations.
267 The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
268 to generate the function bodies.
271 TYPE_new() allocates an empty object of the indicated type.
272 The object returned must be released by calling TYPE_free().
274 TYPE_dup() copies an existing object.
276 TYPE_free() releases the object and all pointers and sub-objects
279 TYPE_print_ctx() prints the object B<a> on the specified BIO B<out>.
280 Each line will be prefixed with B<indent> spaces.
281 The B<pctx> specifies the printing context and is for internal
282 use; use NULL to get the default behavior. If a print function is
283 user-defined, then pass in any B<pctx> down to any nested calls.
287 TYPE_new() and TYPE_dup() return a pointer to the object or NULL on failure.
289 TYPE_print_ctx() returns 1 on success or zero on failure.
293 Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
295 Licensed under the OpenSSL license (the "License"). You may not use
296 this file except in compliance with the License. You can obtain a copy
297 in the file LICENSE in the source distribution or at
298 L<https://www.openssl.org/source/license.html>.