ircbot/deimos/openssl/objects.d

1150 lines
36 KiB
D

/* crypto/objects/objects.h */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
*
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
module deimos.openssl.objects;
import deimos.openssl._d_util;
version = USE_OBJ_MAC;
version (USE_OBJ_MAC) {
public import deimos.openssl.obj_mac;
} else {
/+
enum SN_undef = "UNDEF";
enum LN_undef = "undefined";
enum NID_undef = 0;
enum OBJ_undef = "0L";
enum SN_Algorithm = "Algorithm";
enum LN_algorithm = "algorithm";
enum NID_algorithm = 38;
enum OBJ_algorithm = "1L,3L,14L,3L,2L";
enum LN_rsadsi = "rsadsi";
enum NID_rsadsi = 1;
enum OBJ_rsadsi = "1L,2L,840L,113549L";
enum LN_pkcs = "pkcs";
enum NID_pkcs = 2;
enum OBJ_pkcs = "OBJ_rsadsi,1L";
enum SN_md2 = "MD2";
enum LN_md2 = "md2";
enum NID_md2 = 3;
enum OBJ_md2 = "OBJ_rsadsi,2L,2L";
enum SN_md5 = "MD5";
enum LN_md5 = "md5";
enum NID_md5 = 4;
enum OBJ_md5 = "OBJ_rsadsi,2L,5L";
enum SN_rc4 = "RC4";
enum LN_rc4 = "rc4";
enum NID_rc4 = 5;
enum OBJ_rc4 = "OBJ_rsadsi,3L,4L";
enum LN_rsaEncryption = "rsaEncryption";
enum NID_rsaEncryption = 6;
enum OBJ_rsaEncryption = "OBJ_pkcs,1L,1L";
enum SN_md2WithRSAEncryption = "RSA-MD2";
enum LN_md2WithRSAEncryption = "md2WithRSAEncryption";
enum NID_md2WithRSAEncryption = 7;
enum OBJ_md2WithRSAEncryption = "OBJ_pkcs,1L,2L";
enum SN_md5WithRSAEncryption = "RSA-MD5";
enum LN_md5WithRSAEncryption = "md5WithRSAEncryption";
enum NID_md5WithRSAEncryption = 8;
enum OBJ_md5WithRSAEncryption = "OBJ_pkcs,1L,4L";
enum SN_pbeWithMD2AndDES_CBC = "PBE-MD2-DES";
enum LN_pbeWithMD2AndDES_CBC = "pbeWithMD2AndDES-CBC";
enum NID_pbeWithMD2AndDES_CBC = 9;
enum OBJ_pbeWithMD2AndDES_CBC = "OBJ_pkcs,5L,1L";
enum SN_pbeWithMD5AndDES_CBC = "PBE-MD5-DES";
enum LN_pbeWithMD5AndDES_CBC = "pbeWithMD5AndDES-CBC";
enum NID_pbeWithMD5AndDES_CBC = 10;
enum OBJ_pbeWithMD5AndDES_CBC = "OBJ_pkcs,5L,3L";
enum LN_X500 = "X500";
enum NID_X500 = 11;
enum OBJ_X500 = "2L,5L";
enum LN_X509 = "X509";
enum NID_X509 = 12;
enum OBJ_X509 = "OBJ_X500,4L";
enum SN_commonName = "CN";
enum LN_commonName = "commonName";
enum NID_commonName = 13;
enum OBJ_commonName = "OBJ_X509,3L";
enum SN_countryName = "C";
enum LN_countryName = "countryName";
enum NID_countryName = 14;
enum OBJ_countryName = "OBJ_X509,6L";
enum SN_localityName = "L";
enum LN_localityName = "localityName";
enum NID_localityName = 15;
enum OBJ_localityName = "OBJ_X509,7L";
/* Postal Address? PA */
/* should be "ST" (rfc1327) but MS uses 'S' */
enum SN_stateOrProvinceName = "ST";
enum LN_stateOrProvinceName = "stateOrProvinceName";
enum NID_stateOrProvinceName = 16;
enum OBJ_stateOrProvinceName = "OBJ_X509,8L";
enum SN_organizationName = "O";
enum LN_organizationName = "organizationName";
enum NID_organizationName = 17;
enum OBJ_organizationName = "OBJ_X509,10L";
enum SN_organizationalUnitName = "OU";
enum LN_organizationalUnitName = "organizationalUnitName";
enum NID_organizationalUnitName = 18;
enum OBJ_organizationalUnitName = "OBJ_X509,11L";
enum SN_rsa = "RSA";
enum LN_rsa = "rsa";
enum NID_rsa = 19;
enum OBJ_rsa = "OBJ_X500,8L,1L,1L";
enum LN_pkcs7 = "pkcs7";
enum NID_pkcs7 = 20;
enum OBJ_pkcs7 = "OBJ_pkcs,7L";
enum LN_pkcs7_data = "pkcs7-data";
enum NID_pkcs7_data = 21;
enum OBJ_pkcs7_data = "OBJ_pkcs7,1L";
enum LN_pkcs7_signed = "pkcs7-signedData";
enum NID_pkcs7_signed = 22;
enum OBJ_pkcs7_signed = "OBJ_pkcs7,2L";
enum LN_pkcs7_enveloped = "pkcs7-envelopedData";
enum NID_pkcs7_enveloped = 23;
enum OBJ_pkcs7_enveloped = "OBJ_pkcs7,3L";
enum LN_pkcs7_signedAndEnveloped = "pkcs7-signedAndEnvelopedData";
enum NID_pkcs7_signedAndEnveloped = 24;
enum OBJ_pkcs7_signedAndEnveloped = "OBJ_pkcs7,4L";
enum LN_pkcs7_digest = "pkcs7-digestData";
enum NID_pkcs7_digest = 25;
enum OBJ_pkcs7_digest = "OBJ_pkcs7,5L";
enum LN_pkcs7_encrypted = "pkcs7-encryptedData";
enum NID_pkcs7_encrypted = 26;
enum OBJ_pkcs7_encrypted = "OBJ_pkcs7,6L";
enum LN_pkcs3 = "pkcs3";
enum NID_pkcs3 = 27;
enum OBJ_pkcs3 = "OBJ_pkcs,3L";
enum LN_dhKeyAgreement = "dhKeyAgreement";
enum NID_dhKeyAgreement = 28;
enum OBJ_dhKeyAgreement = "OBJ_pkcs3,1L";
enum SN_des_ecb = "DES-ECB";
enum LN_des_ecb = "des-ecb";
enum NID_des_ecb = 29;
enum OBJ_des_ecb = "OBJ_algorithm,6L";
enum SN_des_cfb64 = "DES-CFB";
enum LN_des_cfb64 = "des-cfb";
enum NID_des_cfb64 = 30;
/* IV + num */
enum OBJ_des_cfb64 = "OBJ_algorithm,9L";
enum SN_des_cbc = "DES-CBC";
enum LN_des_cbc = "des-cbc";
enum NID_des_cbc = 31;
/* IV */
enum OBJ_des_cbc = "OBJ_algorithm,7L";
enum SN_des_ede = "DES-EDE";
enum LN_des_ede = "des-ede";
enum NID_des_ede = 32;
/* ?? */
enum OBJ_des_ede = "OBJ_algorithm,17L";
enum SN_des_ede3 = "DES-EDE3";
enum LN_des_ede3 = "des-ede3";
enum NID_des_ede3 = 33;
enum SN_idea_cbc = "IDEA-CBC";
enum LN_idea_cbc = "idea-cbc";
enum NID_idea_cbc = 34;
enum OBJ_idea_cbc = "1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L";
enum SN_idea_cfb64 = "IDEA-CFB";
enum LN_idea_cfb64 = "idea-cfb";
enum NID_idea_cfb64 = 35;
enum SN_idea_ecb = "IDEA-ECB";
enum LN_idea_ecb = "idea-ecb";
enum NID_idea_ecb = 36;
enum SN_rc2_cbc = "RC2-CBC";
enum LN_rc2_cbc = "rc2-cbc";
enum NID_rc2_cbc = 37;
enum OBJ_rc2_cbc = "OBJ_rsadsi,3L,2L";
enum SN_rc2_ecb = "RC2-ECB";
enum LN_rc2_ecb = "rc2-ecb";
enum NID_rc2_ecb = 38;
enum SN_rc2_cfb64 = "RC2-CFB";
enum LN_rc2_cfb64 = "rc2-cfb";
enum NID_rc2_cfb64 = 39;
enum SN_rc2_ofb64 = "RC2-OFB";
enum LN_rc2_ofb64 = "rc2-ofb";
enum NID_rc2_ofb64 = 40;
enum SN_sha = "SHA";
enum LN_sha = "sha";
enum NID_sha = 41;
enum OBJ_sha = "OBJ_algorithm,18L";
enum SN_shaWithRSAEncryption = "RSA-SHA";
enum LN_shaWithRSAEncryption = "shaWithRSAEncryption";
enum NID_shaWithRSAEncryption = 42;
enum OBJ_shaWithRSAEncryption = "OBJ_algorithm,15L";
enum SN_des_ede_cbc = "DES-EDE-CBC";
enum LN_des_ede_cbc = "des-ede-cbc";
enum NID_des_ede_cbc = 43;
enum SN_des_ede3_cbc = "DES-EDE3-CBC";
enum LN_des_ede3_cbc = "des-ede3-cbc";
enum NID_des_ede3_cbc = 44;
enum OBJ_des_ede3_cbc = "OBJ_rsadsi,3L,7L";
enum SN_des_ofb64 = "DES-OFB";
enum LN_des_ofb64 = "des-ofb";
enum NID_des_ofb64 = 45;
enum OBJ_des_ofb64 = "OBJ_algorithm,8L";
enum SN_idea_ofb64 = "IDEA-OFB";
enum LN_idea_ofb64 = "idea-ofb";
enum NID_idea_ofb64 = 46;
enum LN_pkcs9 = "pkcs9";
enum NID_pkcs9 = 47;
enum OBJ_pkcs9 = "OBJ_pkcs,9L";
enum SN_pkcs9_emailAddress = "Email";
enum LN_pkcs9_emailAddress = "emailAddress";
enum NID_pkcs9_emailAddress = 48;
enum OBJ_pkcs9_emailAddress = "OBJ_pkcs9,1L";
enum LN_pkcs9_unstructuredName = "unstructuredName";
enum NID_pkcs9_unstructuredName = 49;
enum OBJ_pkcs9_unstructuredName = "OBJ_pkcs9,2L";
enum LN_pkcs9_contentType = "contentType";
enum NID_pkcs9_contentType = 50;
enum OBJ_pkcs9_contentType = "OBJ_pkcs9,3L";
enum LN_pkcs9_messageDigest = "messageDigest";
enum NID_pkcs9_messageDigest = 51;
enum OBJ_pkcs9_messageDigest = "OBJ_pkcs9,4L";
enum LN_pkcs9_signingTime = "signingTime";
enum NID_pkcs9_signingTime = 52;
enum OBJ_pkcs9_signingTime = "OBJ_pkcs9,5L";
enum LN_pkcs9_countersignature = "countersignature";
enum NID_pkcs9_countersignature = 53;
enum OBJ_pkcs9_countersignature = "OBJ_pkcs9,6L";
enum LN_pkcs9_challengePassword = "challengePassword";
enum NID_pkcs9_challengePassword = 54;
enum OBJ_pkcs9_challengePassword = "OBJ_pkcs9,7L";
enum LN_pkcs9_unstructuredAddress = "unstructuredAddress";
enum NID_pkcs9_unstructuredAddress = 55;
enum OBJ_pkcs9_unstructuredAddress = "OBJ_pkcs9,8L";
enum LN_pkcs9_extCertAttributes = "extendedCertificateAttributes";
enum NID_pkcs9_extCertAttributes = 56;
enum OBJ_pkcs9_extCertAttributes = "OBJ_pkcs9,9L";
enum SN_netscape = "Netscape";
enum LN_netscape = "Netscape Communications Corp.";
enum NID_netscape = 57;
enum OBJ_netscape = "2L,16L,840L,1L,113730L";
enum SN_netscape_cert_extension = "nsCertExt";
enum LN_netscape_cert_extension = "Netscape Certificate Extension";
enum NID_netscape_cert_extension = 58;
enum OBJ_netscape_cert_extension = "OBJ_netscape,1L";
enum SN_netscape_data_type = "nsDataType";
enum LN_netscape_data_type = "Netscape Data Type";
enum NID_netscape_data_type = 59;
enum OBJ_netscape_data_type = "OBJ_netscape,2L";
enum SN_des_ede_cfb64 = "DES-EDE-CFB";
enum LN_des_ede_cfb64 = "des-ede-cfb";
enum NID_des_ede_cfb64 = 60;
enum SN_des_ede3_cfb64 = "DES-EDE3-CFB";
enum LN_des_ede3_cfb64 = "des-ede3-cfb";
enum NID_des_ede3_cfb64 = 61;
enum SN_des_ede_ofb64 = "DES-EDE-OFB";
enum LN_des_ede_ofb64 = "des-ede-ofb";
enum NID_des_ede_ofb64 = 62;
enum SN_des_ede3_ofb64 = "DES-EDE3-OFB";
enum LN_des_ede3_ofb64 = "des-ede3-ofb";
enum NID_des_ede3_ofb64 = 63;
/* I'm not sure about the object ID */
enum SN_sha1 = "SHA1";
enum LN_sha1 = "sha1";
enum NID_sha1 = 64;
enum OBJ_sha1 = "OBJ_algorithm,26L";
/* 28 Jun 1996 - eay */
/* alias 1L OBJ_sha1;,3L,14L,2L,26L,05L <- wrong */
enum SN_sha1WithRSAEncryption = "RSA-SHA1";
enum LN_sha1WithRSAEncryption = "sha1WithRSAEncryption";
enum NID_sha1WithRSAEncryption = 65;
enum OBJ_sha1WithRSAEncryption = "OBJ_pkcs,1L,5L";
enum SN_dsaWithSHA = "DSA-SHA";
enum LN_dsaWithSHA = "dsaWithSHA";
enum NID_dsaWithSHA = 66;
enum OBJ_dsaWithSHA = "OBJ_algorithm,13L";
enum SN_dsa_2 = "DSA-old";
enum LN_dsa_2 = "dsaEncryption-old";
enum NID_dsa_2 = 67;
enum OBJ_dsa_2 = "OBJ_algorithm,12L";
/* proposed by microsoft to RSA */
enum SN_pbeWithSHA1AndRC2_CBC = "PBE-SHA1-RC2-64";
enum LN_pbeWithSHA1AndRC2_CBC = "pbeWithSHA1AndRC2-CBC";
enum NID_pbeWithSHA1AndRC2_CBC = 68;
enum OBJ_pbeWithSHA1AndRC2_CBC = "OBJ_pkcs,5L,11L";
/* proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now
* defined explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something
* completely different.
*/
enum LN_id_pbkdf2 = "PBKDF2";
enum NID_id_pbkdf2 = 69;
enum OBJ_id_pbkdf2 = "OBJ_pkcs,5L,12L";
enum SN_dsaWithSHA1_2 = "DSA-SHA1-old";
enum LN_dsaWithSHA1_2 = "dsaWithSHA1-old";
enum NID_dsaWithSHA1_2 = 70;
/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */
enum OBJ_dsaWithSHA1_2 = "OBJ_algorithm,27L";
enum SN_netscape_cert_type = "nsCertType";
enum LN_netscape_cert_type = "Netscape Cert Type";
enum NID_netscape_cert_type = 71;
enum OBJ_netscape_cert_type = "OBJ_netscape_cert_extension,1L";
enum SN_netscape_base_url = "nsBaseUrl";
enum LN_netscape_base_url = "Netscape Base Url";
enum NID_netscape_base_url = 72;
enum OBJ_netscape_base_url = "OBJ_netscape_cert_extension,2L";
enum SN_netscape_revocation_url = "nsRevocationUrl";
enum LN_netscape_revocation_url = "Netscape Revocation Url";
enum NID_netscape_revocation_url = 73;
enum OBJ_netscape_revocation_url = "OBJ_netscape_cert_extension,3L";
enum SN_netscape_ca_revocation_url = "nsCaRevocationUrl";
enum LN_netscape_ca_revocation_url = "Netscape CA Revocation Url";
enum NID_netscape_ca_revocation_url = 74;
enum OBJ_netscape_ca_revocation_url = "OBJ_netscape_cert_extension,4L";
enum SN_netscape_renewal_url = "nsRenewalUrl";
enum LN_netscape_renewal_url = "Netscape Renewal Url";
enum NID_netscape_renewal_url = 75;
enum OBJ_netscape_renewal_url = "OBJ_netscape_cert_extension,7L";
enum SN_netscape_ca_policy_url = "nsCaPolicyUrl";
enum LN_netscape_ca_policy_url = "Netscape CA Policy Url";
enum NID_netscape_ca_policy_url = 76;
enum OBJ_netscape_ca_policy_url = "OBJ_netscape_cert_extension,8L";
enum SN_netscape_ssl_server_name = "nsSslServerName";
enum LN_netscape_ssl_server_name = "Netscape SSL Server Name";
enum NID_netscape_ssl_server_name = 77;
enum OBJ_netscape_ssl_server_name = "OBJ_netscape_cert_extension,12L";
enum SN_netscape_comment = "nsComment";
enum LN_netscape_comment = "Netscape Comment";
enum NID_netscape_comment = 78;
enum OBJ_netscape_comment = "OBJ_netscape_cert_extension,13L";
enum SN_netscape_cert_sequence = "nsCertSequence";
enum LN_netscape_cert_sequence = "Netscape Certificate Sequence";
enum NID_netscape_cert_sequence = 79;
enum OBJ_netscape_cert_sequence = "OBJ_netscape_data_type,5L";
enum SN_desx_cbc = "DESX-CBC";
enum LN_desx_cbc = "desx-cbc";
enum NID_desx_cbc = 80;
enum SN_id_ce = "id-ce";
enum NID_id_ce = 81;
enum OBJ_id_ce = "2L,5L,29L";
enum SN_subject_key_identifier = "subjectKeyIdentifier";
enum LN_subject_key_identifier = "X509v3 Subject Key Identifier";
enum NID_subject_key_identifier = 82;
enum OBJ_subject_key_identifier = "OBJ_id_ce,14L";
enum SN_key_usage = "keyUsage";
enum LN_key_usage = "X509v3 Key Usage";
enum NID_key_usage = 83;
enum OBJ_key_usage = "OBJ_id_ce,15L";
enum SN_private_key_usage_period = "privateKeyUsagePeriod";
enum LN_private_key_usage_period = "X509v3 Private Key Usage Period";
enum NID_private_key_usage_period = 84;
enum OBJ_private_key_usage_period = "OBJ_id_ce,16L";
enum SN_subject_alt_name = "subjectAltName";
enum LN_subject_alt_name = "X509v3 Subject Alternative Name";
enum NID_subject_alt_name = 85;
enum OBJ_subject_alt_name = "OBJ_id_ce,17L";
enum SN_issuer_alt_name = "issuerAltName";
enum LN_issuer_alt_name = "X509v3 Issuer Alternative Name";
enum NID_issuer_alt_name = 86;
enum OBJ_issuer_alt_name = "OBJ_id_ce,18L";
enum SN_basic_constraints = "basicConstraints";
enum LN_basic_constraints = "X509v3 Basic Constraints";
enum NID_basic_constraints = 87;
enum OBJ_basic_constraints = "OBJ_id_ce,19L";
enum SN_crl_number = "crlNumber";
enum LN_crl_number = "X509v3 CRL Number";
enum NID_crl_number = 88;
enum OBJ_crl_number = "OBJ_id_ce,20L";
enum SN_certificate_policies = "certificatePolicies";
enum LN_certificate_policies = "X509v3 Certificate Policies";
enum NID_certificate_policies = 89;
enum OBJ_certificate_policies = "OBJ_id_ce,32L";
enum SN_authority_key_identifier = "authorityKeyIdentifier";
enum LN_authority_key_identifier = "X509v3 Authority Key Identifier";
enum NID_authority_key_identifier = 90;
enum OBJ_authority_key_identifier = "OBJ_id_ce,35L";
enum SN_bf_cbc = "BF-CBC";
enum LN_bf_cbc = "bf-cbc";
enum NID_bf_cbc = 91;
enum OBJ_bf_cbc = "1L,3L,6L,1L,4L,1L,3029L,1L,2L";
enum SN_bf_ecb = "BF-ECB";
enum LN_bf_ecb = "bf-ecb";
enum NID_bf_ecb = 92;
enum SN_bf_cfb64 = "BF-CFB";
enum LN_bf_cfb64 = "bf-cfb";
enum NID_bf_cfb64 = 93;
enum SN_bf_ofb64 = "BF-OFB";
enum LN_bf_ofb64 = "bf-ofb";
enum NID_bf_ofb64 = 94;
enum SN_mdc2 = "MDC2";
enum LN_mdc2 = "mdc2";
enum NID_mdc2 = 95;
enum OBJ_mdc2 = "2L,5L,8L,3L,101L";
/* An alternative? 1L,3L,14L,3L,2L,19L */
enum SN_mdc2WithRSA = "RSA-MDC2";
enum LN_mdc2WithRSA = "mdc2withRSA";
enum NID_mdc2WithRSA = 96;
enum OBJ_mdc2WithRSA = "2L,5L,8L,3L,100L";
enum SN_rc4_40 = "RC4-40";
enum LN_rc4_40 = "rc4-40";
enum NID_rc4_40 = 97;
enum SN_rc2_40_cbc = "RC2-40-CBC";
enum LN_rc2_40_cbc = "rc2-40-cbc";
enum NID_rc2_40_cbc = 98;
enum SN_givenName = "G";
enum LN_givenName = "givenName";
enum NID_givenName = 99;
enum OBJ_givenName = "OBJ_X509,42L";
enum SN_surname = "S";
enum LN_surname = "surname";
enum NID_surname = 100;
enum OBJ_surname = "OBJ_X509,4L";
enum SN_initials = "I";
enum LN_initials = "initials";
enum NID_initials = 101;
enum OBJ_initials = "OBJ_X509,43L";
enum SN_uniqueIdentifier = "UID";
enum LN_uniqueIdentifier = "uniqueIdentifier";
enum NID_uniqueIdentifier = 102;
enum OBJ_uniqueIdentifier = "OBJ_X509,45L";
enum SN_crl_distribution_points = "crlDistributionPoints";
enum LN_crl_distribution_points = "X509v3 CRL Distribution Points";
enum NID_crl_distribution_points = 103;
enum OBJ_crl_distribution_points = "OBJ_id_ce,31L";
enum SN_md5WithRSA = "RSA-NP-MD5";
enum LN_md5WithRSA = "md5WithRSA";
enum NID_md5WithRSA = 104;
enum OBJ_md5WithRSA = "OBJ_algorithm,3L";
enum SN_serialNumber = "SN";
enum LN_serialNumber = "serialNumber";
enum NID_serialNumber = 105;
enum OBJ_serialNumber = "OBJ_X509,5L";
enum SN_title = "T";
enum LN_title = "title";
enum NID_title = 106;
enum OBJ_title = "OBJ_X509,12L";
enum SN_description = "D";
enum LN_description = "description";
enum NID_description = 107;
enum OBJ_description = "OBJ_X509,13L";
/* CAST5 is CAST-128, I'm just sticking with the documentation */
enum SN_cast5_cbc = "CAST5-CBC";
enum LN_cast5_cbc = "cast5-cbc";
enum NID_cast5_cbc = 108;
enum OBJ_cast5_cbc = "1L,2L,840L,113533L,7L,66L,10L";
enum SN_cast5_ecb = "CAST5-ECB";
enum LN_cast5_ecb = "cast5-ecb";
enum NID_cast5_ecb = 109;
enum SN_cast5_cfb64 = "CAST5-CFB";
enum LN_cast5_cfb64 = "cast5-cfb";
enum NID_cast5_cfb64 = 110;
enum SN_cast5_ofb64 = "CAST5-OFB";
enum LN_cast5_ofb64 = "cast5-ofb";
enum NID_cast5_ofb64 = 111;
enum LN_pbeWithMD5AndCast5_CBC = "pbeWithMD5AndCast5CBC";
enum NID_pbeWithMD5AndCast5_CBC = 112;
enum OBJ_pbeWithMD5AndCast5_CBC = "1L,2L,840L,113533L,7L,66L,12L";
/* This is one sun will soon be using :-(
* id-dsa-with-sha1 ID ::= {
* iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 }
*/
enum SN_dsaWithSHA1 = "DSA-SHA1";
enum LN_dsaWithSHA1 = "dsaWithSHA1";
enum NID_dsaWithSHA1 = 113;
enum OBJ_dsaWithSHA1 = "1L,2L,840L,10040L,4L,3L";
enum NID_md5_sha1 = 114;
enum SN_md5_sha1 = "MD5-SHA1";
enum LN_md5_sha1 = "md5-sha1";
enum SN_sha1WithRSA = "RSA-SHA1-2";
enum LN_sha1WithRSA = "sha1WithRSA";
enum NID_sha1WithRSA = 115;
enum OBJ_sha1WithRSA = "OBJ_algorithm,29L";
enum SN_dsa = "DSA";
enum LN_dsa = "dsaEncryption";
enum NID_dsa = 116;
enum OBJ_dsa = "1L,2L,840L,10040L,4L,1L";
enum SN_ripemd160 = "RIPEMD160";
enum LN_ripemd160 = "ripemd160";
enum NID_ripemd160 = 117;
enum OBJ_ripemd160 = "1L,3L,36L,3L,2L,1L";
/* The name should actually be rsaSignatureWithripemd160, but I'm going
* to continue using the convention I'm using with the other ciphers */
enum SN_ripemd160WithRSA = "RSA-RIPEMD160";
enum LN_ripemd160WithRSA = "ripemd160WithRSA";
enum NID_ripemd160WithRSA = 119;
enum OBJ_ripemd160WithRSA = "1L,3L,36L,3L,3L,1L,2L";
/* Taken from rfc2040
* RC5_CBC_Parameters ::= SEQUENCE {
* version INTEGER (v1_0(16)),
* rounds INTEGER (8..127),
* blockSizeInBits INTEGER (64, 128),
* iv OCTET STRING OPTIONAL
* }
*/
enum SN_rc5_cbc = "RC5-CBC";
enum LN_rc5_cbc = "rc5-cbc";
enum NID_rc5_cbc = 120;
enum OBJ_rc5_cbc = "OBJ_rsadsi,3L,8L";
enum SN_rc5_ecb = "RC5-ECB";
enum LN_rc5_ecb = "rc5-ecb";
enum NID_rc5_ecb = 121;
enum SN_rc5_cfb64 = "RC5-CFB";
enum LN_rc5_cfb64 = "rc5-cfb";
enum NID_rc5_cfb64 = 122;
enum SN_rc5_ofb64 = "RC5-OFB";
enum LN_rc5_ofb64 = "rc5-ofb";
enum NID_rc5_ofb64 = 123;
enum SN_rle_compression = "RLE";
enum LN_rle_compression = "run length compression";
enum NID_rle_compression = 124;
enum OBJ_rle_compression = "1L,1L,1L,1L,666L,1L";
enum SN_zlib_compression = "ZLIB";
enum LN_zlib_compression = "zlib compression";
enum NID_zlib_compression = 125;
enum OBJ_zlib_compression = "1L,1L,1L,1L,666L,2L";
enum SN_ext_key_usage = "extendedKeyUsage";
enum LN_ext_key_usage = "X509v3 Extended Key Usage";
enum NID_ext_key_usage = 126;
enum OBJ_ext_key_usage = "OBJ_id_ce,37";
enum SN_id_pkix = "PKIX";
enum NID_id_pkix = 127;
enum OBJ_id_pkix = "1L,3L,6L,1L,5L,5L,7L";
enum SN_id_kp = "id-kp";
enum NID_id_kp = 128;
enum OBJ_id_kp = "OBJ_id_pkix,3L";
/* PKIX extended key usage OIDs */
enum SN_server_auth = "serverAuth";
enum LN_server_auth = "TLS Web Server Authentication";
enum NID_server_auth = 129;
enum OBJ_server_auth = "OBJ_id_kp,1L";
enum SN_client_auth = "clientAuth";
enum LN_client_auth = "TLS Web Client Authentication";
enum NID_client_auth = 130;
enum OBJ_client_auth = "OBJ_id_kp,2L";
enum SN_code_sign = "codeSigning";
enum LN_code_sign = "Code Signing";
enum NID_code_sign = 131;
enum OBJ_code_sign = "OBJ_id_kp,3L";
enum SN_email_protect = "emailProtection";
enum LN_email_protect = "E-mail Protection";
enum NID_email_protect = 132;
enum OBJ_email_protect = "OBJ_id_kp,4L";
enum SN_time_stamp = "timeStamping";
enum LN_time_stamp = "Time Stamping";
enum NID_time_stamp = 133;
enum OBJ_time_stamp = "OBJ_id_kp,8L";
/* Additional extended key usage OIDs: Microsoft */
enum SN_ms_code_ind = "msCodeInd";
enum LN_ms_code_ind = "Microsoft Individual Code Signing";
enum NID_ms_code_ind = 134;
enum OBJ_ms_code_ind = "1L,3L,6L,1L,4L,1L,311L,2L,1L,21L";
enum SN_ms_code_com = "msCodeCom";
enum LN_ms_code_com = "Microsoft Commercial Code Signing";
enum NID_ms_code_com = 135;
enum OBJ_ms_code_com = "1L,3L,6L,1L,4L,1L,311L,2L,1L,22L";
enum SN_ms_ctl_sign = "msCTLSign";
enum LN_ms_ctl_sign = "Microsoft Trust List Signing";
enum NID_ms_ctl_sign = 136;
enum OBJ_ms_ctl_sign = "1L,3L,6L,1L,4L,1L,311L,10L,3L,1L";
enum SN_ms_sgc = "msSGC";
enum LN_ms_sgc = "Microsoft Server Gated Crypto";
enum NID_ms_sgc = 137;
enum OBJ_ms_sgc = "1L,3L,6L,1L,4L,1L,311L,10L,3L,3L";
enum SN_ms_efs = "msEFS";
enum LN_ms_efs = "Microsoft Encrypted File System";
enum NID_ms_efs = 138;
enum OBJ_ms_efs = "1L,3L,6L,1L,4L,1L,311L,10L,3L,4L";
/* Additional usage: Netscape */
enum SN_ns_sgc = "nsSGC";
enum LN_ns_sgc = "Netscape Server Gated Crypto";
enum NID_ns_sgc = 139;
enum OBJ_ns_sgc = "OBJ_netscape,4L,1L";
enum SN_delta_crl = "deltaCRL";
enum LN_delta_crl = "X509v3 Delta CRL Indicator";
enum NID_delta_crl = 140;
enum OBJ_delta_crl = "OBJ_id_ce,27L";
enum SN_crl_reason = "CRLReason";
enum LN_crl_reason = "CRL Reason Code";
enum NID_crl_reason = 141;
enum OBJ_crl_reason = "OBJ_id_ce,21L";
enum SN_invalidity_date = "invalidityDate";
enum LN_invalidity_date = "Invalidity Date";
enum NID_invalidity_date = 142;
enum OBJ_invalidity_date = "OBJ_id_ce,24L";
enum SN_sxnet = "SXNetID";
enum LN_sxnet = "Strong Extranet ID";
enum NID_sxnet = 143;
enum OBJ_sxnet = "1L,3L,101L,1L,4L,1L";
/* PKCS12 and related OBJECT IDENTIFIERS */
enum OBJ_pkcs12 = "OBJ_pkcs,12L";
alias OBJ_pkcs12 OBJ_pkcs12_pbeids;, 1
enum SN_pbe_WithSHA1And128BitRC4 = "PBE-SHA1-RC4-128";
enum LN_pbe_WithSHA1And128BitRC4 = "pbeWithSHA1And128BitRC4";
enum NID_pbe_WithSHA1And128BitRC4 = 144;
alias OBJ_pkcs12_pbeids OBJ_pbe_WithSHA1And128BitRC4;, 1L
enum SN_pbe_WithSHA1And40BitRC4 = "PBE-SHA1-RC4-40";
enum LN_pbe_WithSHA1And40BitRC4 = "pbeWithSHA1And40BitRC4";
enum NID_pbe_WithSHA1And40BitRC4 = 145;
alias OBJ_pkcs12_pbeids OBJ_pbe_WithSHA1And40BitRC4;, 2L
enum SN_pbe_WithSHA1And3_Key_TripleDES_CBC = "PBE-SHA1-3DES";
enum LN_pbe_WithSHA1And3_Key_TripleDES_CBC = "pbeWithSHA1And3-KeyTripleDES-CBC";
enum NID_pbe_WithSHA1And3_Key_TripleDES_CBC = 146;
alias OBJ_pkcs12_pbeids OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC;, 3L
enum SN_pbe_WithSHA1And2_Key_TripleDES_CBC = "PBE-SHA1-2DES";
enum LN_pbe_WithSHA1And2_Key_TripleDES_CBC = "pbeWithSHA1And2-KeyTripleDES-CBC";
enum NID_pbe_WithSHA1And2_Key_TripleDES_CBC = 147;
alias OBJ_pkcs12_pbeids OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC;, 4L
enum SN_pbe_WithSHA1And128BitRC2_CBC = "PBE-SHA1-RC2-128";
enum LN_pbe_WithSHA1And128BitRC2_CBC = "pbeWithSHA1And128BitRC2-CBC";
enum NID_pbe_WithSHA1And128BitRC2_CBC = 148;
alias OBJ_pkcs12_pbeids OBJ_pbe_WithSHA1And128BitRC2_CBC;, 5L
enum SN_pbe_WithSHA1And40BitRC2_CBC = "PBE-SHA1-RC2-40";
enum LN_pbe_WithSHA1And40BitRC2_CBC = "pbeWithSHA1And40BitRC2-CBC";
enum NID_pbe_WithSHA1And40BitRC2_CBC = 149;
alias OBJ_pkcs12_pbeids OBJ_pbe_WithSHA1And40BitRC2_CBC;, 6L
alias OBJ_pkcs12 OBJ_pkcs12_Version1;, 10L
alias OBJ_pkcs12_Version1 OBJ_pkcs12_BagIds;, 1L
enum LN_keyBag = "keyBag";
enum NID_keyBag = 150;
alias OBJ_pkcs12_BagIds OBJ_keyBag;, 1L
enum LN_pkcs8ShroudedKeyBag = "pkcs8ShroudedKeyBag";
enum NID_pkcs8ShroudedKeyBag = 151;
alias OBJ_pkcs12_BagIds OBJ_pkcs8ShroudedKeyBag;, 2L
enum LN_certBag = "certBag";
enum NID_certBag = 152;
alias OBJ_pkcs12_BagIds OBJ_certBag;, 3L
enum LN_crlBag = "crlBag";
enum NID_crlBag = 153;
alias OBJ_pkcs12_BagIds OBJ_crlBag;, 4L
enum LN_secretBag = "secretBag";
enum NID_secretBag = 154;
alias OBJ_pkcs12_BagIds OBJ_secretBag;, 5L
enum LN_safeContentsBag = "safeContentsBag";
enum NID_safeContentsBag = 155;
alias OBJ_pkcs12_BagIds OBJ_safeContentsBag;, 6L
enum LN_friendlyName = "friendlyName";
enum NID_friendlyName = 156;
alias OBJ_pkcs9 OBJ_friendlyName;, 20L
enum LN_localKeyID = "localKeyID";
enum NID_localKeyID = 157;
alias OBJ_pkcs9 OBJ_localKeyID;, 21L
alias OBJ_pkcs9 OBJ_certTypes;, 22L
enum LN_x509Certificate = "x509Certificate";
enum NID_x509Certificate = 158;
alias OBJ_certTypes OBJ_x509Certificate;, 1L
enum LN_sdsiCertificate = "sdsiCertificate";
enum NID_sdsiCertificate = 159;
alias OBJ_certTypes OBJ_sdsiCertificate;, 2L
alias OBJ_pkcs9 OBJ_crlTypes;, 23L
enum LN_x509Crl = "x509Crl";
enum NID_x509Crl = 160;
alias OBJ_crlTypes OBJ_x509Crl;, 1L
/* PKCS#5 v2 OIDs */
enum LN_pbes2 = "PBES2";
enum NID_pbes2 = 161;
enum OBJ_pbes2 = "OBJ_pkcs,5L,13L";
enum LN_pbmac1 = "PBMAC1";
enum NID_pbmac1 = 162;
enum OBJ_pbmac1 = "OBJ_pkcs,5L,14L";
enum LN_hmacWithSHA1 = "hmacWithSHA1";
enum NID_hmacWithSHA1 = 163;
enum OBJ_hmacWithSHA1 = "OBJ_rsadsi,2L,7L";
/* Policy Qualifier Ids */
enum LN_id_qt_cps = "Policy Qualifier CPS";
enum SN_id_qt_cps = "id-qt-cps";
enum NID_id_qt_cps = 164;
enum OBJ_id_qt_cps = "OBJ_id_pkix,2L,1L";
enum LN_id_qt_unotice = "Policy Qualifier User Notice";
enum SN_id_qt_unotice = "id-qt-unotice";
enum NID_id_qt_unotice = 165;
enum OBJ_id_qt_unotice = "OBJ_id_pkix,2L,2L";
enum SN_rc2_64_cbc = "RC2-64-CBC";
enum LN_rc2_64_cbc = "rc2-64-cbc";
enum NID_rc2_64_cbc = 166;
enum SN_SMIMECapabilities = "SMIME-CAPS";
enum LN_SMIMECapabilities = "S/MIME Capabilities";
enum NID_SMIMECapabilities = 167;
enum OBJ_SMIMECapabilities = "OBJ_pkcs9,15L";
enum SN_pbeWithMD2AndRC2_CBC = "PBE-MD2-RC2-64";
enum LN_pbeWithMD2AndRC2_CBC = "pbeWithMD2AndRC2-CBC";
enum NID_pbeWithMD2AndRC2_CBC = 168;
enum OBJ_pbeWithMD2AndRC2_CBC = "OBJ_pkcs,5L,4L";
enum SN_pbeWithMD5AndRC2_CBC = "PBE-MD5-RC2-64";
enum LN_pbeWithMD5AndRC2_CBC = "pbeWithMD5AndRC2-CBC";
enum NID_pbeWithMD5AndRC2_CBC = 169;
enum OBJ_pbeWithMD5AndRC2_CBC = "OBJ_pkcs,5L,6L";
enum SN_pbeWithSHA1AndDES_CBC = "PBE-SHA1-DES";
enum LN_pbeWithSHA1AndDES_CBC = "pbeWithSHA1AndDES-CBC";
enum NID_pbeWithSHA1AndDES_CBC = 170;
enum OBJ_pbeWithSHA1AndDES_CBC = "OBJ_pkcs,5L,10L";
/* Extension request OIDs */
enum LN_ms_ext_req = "Microsoft Extension Request";
enum SN_ms_ext_req = "msExtReq";
enum NID_ms_ext_req = 171;
enum OBJ_ms_ext_req = "1L,3L,6L,1L,4L,1L,311L,2L,1L,14L";
enum LN_ext_req = "Extension Request";
enum SN_ext_req = "extReq";
enum NID_ext_req = 172;
enum OBJ_ext_req = "OBJ_pkcs9,14L";
enum SN_name = "name";
enum LN_name = "name";
enum NID_name = 173;
enum OBJ_name = "OBJ_X509,41L";
enum SN_dnQualifier = "dnQualifier";
enum LN_dnQualifier = "dnQualifier";
enum NID_dnQualifier = 174;
enum OBJ_dnQualifier = "OBJ_X509,46L";
enum SN_id_pe = "id-pe";
enum NID_id_pe = 175;
enum OBJ_id_pe = "OBJ_id_pkix,1L";
enum SN_id_ad = "id-ad";
enum NID_id_ad = 176;
enum OBJ_id_ad = "OBJ_id_pkix,48L";
enum SN_info_access = "authorityInfoAccess";
enum LN_info_access = "Authority Information Access";
enum NID_info_access = 177;
enum OBJ_info_access = "OBJ_id_pe,1L";
enum SN_ad_OCSP = "OCSP";
enum LN_ad_OCSP = "OCSP";
enum NID_ad_OCSP = 178;
enum OBJ_ad_OCSP = "OBJ_id_ad,1L";
enum SN_ad_ca_issuers = "caIssuers";
enum LN_ad_ca_issuers = "CA Issuers";
enum NID_ad_ca_issuers = 179;
enum OBJ_ad_ca_issuers = "OBJ_id_ad,2L";
enum SN_OCSP_sign = "OCSPSigning";
enum LN_OCSP_sign = "OCSP Signing";
enum NID_OCSP_sign = 180;
enum OBJ_OCSP_sign = "OBJ_id_kp,9L";
+/
} /* USE_OBJ_MAC */
public import deimos.openssl.bio;
public import deimos.openssl.asn1;
enum OBJ_NAME_TYPE_UNDEF = "0x00";
enum OBJ_NAME_TYPE_MD_METH = "0x01";
enum OBJ_NAME_TYPE_CIPHER_METH = "0x02";
enum OBJ_NAME_TYPE_PKEY_METH = "0x03";
enum OBJ_NAME_TYPE_COMP_METH = "0x04";
enum OBJ_NAME_TYPE_NUM = "0x05";
enum OBJ_NAME_ALIAS = "0x8000";
enum OBJ_BSEARCH_VALUE_ON_NOMATCH = "0x01";
enum OBJ_BSEARCH_FIRST_VALUE_ON_MATCH = "0x02";
extern (C):
nothrow:
struct obj_name_st {
int type;
int alias_;
const(char)* name;
const(char)* data;
}
alias obj_name_st OBJ_NAME;
alias OBJ_create OBJ_create_and_add_object;
int OBJ_NAME_init();
int OBJ_NAME_new_index(ExternC!(c_ulong function(const(char)*)) hash_func,
ExternC!(int function(const(char)*, const(char)*)) cmp_func,
ExternC!(void function(const(char)*, int, const(char)*)) free_func);
const(char)* OBJ_NAME_get(const(char)* name,int type);
int OBJ_NAME_add(const(char)* name,int type,const(char)* data);
int OBJ_NAME_remove(const(char)* name,int type);
void OBJ_NAME_cleanup(int type); /* -1 for everything */
void OBJ_NAME_do_all(int type,ExternC!(void function(const(OBJ_NAME)*,void* arg)) fn,
void* arg);
void OBJ_NAME_do_all_sorted(int type,ExternC!(void function(const(OBJ_NAME)*,void* arg)) fn,
void* arg);
ASN1_OBJECT* OBJ_dup(const(ASN1_OBJECT)* o);
ASN1_OBJECT* OBJ_nid2obj(int n);
const(char)* OBJ_nid2ln(int n);
const(char)* OBJ_nid2sn(int n);
int OBJ_obj2nid(const(ASN1_OBJECT)* o);
ASN1_OBJECT* OBJ_txt2obj(const(char)* s, int no_name);
int OBJ_obj2txt(char* buf, int buf_len, const(ASN1_OBJECT)* a, int no_name);
int OBJ_txt2nid(const(char)* s);
int OBJ_ln2nid(const(char)* s);
int OBJ_sn2nid(const(char)* s);
int OBJ_cmp(const(ASN1_OBJECT)* a,const(ASN1_OBJECT)* b);
const(void)* OBJ_bsearch_(const(void)* key,const(void)* base,int num,int size,
ExternC!(int function(const(void)*, const(void)*)) cmp);
const(void)* OBJ_bsearch_ex_(const(void)* key,const(void)* base,int num,
int size,
ExternC!(int function(const(void)*, const(void)*)) cmp,
int flags);
mixin template _DECLARE_OBJ_BSEARCH_CMP_FN(string scope_, type1, type2, string nm) {
mixin("
int " ~ nm ~ "_cmp_BSEARCH_CMP_FN(const()*, const()*);
int " ~ nm ~ "_cmp(const(" ~ type2 ~ ")*, const(" ~ type2 ~ ")*);
" ~ scope_ ~ " " ~ type2 ~ "* OBJ_bsearch_" ~ nm ~ "(" ~ type1 ~ "* key, const(" ~ type2 ~ ")* base, int num);
");
}
mixin template DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, string cmp) {
mixin _DECLARE_OBJ_BSEARCH_CMP_FN!("static", type1, type2, cmp);
}
mixin template DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, string nm) {
mixin("type2* OBJ_bsearch_" ~ nm ~ "(type1* key, const(type2)* base, int num);");
}
/*
* Unsolved problem: if a type is actually a pointer type, like
* nid_triple is, then its impossible to get a const where you need
* it. Consider:
*
* typedef int nid_triple[3];
* const(void)* a_;
* const nid_triple const* a = a_;
*
* The assignement discards a const because what you really want is:
*
* const int const* const* a = a_;
*
* But if you do that, you lose the fact that a is an array of 3 ints,
* which breaks comparison functions.
*
* Thus we end up having to cast, sadly, or unpack the
* declarations. Or, as I finally did in this case, delcare nid_triple
* to be a struct, which it should have been in the first place.
*
* Ben, August 2008.
*
* Also, strictly speaking not all types need be const, but handling
* the non-constness means a lot of complication, and in practice
* comparison routines do always not touch their arguments.
*/
mixin template IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, string nm) {
mixin("
static int " ~ nm ~ "_cmp_BSEARCH_CMP_FN(const()* a_, const()* b_)
{
auto a = cast(const(type1)*) a_;
auto b = cast(const(type2)*) b_;
return " ~ nm ~ "_cmp(a,b);
}
static type2* OBJ_bsearch_" ~ nm ~ "(type1* key, const(type2)* base, int num)
{
return cast(type2*) OBJ_bsearch_(key, base, num, type2.sizeof,
" ~ nm ~ "_cmp_BSEARCH_CMP_FN);
}
extern void dummy_prototype();
");
}
mixin template IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, string nm) {
mixin("
static int " ~ nm ~ "_cmp_BSEARCH_CMP_FN(const()* a_, const()* b_)
{
auto a = cast(const(type1)*) a_;
auto b = cast(const(type2)*) b_;
return " ~ nm ~ "_cmp(a,b);
}
type2* OBJ_bsearch_" ~ nm ~ "(type1* key, const(type2)* base, int num)
{
return cast(type2*) OBJ_bsearch_(key, base, num, type2.sizeof,
" ~ nm ~ "_cmp_BSEARCH_CMP_FN);
}
extern void dummy_prototype();
");
}
template OBJ_bsearch(string type1, string key, string type2, string base, string num, string cmp) {
enum OBJ_bsearch = "(cast(" ~ type2 ~ "*)OBJ_bsearch_(CHECKED_PTR_OF!(" ~ type1 ~ ")(key),CHECKED_PTR_OF!(" ~ type2 ~ ")(base),
num, " ~ type2 ~ ".sizeof,
" ~ cmp ~ "_BSEARCH_CMP_FN))";
}
// FIXME: Not translated due to confusing original code ("type_2=CHECKED_PTR_OF"?)
// #define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \
// ((type2*)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \
// num,sizeof(type2), \
// (()CHECKED_PTR_OF(type1,cmp##_type_1), \
// ()type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \
// cmp##_BSEARCH_CMP_FN)),flags)
int OBJ_new_nid(int num);
int OBJ_add_object(const(ASN1_OBJECT)* obj);
int OBJ_create(const(char)* oid,const(char)* sn,const(char)* ln);
void OBJ_cleanup();
int OBJ_create_objects(BIO* in_);
int OBJ_find_sigid_algs(int signid, int* pdig_nid, int* ppkey_nid);
int OBJ_find_sigid_by_algs(int* psignid, int dig_nid, int pkey_nid);
int OBJ_add_sigid(int signid, int dig_id, int pkey_id);
void OBJ_sigid_free();
extern int obj_cleanup_defer;
void check_defer(int nid);
/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
* made after this point may be overwritten when the script is next run.
*/
void ERR_load_OBJ_strings();
/* Error codes for the OBJ functions. */
/* Function codes. */
enum OBJ_F_OBJ_ADD_OBJECT = "105";
enum OBJ_F_OBJ_CREATE = "100";
enum OBJ_F_OBJ_DUP = "101";
enum OBJ_F_OBJ_NAME_NEW_INDEX = "106";
enum OBJ_F_OBJ_NID2LN = "102";
enum OBJ_F_OBJ_NID2OBJ = "103";
enum OBJ_F_OBJ_NID2SN = "104";
/* Reason codes. */
enum OBJ_R_MALLOC_FAILURE = "100";
enum OBJ_R_UNKNOWN_NID = "101";