1e71b7053SJung-uk Kim=pod 2e71b7053SJung-uk Kim 3e71b7053SJung-uk Kim=head1 NAME 4e71b7053SJung-uk Kim 5e71b7053SJung-uk KimDECLARE_ASN1_FUNCTIONS, 6e71b7053SJung-uk KimIMPLEMENT_ASN1_FUNCTIONS, 7e71b7053SJung-uk KimASN1_ITEM, 8e71b7053SJung-uk KimACCESS_DESCRIPTION_free, 9e71b7053SJung-uk KimACCESS_DESCRIPTION_new, 10e71b7053SJung-uk KimADMISSIONS_free, 11e71b7053SJung-uk KimADMISSIONS_new, 12e71b7053SJung-uk KimADMISSION_SYNTAX_free, 13e71b7053SJung-uk KimADMISSION_SYNTAX_new, 14e71b7053SJung-uk KimASIdOrRange_free, 15e71b7053SJung-uk KimASIdOrRange_new, 16e71b7053SJung-uk KimASIdentifierChoice_free, 17e71b7053SJung-uk KimASIdentifierChoice_new, 18e71b7053SJung-uk KimASIdentifiers_free, 19e71b7053SJung-uk KimASIdentifiers_new, 20e71b7053SJung-uk KimASRange_free, 21e71b7053SJung-uk KimASRange_new, 22e71b7053SJung-uk KimAUTHORITY_INFO_ACCESS_free, 23e71b7053SJung-uk KimAUTHORITY_INFO_ACCESS_new, 24e71b7053SJung-uk KimAUTHORITY_KEYID_free, 25e71b7053SJung-uk KimAUTHORITY_KEYID_new, 26e71b7053SJung-uk KimBASIC_CONSTRAINTS_free, 27e71b7053SJung-uk KimBASIC_CONSTRAINTS_new, 28e71b7053SJung-uk KimCERTIFICATEPOLICIES_free, 29e71b7053SJung-uk KimCERTIFICATEPOLICIES_new, 30e71b7053SJung-uk KimCMS_ContentInfo_free, 31e71b7053SJung-uk KimCMS_ContentInfo_new, 32b077aed3SPierre ProncheryCMS_ContentInfo_new_ex, 33e71b7053SJung-uk KimCMS_ContentInfo_print_ctx, 34e71b7053SJung-uk KimCMS_ReceiptRequest_free, 35e71b7053SJung-uk KimCMS_ReceiptRequest_new, 36e71b7053SJung-uk KimCRL_DIST_POINTS_free, 37e71b7053SJung-uk KimCRL_DIST_POINTS_new, 38e71b7053SJung-uk KimDIRECTORYSTRING_free, 39e71b7053SJung-uk KimDIRECTORYSTRING_new, 40e71b7053SJung-uk KimDISPLAYTEXT_free, 41e71b7053SJung-uk KimDISPLAYTEXT_new, 42e71b7053SJung-uk KimDIST_POINT_NAME_free, 43e71b7053SJung-uk KimDIST_POINT_NAME_new, 44e71b7053SJung-uk KimDIST_POINT_free, 45e71b7053SJung-uk KimDIST_POINT_new, 46e71b7053SJung-uk KimDSAparams_dup, 47e71b7053SJung-uk KimECPARAMETERS_free, 48e71b7053SJung-uk KimECPARAMETERS_new, 49e71b7053SJung-uk KimECPKPARAMETERS_free, 50e71b7053SJung-uk KimECPKPARAMETERS_new, 51e71b7053SJung-uk KimEDIPARTYNAME_free, 52e71b7053SJung-uk KimEDIPARTYNAME_new, 53e71b7053SJung-uk KimESS_CERT_ID_dup, 54e71b7053SJung-uk KimESS_CERT_ID_free, 55e71b7053SJung-uk KimESS_CERT_ID_new, 56b077aed3SPierre ProncheryESS_CERT_ID_V2_dup, 57b077aed3SPierre ProncheryESS_CERT_ID_V2_free, 58b077aed3SPierre ProncheryESS_CERT_ID_V2_new, 59e71b7053SJung-uk KimESS_ISSUER_SERIAL_dup, 60e71b7053SJung-uk KimESS_ISSUER_SERIAL_free, 61e71b7053SJung-uk KimESS_ISSUER_SERIAL_new, 62e71b7053SJung-uk KimESS_SIGNING_CERT_dup, 63e71b7053SJung-uk KimESS_SIGNING_CERT_free, 64b077aed3SPierre ProncheryESS_SIGNING_CERT_it, 65e71b7053SJung-uk KimESS_SIGNING_CERT_new, 66b077aed3SPierre ProncheryESS_SIGNING_CERT_V2_dup, 67b077aed3SPierre ProncheryESS_SIGNING_CERT_V2_free, 68b077aed3SPierre ProncheryESS_SIGNING_CERT_V2_it, 69b077aed3SPierre ProncheryESS_SIGNING_CERT_V2_new, 70e71b7053SJung-uk KimEXTENDED_KEY_USAGE_free, 71e71b7053SJung-uk KimEXTENDED_KEY_USAGE_new, 72e71b7053SJung-uk KimGENERAL_NAMES_free, 73e71b7053SJung-uk KimGENERAL_NAMES_new, 74e71b7053SJung-uk KimGENERAL_NAME_dup, 75e71b7053SJung-uk KimGENERAL_NAME_free, 76e71b7053SJung-uk KimGENERAL_NAME_new, 77e71b7053SJung-uk KimGENERAL_SUBTREE_free, 78e71b7053SJung-uk KimGENERAL_SUBTREE_new, 79e71b7053SJung-uk KimIPAddressChoice_free, 80e71b7053SJung-uk KimIPAddressChoice_new, 81e71b7053SJung-uk KimIPAddressFamily_free, 82e71b7053SJung-uk KimIPAddressFamily_new, 83e71b7053SJung-uk KimIPAddressOrRange_free, 84e71b7053SJung-uk KimIPAddressOrRange_new, 85e71b7053SJung-uk KimIPAddressRange_free, 86e71b7053SJung-uk KimIPAddressRange_new, 87b077aed3SPierre ProncheryISSUER_SIGN_TOOL_free, 88b077aed3SPierre ProncheryISSUER_SIGN_TOOL_it, 89b077aed3SPierre ProncheryISSUER_SIGN_TOOL_new, 90e71b7053SJung-uk KimISSUING_DIST_POINT_free, 91b077aed3SPierre ProncheryISSUING_DIST_POINT_it, 92e71b7053SJung-uk KimISSUING_DIST_POINT_new, 93e71b7053SJung-uk KimNAME_CONSTRAINTS_free, 94e71b7053SJung-uk KimNAME_CONSTRAINTS_new, 95e71b7053SJung-uk KimNAMING_AUTHORITY_free, 96e71b7053SJung-uk KimNAMING_AUTHORITY_new, 97e71b7053SJung-uk KimNETSCAPE_CERT_SEQUENCE_free, 98e71b7053SJung-uk KimNETSCAPE_CERT_SEQUENCE_new, 99e71b7053SJung-uk KimNETSCAPE_SPKAC_free, 100e71b7053SJung-uk KimNETSCAPE_SPKAC_new, 101e71b7053SJung-uk KimNETSCAPE_SPKI_free, 102e71b7053SJung-uk KimNETSCAPE_SPKI_new, 103e71b7053SJung-uk KimNOTICEREF_free, 104e71b7053SJung-uk KimNOTICEREF_new, 105e71b7053SJung-uk KimOCSP_BASICRESP_free, 106e71b7053SJung-uk KimOCSP_BASICRESP_new, 107e71b7053SJung-uk KimOCSP_CERTID_dup, 108e71b7053SJung-uk KimOCSP_CERTID_new, 109e71b7053SJung-uk KimOCSP_CERTSTATUS_free, 110e71b7053SJung-uk KimOCSP_CERTSTATUS_new, 111e71b7053SJung-uk KimOCSP_CRLID_free, 112e71b7053SJung-uk KimOCSP_CRLID_new, 113e71b7053SJung-uk KimOCSP_ONEREQ_free, 114e71b7053SJung-uk KimOCSP_ONEREQ_new, 115e71b7053SJung-uk KimOCSP_REQINFO_free, 116e71b7053SJung-uk KimOCSP_REQINFO_new, 117e71b7053SJung-uk KimOCSP_RESPBYTES_free, 118e71b7053SJung-uk KimOCSP_RESPBYTES_new, 119e71b7053SJung-uk KimOCSP_RESPDATA_free, 120e71b7053SJung-uk KimOCSP_RESPDATA_new, 121e71b7053SJung-uk KimOCSP_RESPID_free, 122e71b7053SJung-uk KimOCSP_RESPID_new, 123e71b7053SJung-uk KimOCSP_RESPONSE_new, 124e71b7053SJung-uk KimOCSP_REVOKEDINFO_free, 125e71b7053SJung-uk KimOCSP_REVOKEDINFO_new, 126e71b7053SJung-uk KimOCSP_SERVICELOC_free, 127e71b7053SJung-uk KimOCSP_SERVICELOC_new, 128e71b7053SJung-uk KimOCSP_SIGNATURE_free, 129e71b7053SJung-uk KimOCSP_SIGNATURE_new, 130e71b7053SJung-uk KimOCSP_SINGLERESP_free, 131e71b7053SJung-uk KimOCSP_SINGLERESP_new, 132b077aed3SPierre ProncheryOSSL_CMP_ITAV_dup, 133b077aed3SPierre ProncheryOSSL_CMP_ITAV_free, 134b077aed3SPierre ProncheryOSSL_CMP_MSG_dup, 135b077aed3SPierre ProncheryOSSL_CMP_MSG_it, 136b077aed3SPierre ProncheryOSSL_CMP_MSG_free, 137b077aed3SPierre ProncheryOSSL_CMP_PKIHEADER_free, 138b077aed3SPierre ProncheryOSSL_CMP_PKIHEADER_it, 139b077aed3SPierre ProncheryOSSL_CMP_PKIHEADER_new, 140b077aed3SPierre ProncheryOSSL_CMP_PKISI_dup, 141b077aed3SPierre ProncheryOSSL_CMP_PKISI_free, 142b077aed3SPierre ProncheryOSSL_CMP_PKISI_it, 143b077aed3SPierre ProncheryOSSL_CMP_PKISI_new, 144b077aed3SPierre ProncheryOSSL_CMP_PKISTATUS_it, 145b077aed3SPierre ProncheryOSSL_CRMF_CERTID_dup, 146b077aed3SPierre ProncheryOSSL_CRMF_CERTID_free, 147b077aed3SPierre ProncheryOSSL_CRMF_CERTID_it, 148b077aed3SPierre ProncheryOSSL_CRMF_CERTID_new, 149b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_free, 150b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_it, 151b077aed3SPierre ProncheryOSSL_CRMF_CERTTEMPLATE_new, 152b077aed3SPierre ProncheryOSSL_CRMF_ENCRYPTEDVALUE_free, 153b077aed3SPierre ProncheryOSSL_CRMF_ENCRYPTEDVALUE_it, 154b077aed3SPierre ProncheryOSSL_CRMF_ENCRYPTEDVALUE_new, 155b077aed3SPierre ProncheryOSSL_CRMF_MSGS_free, 156b077aed3SPierre ProncheryOSSL_CRMF_MSGS_it, 157b077aed3SPierre ProncheryOSSL_CRMF_MSGS_new, 158b077aed3SPierre ProncheryOSSL_CRMF_MSG_dup, 159b077aed3SPierre ProncheryOSSL_CRMF_MSG_free, 160b077aed3SPierre ProncheryOSSL_CRMF_MSG_it, 161b077aed3SPierre ProncheryOSSL_CRMF_MSG_new, 162b077aed3SPierre ProncheryOSSL_CRMF_PBMPARAMETER_free, 163b077aed3SPierre ProncheryOSSL_CRMF_PBMPARAMETER_it, 164b077aed3SPierre ProncheryOSSL_CRMF_PBMPARAMETER_new, 165b077aed3SPierre ProncheryOSSL_CRMF_PKIPUBLICATIONINFO_free, 166b077aed3SPierre ProncheryOSSL_CRMF_PKIPUBLICATIONINFO_it, 167b077aed3SPierre ProncheryOSSL_CRMF_PKIPUBLICATIONINFO_new, 168b077aed3SPierre ProncheryOSSL_CRMF_SINGLEPUBINFO_free, 169b077aed3SPierre ProncheryOSSL_CRMF_SINGLEPUBINFO_it, 170b077aed3SPierre ProncheryOSSL_CRMF_SINGLEPUBINFO_new, 171e71b7053SJung-uk KimOTHERNAME_free, 172e71b7053SJung-uk KimOTHERNAME_new, 173e71b7053SJung-uk KimPBE2PARAM_free, 174e71b7053SJung-uk KimPBE2PARAM_new, 175e71b7053SJung-uk KimPBEPARAM_free, 176e71b7053SJung-uk KimPBEPARAM_new, 177e71b7053SJung-uk KimPBKDF2PARAM_free, 178e71b7053SJung-uk KimPBKDF2PARAM_new, 179e71b7053SJung-uk KimPKCS12_BAGS_free, 180e71b7053SJung-uk KimPKCS12_BAGS_new, 181e71b7053SJung-uk KimPKCS12_MAC_DATA_free, 182e71b7053SJung-uk KimPKCS12_MAC_DATA_new, 183e71b7053SJung-uk KimPKCS12_SAFEBAG_free, 184e71b7053SJung-uk KimPKCS12_SAFEBAG_new, 185e71b7053SJung-uk KimPKCS12_free, 186e71b7053SJung-uk KimPKCS12_new, 187e71b7053SJung-uk KimPKCS7_DIGEST_free, 188e71b7053SJung-uk KimPKCS7_DIGEST_new, 189e71b7053SJung-uk KimPKCS7_ENCRYPT_free, 190e71b7053SJung-uk KimPKCS7_ENCRYPT_new, 191e71b7053SJung-uk KimPKCS7_ENC_CONTENT_free, 192e71b7053SJung-uk KimPKCS7_ENC_CONTENT_new, 193e71b7053SJung-uk KimPKCS7_ENVELOPE_free, 194e71b7053SJung-uk KimPKCS7_ENVELOPE_new, 195e71b7053SJung-uk KimPKCS7_ISSUER_AND_SERIAL_free, 196e71b7053SJung-uk KimPKCS7_ISSUER_AND_SERIAL_new, 197e71b7053SJung-uk KimPKCS7_RECIP_INFO_free, 198e71b7053SJung-uk KimPKCS7_RECIP_INFO_new, 199e71b7053SJung-uk KimPKCS7_SIGNED_free, 200e71b7053SJung-uk KimPKCS7_SIGNED_new, 201e71b7053SJung-uk KimPKCS7_SIGNER_INFO_free, 202e71b7053SJung-uk KimPKCS7_SIGNER_INFO_new, 203e71b7053SJung-uk KimPKCS7_SIGN_ENVELOPE_free, 204e71b7053SJung-uk KimPKCS7_SIGN_ENVELOPE_new, 205e71b7053SJung-uk KimPKCS7_dup, 206e71b7053SJung-uk KimPKCS7_free, 207b077aed3SPierre ProncheryPKCS7_new_ex, 208e71b7053SJung-uk KimPKCS7_new, 209e71b7053SJung-uk KimPKCS7_print_ctx, 210e71b7053SJung-uk KimPKCS8_PRIV_KEY_INFO_free, 211e71b7053SJung-uk KimPKCS8_PRIV_KEY_INFO_new, 212e71b7053SJung-uk KimPKEY_USAGE_PERIOD_free, 213e71b7053SJung-uk KimPKEY_USAGE_PERIOD_new, 214e71b7053SJung-uk KimPOLICYINFO_free, 215e71b7053SJung-uk KimPOLICYINFO_new, 216e71b7053SJung-uk KimPOLICYQUALINFO_free, 217e71b7053SJung-uk KimPOLICYQUALINFO_new, 218e71b7053SJung-uk KimPOLICY_CONSTRAINTS_free, 219e71b7053SJung-uk KimPOLICY_CONSTRAINTS_new, 220e71b7053SJung-uk KimPOLICY_MAPPING_free, 221e71b7053SJung-uk KimPOLICY_MAPPING_new, 222e71b7053SJung-uk KimPROFESSION_INFOS_free, 223e71b7053SJung-uk KimPROFESSION_INFOS_new, 224b077aed3SPierre ProncheryPROFESSION_INFO_free, 225b077aed3SPierre ProncheryPROFESSION_INFO_new, 226e71b7053SJung-uk KimPROXY_CERT_INFO_EXTENSION_free, 227e71b7053SJung-uk KimPROXY_CERT_INFO_EXTENSION_new, 228e71b7053SJung-uk KimPROXY_POLICY_free, 229e71b7053SJung-uk KimPROXY_POLICY_new, 230e71b7053SJung-uk KimRSAPrivateKey_dup, 231e71b7053SJung-uk KimRSAPublicKey_dup, 232e71b7053SJung-uk KimRSA_OAEP_PARAMS_free, 233e71b7053SJung-uk KimRSA_OAEP_PARAMS_new, 234e71b7053SJung-uk KimRSA_PSS_PARAMS_free, 235e71b7053SJung-uk KimRSA_PSS_PARAMS_new, 236b077aed3SPierre ProncheryRSA_PSS_PARAMS_dup, 237e71b7053SJung-uk KimSCRYPT_PARAMS_free, 238e71b7053SJung-uk KimSCRYPT_PARAMS_new, 239e71b7053SJung-uk KimSXNETID_free, 240e71b7053SJung-uk KimSXNETID_new, 241e71b7053SJung-uk KimSXNET_free, 242e71b7053SJung-uk KimSXNET_new, 243e71b7053SJung-uk KimTLS_FEATURE_free, 244e71b7053SJung-uk KimTLS_FEATURE_new, 245e71b7053SJung-uk KimTS_ACCURACY_dup, 246e71b7053SJung-uk KimTS_ACCURACY_free, 247e71b7053SJung-uk KimTS_ACCURACY_new, 248e71b7053SJung-uk KimTS_MSG_IMPRINT_dup, 249e71b7053SJung-uk KimTS_MSG_IMPRINT_free, 250e71b7053SJung-uk KimTS_MSG_IMPRINT_new, 251e71b7053SJung-uk KimTS_REQ_dup, 252e71b7053SJung-uk KimTS_REQ_free, 253e71b7053SJung-uk KimTS_REQ_new, 254e71b7053SJung-uk KimTS_RESP_dup, 255e71b7053SJung-uk KimTS_RESP_free, 256e71b7053SJung-uk KimTS_RESP_new, 257e71b7053SJung-uk KimTS_STATUS_INFO_dup, 258e71b7053SJung-uk KimTS_STATUS_INFO_free, 259e71b7053SJung-uk KimTS_STATUS_INFO_new, 260e71b7053SJung-uk KimTS_TST_INFO_dup, 261e71b7053SJung-uk KimTS_TST_INFO_free, 262e71b7053SJung-uk KimTS_TST_INFO_new, 263e71b7053SJung-uk KimUSERNOTICE_free, 264e71b7053SJung-uk KimUSERNOTICE_new, 265e71b7053SJung-uk KimX509_ALGOR_free, 266b077aed3SPierre ProncheryX509_ALGOR_it, 267e71b7053SJung-uk KimX509_ALGOR_new, 268e71b7053SJung-uk KimX509_ATTRIBUTE_dup, 269e71b7053SJung-uk KimX509_ATTRIBUTE_free, 270e71b7053SJung-uk KimX509_ATTRIBUTE_new, 271e71b7053SJung-uk KimX509_CERT_AUX_free, 272e71b7053SJung-uk KimX509_CERT_AUX_new, 273e71b7053SJung-uk KimX509_CINF_free, 274e71b7053SJung-uk KimX509_CINF_new, 275e71b7053SJung-uk KimX509_CRL_INFO_free, 276e71b7053SJung-uk KimX509_CRL_INFO_new, 277e71b7053SJung-uk KimX509_CRL_dup, 278e71b7053SJung-uk KimX509_CRL_free, 279b077aed3SPierre ProncheryX509_CRL_new_ex, 280e71b7053SJung-uk KimX509_CRL_new, 281e71b7053SJung-uk KimX509_EXTENSION_dup, 282e71b7053SJung-uk KimX509_EXTENSION_free, 283e71b7053SJung-uk KimX509_EXTENSION_new, 284e71b7053SJung-uk KimX509_NAME_ENTRY_dup, 285e71b7053SJung-uk KimX509_NAME_ENTRY_free, 286e71b7053SJung-uk KimX509_NAME_ENTRY_new, 287e71b7053SJung-uk KimX509_NAME_dup, 288e71b7053SJung-uk KimX509_NAME_free, 289e71b7053SJung-uk KimX509_NAME_new, 290e71b7053SJung-uk KimX509_REQ_INFO_free, 291e71b7053SJung-uk KimX509_REQ_INFO_new, 292e71b7053SJung-uk KimX509_REQ_dup, 293e71b7053SJung-uk KimX509_REQ_free, 294e71b7053SJung-uk KimX509_REQ_new, 295b077aed3SPierre ProncheryX509_REQ_new_ex, 296e71b7053SJung-uk KimX509_REVOKED_dup, 297e71b7053SJung-uk KimX509_REVOKED_free, 298e71b7053SJung-uk KimX509_REVOKED_new, 299e71b7053SJung-uk KimX509_SIG_free, 300e71b7053SJung-uk KimX509_SIG_new, 301e71b7053SJung-uk KimX509_VAL_free, 302e71b7053SJung-uk KimX509_VAL_new, 303e71b7053SJung-uk KimX509_dup, 304e71b7053SJung-uk Kim- ASN1 object utilities 305e71b7053SJung-uk Kim 306e71b7053SJung-uk Kim=head1 SYNOPSIS 307e71b7053SJung-uk Kim 308b077aed3SPierre Pronchery=for openssl generic 309e71b7053SJung-uk Kim 310e71b7053SJung-uk Kim #include <openssl/asn1t.h> 311e71b7053SJung-uk Kim 312e71b7053SJung-uk Kim DECLARE_ASN1_FUNCTIONS(type) 313e71b7053SJung-uk Kim IMPLEMENT_ASN1_FUNCTIONS(stname) 314e71b7053SJung-uk Kim 315e71b7053SJung-uk Kim typedef struct ASN1_ITEM_st ASN1_ITEM; 316e71b7053SJung-uk Kim 317e71b7053SJung-uk Kim extern const ASN1_ITEM TYPE_it; 318e71b7053SJung-uk Kim TYPE *TYPE_new(void); 319b077aed3SPierre Pronchery TYPE *TYPE_dup(const TYPE *a); 320e71b7053SJung-uk Kim void TYPE_free(TYPE *a); 321e71b7053SJung-uk Kim int TYPE_print_ctx(BIO *out, TYPE *a, int indent, const ASN1_PCTX *pctx); 322e71b7053SJung-uk Kim 323b077aed3SPierre ProncheryThe following functions have been deprecated since OpenSSL 3.0, and can be 324b077aed3SPierre Proncheryhidden entirely by defining B<OPENSSL_API_COMPAT> with a suitable version value, 325b077aed3SPierre Proncherysee L<openssl_user_macros(7)>: 326b077aed3SPierre Pronchery 327b077aed3SPierre Pronchery DSA *DSAparams_dup(const DSA *dsa); 328b077aed3SPierre Pronchery RSA *RSAPrivateKey_dup(const RSA *rsa); 329b077aed3SPierre Pronchery RSA *RSAPublicKey_dup(const RSA *rsa); 330b077aed3SPierre Pronchery 331e71b7053SJung-uk Kim=head1 DESCRIPTION 332e71b7053SJung-uk Kim 333b077aed3SPierre ProncheryIn the description below, B<I<TYPE>> is used 334b077aed3SPierre Proncheryas a placeholder for any of the OpenSSL datatypes, such as B<X509>. 335e71b7053SJung-uk Kim 336e71b7053SJung-uk KimThe OpenSSL ASN1 parsing library templates are like a data-driven bytecode 337e71b7053SJung-uk Kiminterpreter. 338e71b7053SJung-uk KimEvery ASN1 object as a global variable, TYPE_it, that describes the item 339e71b7053SJung-uk Kimsuch as its fields. (On systems which cannot export variables from shared 340e71b7053SJung-uk Kimlibraries, the global is instead a function which returns a pointer to a 341e71b7053SJung-uk Kimstatic variable. 342e71b7053SJung-uk Kim 343e71b7053SJung-uk KimThe macro DECLARE_ASN1_FUNCTIONS() is typically used in header files 344e71b7053SJung-uk Kimto generate the function declarations. 345e71b7053SJung-uk Kim 346e71b7053SJung-uk KimThe macro IMPLEMENT_ASN1_FUNCTIONS() is used once in a source file 347e71b7053SJung-uk Kimto generate the function bodies. 348e71b7053SJung-uk Kim 349e71b7053SJung-uk Kim 350b077aed3SPierre ProncheryB<I<TYPE>_new>() allocates an empty object of the indicated type. 351b077aed3SPierre ProncheryThe object returned must be released by calling B<I<TYPE>_free>(). 352e71b7053SJung-uk Kim 353*aa795734SPierre ProncheryB<I<TYPE>_new_ex>() is similar to B<I<TYPE>_new>() but also passes the 354b077aed3SPierre Proncherylibrary context I<libctx> and the property query I<propq> to use when retrieving 355b077aed3SPierre Proncheryalgorithms from providers. This created object can then be used when loading 356b077aed3SPierre Proncherybinary data using B<d2i_I<TYPE>>(). 357e71b7053SJung-uk Kim 358b077aed3SPierre ProncheryB<I<TYPE>_dup>() copies an existing object, leaving it untouched. 359b077aed3SPierre Pronchery 360b077aed3SPierre ProncheryB<I<TYPE>_free>() releases the object and all pointers and sub-objects 361e71b7053SJung-uk Kimwithin it. 362e71b7053SJung-uk Kim 363b077aed3SPierre ProncheryB<I<TYPE>_print_ctx>() prints the object I<a> on the specified BIO I<out>. 364b077aed3SPierre ProncheryEach line will be prefixed with I<indent> spaces. 365b077aed3SPierre ProncheryThe I<pctx> specifies the printing context and is for internal 366e71b7053SJung-uk Kimuse; use NULL to get the default behavior. If a print function is 367b077aed3SPierre Proncheryuser-defined, then pass in any I<pctx> down to any nested calls. 368e71b7053SJung-uk Kim 369e71b7053SJung-uk Kim=head1 RETURN VALUES 370e71b7053SJung-uk Kim 371b077aed3SPierre ProncheryB<I<TYPE>_new>(), B<I<TYPE>_new_ex>() and B<I<TYPE>_dup>() return a pointer to 372b077aed3SPierre Proncherythe object or NULL on failure. 373e71b7053SJung-uk Kim 374b077aed3SPierre ProncheryB<I<TYPE>_print_ctx>() returns 1 on success or zero on failure. 375b077aed3SPierre Pronchery 376b077aed3SPierre Pronchery=head1 HISTORY 377b077aed3SPierre Pronchery 378b077aed3SPierre ProncheryThe functions X509_REQ_new_ex(), X509_CRL_new_ex(), PKCS7_new_ex() and 379b077aed3SPierre ProncheryCMS_ContentInfo_new_ex() were added in OpenSSL 3.0. 380b077aed3SPierre Pronchery 381b077aed3SPierre ProncheryThe functions DSAparams_dup(), RSAPrivateKey_dup() and RSAPublicKey_dup() were 382b077aed3SPierre Proncherydeprecated in 3.0. 383e71b7053SJung-uk Kim 384e71b7053SJung-uk Kim=head1 COPYRIGHT 385e71b7053SJung-uk Kim 386*aa795734SPierre ProncheryCopyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. 387e71b7053SJung-uk Kim 388b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 389e71b7053SJung-uk Kimthis file except in compliance with the License. You can obtain a copy 390e71b7053SJung-uk Kimin the file LICENSE in the source distribution or at 391e71b7053SJung-uk KimL<https://www.openssl.org/source/license.html>. 392e71b7053SJung-uk Kim 393e71b7053SJung-uk Kim=cut 394