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