• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1=pod
2
3=head1 NAME
4
5DECLARE_ASN1_FUNCTIONS,
6IMPLEMENT_ASN1_FUNCTIONS,
7ASN1_ITEM,
8ACCESS_DESCRIPTION_free,
9ACCESS_DESCRIPTION_new,
10ADMISSIONS_free,
11ADMISSIONS_new,
12ADMISSION_SYNTAX_free,
13ADMISSION_SYNTAX_new,
14ASIdOrRange_free,
15ASIdOrRange_new,
16ASIdentifierChoice_free,
17ASIdentifierChoice_new,
18ASIdentifiers_free,
19ASIdentifiers_new,
20ASRange_free,
21ASRange_new,
22AUTHORITY_INFO_ACCESS_free,
23AUTHORITY_INFO_ACCESS_new,
24AUTHORITY_KEYID_free,
25AUTHORITY_KEYID_new,
26BASIC_CONSTRAINTS_free,
27BASIC_CONSTRAINTS_new,
28CERTIFICATEPOLICIES_free,
29CERTIFICATEPOLICIES_new,
30CMS_ContentInfo_free,
31CMS_ContentInfo_new,
32CMS_ContentInfo_print_ctx,
33CMS_ReceiptRequest_free,
34CMS_ReceiptRequest_new,
35CRL_DIST_POINTS_free,
36CRL_DIST_POINTS_new,
37DIRECTORYSTRING_free,
38DIRECTORYSTRING_new,
39DISPLAYTEXT_free,
40DISPLAYTEXT_new,
41DIST_POINT_NAME_free,
42DIST_POINT_NAME_new,
43DIST_POINT_free,
44DIST_POINT_new,
45DSAparams_dup,
46ECPARAMETERS_free,
47ECPARAMETERS_new,
48ECPKPARAMETERS_free,
49ECPKPARAMETERS_new,
50EDIPARTYNAME_free,
51EDIPARTYNAME_new,
52ESS_CERT_ID_dup,
53ESS_CERT_ID_free,
54ESS_CERT_ID_new,
55ESS_ISSUER_SERIAL_dup,
56ESS_ISSUER_SERIAL_free,
57ESS_ISSUER_SERIAL_new,
58ESS_SIGNING_CERT_dup,
59ESS_SIGNING_CERT_free,
60ESS_SIGNING_CERT_new,
61EXTENDED_KEY_USAGE_free,
62EXTENDED_KEY_USAGE_new,
63GENERAL_NAMES_free,
64GENERAL_NAMES_new,
65GENERAL_NAME_dup,
66GENERAL_NAME_free,
67GENERAL_NAME_new,
68GENERAL_SUBTREE_free,
69GENERAL_SUBTREE_new,
70IPAddressChoice_free,
71IPAddressChoice_new,
72IPAddressFamily_free,
73IPAddressFamily_new,
74IPAddressOrRange_free,
75IPAddressOrRange_new,
76IPAddressRange_free,
77IPAddressRange_new,
78ISSUING_DIST_POINT_free,
79ISSUING_DIST_POINT_new,
80NAME_CONSTRAINTS_free,
81NAME_CONSTRAINTS_new,
82NAMING_AUTHORITY_free,
83NAMING_AUTHORITY_new,
84NETSCAPE_CERT_SEQUENCE_free,
85NETSCAPE_CERT_SEQUENCE_new,
86NETSCAPE_SPKAC_free,
87NETSCAPE_SPKAC_new,
88NETSCAPE_SPKI_free,
89NETSCAPE_SPKI_new,
90NOTICEREF_free,
91NOTICEREF_new,
92OCSP_BASICRESP_free,
93OCSP_BASICRESP_new,
94OCSP_CERTID_dup,
95OCSP_CERTID_new,
96OCSP_CERTSTATUS_free,
97OCSP_CERTSTATUS_new,
98OCSP_CRLID_free,
99OCSP_CRLID_new,
100OCSP_ONEREQ_free,
101OCSP_ONEREQ_new,
102OCSP_REQINFO_free,
103OCSP_REQINFO_new,
104OCSP_RESPBYTES_free,
105OCSP_RESPBYTES_new,
106OCSP_RESPDATA_free,
107OCSP_RESPDATA_new,
108OCSP_RESPID_free,
109OCSP_RESPID_new,
110OCSP_RESPONSE_new,
111OCSP_REVOKEDINFO_free,
112OCSP_REVOKEDINFO_new,
113OCSP_SERVICELOC_free,
114OCSP_SERVICELOC_new,
115OCSP_SIGNATURE_free,
116OCSP_SIGNATURE_new,
117OCSP_SINGLERESP_free,
118OCSP_SINGLERESP_new,
119OTHERNAME_free,
120OTHERNAME_new,
121PBE2PARAM_free,
122PBE2PARAM_new,
123PBEPARAM_free,
124PBEPARAM_new,
125PBKDF2PARAM_free,
126PBKDF2PARAM_new,
127PKCS12_BAGS_free,
128PKCS12_BAGS_new,
129PKCS12_MAC_DATA_free,
130PKCS12_MAC_DATA_new,
131PKCS12_SAFEBAG_free,
132PKCS12_SAFEBAG_new,
133PKCS12_free,
134PKCS12_new,
135PKCS7_DIGEST_free,
136PKCS7_DIGEST_new,
137PKCS7_ENCRYPT_free,
138PKCS7_ENCRYPT_new,
139PKCS7_ENC_CONTENT_free,
140PKCS7_ENC_CONTENT_new,
141PKCS7_ENVELOPE_free,
142PKCS7_ENVELOPE_new,
143PKCS7_ISSUER_AND_SERIAL_free,
144PKCS7_ISSUER_AND_SERIAL_new,
145PKCS7_RECIP_INFO_free,
146PKCS7_RECIP_INFO_new,
147PKCS7_SIGNED_free,
148PKCS7_SIGNED_new,
149PKCS7_SIGNER_INFO_free,
150PKCS7_SIGNER_INFO_new,
151PKCS7_SIGN_ENVELOPE_free,
152PKCS7_SIGN_ENVELOPE_new,
153PKCS7_dup,
154PKCS7_free,
155PKCS7_new,
156PKCS7_print_ctx,
157PKCS8_PRIV_KEY_INFO_free,
158PKCS8_PRIV_KEY_INFO_new,
159PKEY_USAGE_PERIOD_free,
160PKEY_USAGE_PERIOD_new,
161POLICYINFO_free,
162POLICYINFO_new,
163POLICYQUALINFO_free,
164POLICYQUALINFO_new,
165POLICY_CONSTRAINTS_free,
166POLICY_CONSTRAINTS_new,
167POLICY_MAPPING_free,
168POLICY_MAPPING_new,
169PROFESSION_INFO_free,
170PROFESSION_INFO_new,
171PROFESSION_INFOS_free,
172PROFESSION_INFOS_new,
173PROXY_CERT_INFO_EXTENSION_free,
174PROXY_CERT_INFO_EXTENSION_new,
175PROXY_POLICY_free,
176PROXY_POLICY_new,
177RSAPrivateKey_dup,
178RSAPublicKey_dup,
179RSA_OAEP_PARAMS_free,
180RSA_OAEP_PARAMS_new,
181RSA_PSS_PARAMS_free,
182RSA_PSS_PARAMS_new,
183SCRYPT_PARAMS_free,
184SCRYPT_PARAMS_new,
185SXNETID_free,
186SXNETID_new,
187SXNET_free,
188SXNET_new,
189TLS_FEATURE_free,
190TLS_FEATURE_new,
191TS_ACCURACY_dup,
192TS_ACCURACY_free,
193TS_ACCURACY_new,
194TS_MSG_IMPRINT_dup,
195TS_MSG_IMPRINT_free,
196TS_MSG_IMPRINT_new,
197TS_REQ_dup,
198TS_REQ_free,
199TS_REQ_new,
200TS_RESP_dup,
201TS_RESP_free,
202TS_RESP_new,
203TS_STATUS_INFO_dup,
204TS_STATUS_INFO_free,
205TS_STATUS_INFO_new,
206TS_TST_INFO_dup,
207TS_TST_INFO_free,
208TS_TST_INFO_new,
209USERNOTICE_free,
210USERNOTICE_new,
211X509_ALGOR_free,
212X509_ALGOR_new,
213X509_ATTRIBUTE_dup,
214X509_ATTRIBUTE_free,
215X509_ATTRIBUTE_new,
216X509_CERT_AUX_free,
217X509_CERT_AUX_new,
218X509_CINF_free,
219X509_CINF_new,
220X509_CRL_INFO_free,
221X509_CRL_INFO_new,
222X509_CRL_dup,
223X509_CRL_free,
224X509_CRL_new,
225X509_EXTENSION_dup,
226X509_EXTENSION_free,
227X509_EXTENSION_new,
228X509_NAME_ENTRY_dup,
229X509_NAME_ENTRY_free,
230X509_NAME_ENTRY_new,
231X509_NAME_dup,
232X509_NAME_free,
233X509_NAME_new,
234X509_REQ_INFO_free,
235X509_REQ_INFO_new,
236X509_REQ_dup,
237X509_REQ_free,
238X509_REQ_new,
239X509_REVOKED_dup,
240X509_REVOKED_free,
241X509_REVOKED_new,
242X509_SIG_free,
243X509_SIG_new,
244X509_VAL_free,
245X509_VAL_new,
246X509_dup,
247- ASN1 object utilities
248
249=head1 SYNOPSIS
250
251=for comment generic
252
253 #include <openssl/asn1t.h>
254
255 DECLARE_ASN1_FUNCTIONS(type)
256 IMPLEMENT_ASN1_FUNCTIONS(stname)
257
258 typedef struct ASN1_ITEM_st ASN1_ITEM;
259
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);
265
266=head1 DESCRIPTION
267
268In the description below, I<TYPE> is used
269as a placeholder for any of the OpenSSL datatypes, such as I<X509>.
270
271The OpenSSL ASN1 parsing library templates are like a data-driven bytecode
272interpreter.
273Every ASN1 object as a global variable, TYPE_it, that describes the item
274such as its fields.  (On systems which cannot export variables from shared
275libraries, the global is instead a function which returns a pointer to a
276static variable.
277
278The macro DECLARE_ASN1_FUNCTIONS() is typically used in header files
279to generate the function declarations.
280
281The macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file
282to generate the function bodies.
283
284
285TYPE_new() allocates an empty object of the indicated type.
286The object returned must be released by calling TYPE_free().
287
288TYPE_dup() copies an existing object.
289
290TYPE_free() releases the object and all pointers and sub-objects
291within it.
292
293TYPE_print_ctx() prints the object B<a> on the specified BIO B<out>.
294Each line will be prefixed with B<indent> spaces.
295The B<pctx> specifies the printing context and is for internal
296use; use NULL to get the default behavior.  If a print function is
297user-defined, then pass in any B<pctx> down to any nested calls.
298
299=head1 RETURN VALUES
300
301TYPE_new() and TYPE_dup() return a pointer to the object or NULL on failure.
302
303TYPE_print_ctx() returns 1 on success or zero on failure.
304
305=head1 COPYRIGHT
306
307Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
308
309Licensed under the OpenSSL license (the "License").  You may not use
310this file except in compliance with the License.  You can obtain a copy
311in the file LICENSE in the source distribution or at
312L<https://www.openssl.org/source/license.html>.
313
314=cut
315