1 /* $OpenBSD: objects.h,v 1.12 2017/01/21 04:53:22 jsing Exp $ */ 2 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 3 * All rights reserved. 4 * 5 * This package is an SSL implementation written 6 * by Eric Young (eay@cryptsoft.com). 7 * The implementation was written so as to conform with Netscapes SSL. 8 * 9 * This library is free for commercial and non-commercial use as core.stdc.config.c_long as 10 * the following conditions are aheared to. The following conditions 11 * apply to all code found in this distribution, be it the RC4, RSA, 12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13 * included with this distribution is covered by the same copyright terms 14 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15 * 16 * Copyright remains Eric Young's, and as such any Copyright notices in 17 * the code are not to be removed. 18 * If this package is used in a product, Eric Young should be given attribution 19 * as the author of the parts of the library used. 20 * This can be in the form of a textual message at program startup or 21 * in documentation (online or textual) provided with the package. 22 * 23 * Redistribution and use in source and binary forms, with or without 24 * modification, are permitted provided that the following conditions 25 * are met: 26 * 1. Redistributions of source code must retain the copyright 27 * notice, this list of conditions and the following disclaimer. 28 * 2. Redistributions in binary form must reproduce the above copyright 29 * notice, this list of conditions and the following disclaimer in the 30 * documentation and/or other materials provided with the distribution. 31 * 3. All advertising materials mentioning features or use of this software 32 * must display the following acknowledgement: 33 * "This product includes cryptographic software written by 34 * Eric Young (eay@cryptsoft.com)" 35 * The word 'cryptographic' can be left out if the rouines from the library 36 * being used are not cryptographic related :-). 37 * 4. If you include any Windows specific code (or a derivative thereof) from 38 * the apps directory (application code) you must include an acknowledgement: 39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 40 * 41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 51 * SUCH DAMAGE. 52 * 53 * The licence and distribution terms for any publically available version or 54 * derivative of this code cannot be changed. i.e. this code cannot simply be 55 * copied and put under another distribution licence 56 * [including the GNU Public Licence.] 57 */ 58 module libressl_d.openssl.objects; 59 60 61 private static import core.stdc.config; 62 public import libressl_d.openssl.asn1; 63 public import libressl_d.openssl.bio; 64 65 version = USE_OBJ_MAC; 66 67 version (USE_OBJ_MAC) { 68 public import libressl_d.openssl.obj_mac; 69 } else { 70 enum SN_undef = "UNDEF"; 71 enum LN_undef = "undefined"; 72 enum NID_undef = 0; 73 enum OBJ_undef = 0L; 74 75 enum SN_Algorithm = "Algorithm"; 76 enum LN_algorithm = "algorithm"; 77 enum NID_algorithm = 38; 78 //#define OBJ_algorithm 1L, 3L, 14L, 3L, 2L 79 80 enum LN_rsadsi = "rsadsi"; 81 enum NID_rsadsi = 1; 82 //#define OBJ_rsadsi 1L, 2L, 840L, 113549L 83 84 enum LN_pkcs = "pkcs"; 85 enum NID_pkcs = 2; 86 //#define OBJ_pkcs .OBJ_rsadsi, 1L 87 88 enum SN_md2 = "MD2"; 89 enum LN_md2 = "md2"; 90 enum NID_md2 = 3; 91 //#define OBJ_md2 .OBJ_rsadsi, 2L, 2L 92 93 enum SN_md5 = "MD5"; 94 enum LN_md5 = "md5"; 95 enum NID_md5 = 4; 96 //#define OBJ_md5 .OBJ_rsadsi, 2L, 5L 97 98 enum SN_rc4 = "RC4"; 99 enum LN_rc4 = "rc4"; 100 enum NID_rc4 = 5; 101 //#define OBJ_rc4 .OBJ_rsadsi, 3L, 4L 102 103 enum LN_rsaEncryption = "rsaEncryption"; 104 enum NID_rsaEncryption = 6; 105 //#define OBJ_rsaEncryption .OBJ_pkcs, 1L, 1L 106 107 enum SN_md2WithRSAEncryption = "RSA-MD2"; 108 enum LN_md2WithRSAEncryption = "md2WithRSAEncryption"; 109 enum NID_md2WithRSAEncryption = 7; 110 //#define OBJ_md2WithRSAEncryption .OBJ_pkcs, 1L, 2L 111 112 enum SN_md5WithRSAEncryption = "RSA-MD5"; 113 enum LN_md5WithRSAEncryption = "md5WithRSAEncryption"; 114 enum NID_md5WithRSAEncryption = 8; 115 //#define OBJ_md5WithRSAEncryption .OBJ_pkcs, 1L, 4L 116 117 enum SN_pbeWithMD2AndDES_CBC = "PBE-MD2-DES"; 118 enum LN_pbeWithMD2AndDES_CBC = "pbeWithMD2AndDES-CBC"; 119 enum NID_pbeWithMD2AndDES_CBC = 9; 120 //#define OBJ_pbeWithMD2AndDES_CBC .OBJ_pkcs, 5L, 1L 121 122 enum SN_pbeWithMD5AndDES_CBC = "PBE-MD5-DES"; 123 enum LN_pbeWithMD5AndDES_CBC = "pbeWithMD5AndDES-CBC"; 124 enum NID_pbeWithMD5AndDES_CBC = 10; 125 //#define OBJ_pbeWithMD5AndDES_CBC .OBJ_pkcs, 5L, 3L 126 127 enum LN_X500 = "X500"; 128 enum NID_X500 = 11; 129 //#define OBJ_X500 2L, 5L 130 131 enum LN_X509 = "X509"; 132 enum NID_X509 = 12; 133 //#define OBJ_X509 .OBJ_X500, 4L 134 135 enum SN_commonName = "CN"; 136 enum LN_commonName = "commonName"; 137 enum NID_commonName = 13; 138 //#define OBJ_commonName .OBJ_X509, 3L 139 140 enum SN_countryName = "C"; 141 enum LN_countryName = "countryName"; 142 enum NID_countryName = 14; 143 //#define OBJ_countryName .OBJ_X509, 6L 144 145 enum SN_localityName = "L"; 146 enum LN_localityName = "localityName"; 147 enum NID_localityName = 15; 148 //#define OBJ_localityName .OBJ_X509, 7L 149 150 /* Postal Address? PA */ 151 152 /* should be "ST" (rfc1327) but MS uses 'S' */ 153 enum SN_stateOrProvinceName = "ST"; 154 enum LN_stateOrProvinceName = "stateOrProvinceName"; 155 enum NID_stateOrProvinceName = 16; 156 //#define OBJ_stateOrProvinceName .OBJ_X509, 8L 157 158 enum SN_organizationName = "O"; 159 enum LN_organizationName = "organizationName"; 160 enum NID_organizationName = 17; 161 //#define OBJ_organizationName .OBJ_X509, 10L 162 163 enum SN_organizationalUnitName = "OU"; 164 enum LN_organizationalUnitName = "organizationalUnitName"; 165 enum NID_organizationalUnitName = 18; 166 //#define OBJ_organizationalUnitName .OBJ_X509, 11L 167 168 enum SN_rsa = "RSA"; 169 enum LN_rsa = "rsa"; 170 enum NID_rsa = 19; 171 //#define OBJ_rsa .OBJ_X500, 8L, 1L, 1L 172 173 enum LN_pkcs7 = "pkcs7"; 174 enum NID_pkcs7 = 20; 175 //#define OBJ_pkcs7 .OBJ_pkcs, 7L 176 177 enum LN_pkcs7_data = "pkcs7-data"; 178 enum NID_pkcs7_data = 21; 179 //#define OBJ_pkcs7_data .OBJ_pkcs7, 1L 180 181 enum LN_pkcs7_signed = "pkcs7-signedData"; 182 enum NID_pkcs7_signed = 22; 183 //#define OBJ_pkcs7_signed .OBJ_pkcs7, 2L 184 185 enum LN_pkcs7_enveloped = "pkcs7-envelopedData"; 186 enum NID_pkcs7_enveloped = 23; 187 //#define OBJ_pkcs7_enveloped .OBJ_pkcs7, 3L 188 189 enum LN_pkcs7_signedAndEnveloped = "pkcs7-signedAndEnvelopedData"; 190 enum NID_pkcs7_signedAndEnveloped = 24; 191 //#define OBJ_pkcs7_signedAndEnveloped .OBJ_pkcs7, 4L 192 193 enum LN_pkcs7_digest = "pkcs7-digestData"; 194 enum NID_pkcs7_digest = 25; 195 //#define OBJ_pkcs7_digest .OBJ_pkcs7, 5L 196 197 enum LN_pkcs7_encrypted = "pkcs7-encryptedData"; 198 enum NID_pkcs7_encrypted = 26; 199 //#define OBJ_pkcs7_encrypted .OBJ_pkcs7, 6L 200 201 enum LN_pkcs3 = "pkcs3"; 202 enum NID_pkcs3 = 27; 203 //#define OBJ_pkcs3 .OBJ_pkcs, 3L 204 205 enum LN_dhKeyAgreement = "dhKeyAgreement"; 206 enum NID_dhKeyAgreement = 28; 207 //#define OBJ_dhKeyAgreement .OBJ_pkcs3, 1L 208 209 enum SN_des_ecb = "DES-ECB"; 210 enum LN_des_ecb = "des-ecb"; 211 enum NID_des_ecb = 29; 212 //#define OBJ_des_ecb .OBJ_algorithm, 6L 213 214 enum SN_des_cfb64 = "DES-CFB"; 215 enum LN_des_cfb64 = "des-cfb"; 216 enum NID_des_cfb64 = 30; 217 /* IV + num */ 218 //#define OBJ_des_cfb64 .OBJ_algorithm, 9L 219 220 enum SN_des_cbc = "DES-CBC"; 221 enum LN_des_cbc = "des-cbc"; 222 enum NID_des_cbc = 31; 223 /* IV */ 224 //#define OBJ_des_cbc .OBJ_algorithm, 7L 225 226 enum SN_des_ede = "DES-EDE"; 227 enum LN_des_ede = "des-ede"; 228 enum NID_des_ede = 32; 229 /* ?? */ 230 //#define OBJ_des_ede .OBJ_algorithm, 17L 231 232 enum SN_des_ede3 = "DES-EDE3"; 233 enum LN_des_ede3 = "des-ede3"; 234 enum NID_des_ede3 = 33; 235 236 enum SN_idea_cbc = "IDEA-CBC"; 237 enum LN_idea_cbc = "idea-cbc"; 238 enum NID_idea_cbc = 34; 239 //#define OBJ_idea_cbc 1L, 3L, 6L, 1L, 4L, 1L, 188L, 7L, 1L, 1L, 2L 240 241 enum SN_idea_cfb64 = "IDEA-CFB"; 242 enum LN_idea_cfb64 = "idea-cfb"; 243 enum NID_idea_cfb64 = 35; 244 245 enum SN_idea_ecb = "IDEA-ECB"; 246 enum LN_idea_ecb = "idea-ecb"; 247 enum NID_idea_ecb = 36; 248 249 enum SN_rc2_cbc = "RC2-CBC"; 250 enum LN_rc2_cbc = "rc2-cbc"; 251 enum NID_rc2_cbc = 37; 252 //#define OBJ_rc2_cbc .OBJ_rsadsi, 3L, 2L 253 254 enum SN_rc2_ecb = "RC2-ECB"; 255 enum LN_rc2_ecb = "rc2-ecb"; 256 enum NID_rc2_ecb = 38; 257 258 enum SN_rc2_cfb64 = "RC2-CFB"; 259 enum LN_rc2_cfb64 = "rc2-cfb"; 260 enum NID_rc2_cfb64 = 39; 261 262 enum SN_rc2_ofb64 = "RC2-OFB"; 263 enum LN_rc2_ofb64 = "rc2-ofb"; 264 enum NID_rc2_ofb64 = 40; 265 266 enum SN_sha = "SHA"; 267 enum LN_sha = "sha"; 268 enum NID_sha = 41; 269 //#define OBJ_sha .OBJ_algorithm, 18L 270 271 enum SN_shaWithRSAEncryption = "RSA-SHA"; 272 enum LN_shaWithRSAEncryption = "shaWithRSAEncryption"; 273 enum NID_shaWithRSAEncryption = 42; 274 //#define OBJ_shaWithRSAEncryption .OBJ_algorithm, 15L 275 276 enum SN_des_ede_cbc = "DES-EDE-CBC"; 277 enum LN_des_ede_cbc = "des-ede-cbc"; 278 enum NID_des_ede_cbc = 43; 279 280 enum SN_des_ede3_cbc = "DES-EDE3-CBC"; 281 enum LN_des_ede3_cbc = "des-ede3-cbc"; 282 enum NID_des_ede3_cbc = 44; 283 //#define OBJ_des_ede3_cbc .OBJ_rsadsi, 3L, 7L 284 285 enum SN_des_ofb64 = "DES-OFB"; 286 enum LN_des_ofb64 = "des-ofb"; 287 enum NID_des_ofb64 = 45; 288 //#define OBJ_des_ofb64 .OBJ_algorithm, 8L 289 290 enum SN_idea_ofb64 = "IDEA-OFB"; 291 enum LN_idea_ofb64 = "idea-ofb"; 292 enum NID_idea_ofb64 = 46; 293 294 enum LN_pkcs9 = "pkcs9"; 295 enum NID_pkcs9 = 47; 296 //#define OBJ_pkcs9 .OBJ_pkcs, 9L 297 298 enum SN_pkcs9_emailAddress = "Email"; 299 enum LN_pkcs9_emailAddress = "emailAddress"; 300 enum NID_pkcs9_emailAddress = 48; 301 //#define OBJ_pkcs9_emailAddress .OBJ_pkcs9, 1L 302 303 enum LN_pkcs9_unstructuredName = "unstructuredName"; 304 enum NID_pkcs9_unstructuredName = 49; 305 //#define OBJ_pkcs9_unstructuredName .OBJ_pkcs9, 2L 306 307 enum LN_pkcs9_contentType = "contentType"; 308 enum NID_pkcs9_contentType = 50; 309 //#define OBJ_pkcs9_contentType .OBJ_pkcs9, 3L 310 311 enum LN_pkcs9_messageDigest = "messageDigest"; 312 enum NID_pkcs9_messageDigest = 51; 313 //#define OBJ_pkcs9_messageDigest .OBJ_pkcs9, 4L 314 315 enum LN_pkcs9_signingTime = "signingTime"; 316 enum NID_pkcs9_signingTime = 52; 317 //#define OBJ_pkcs9_signingTime .OBJ_pkcs9, 5L 318 319 enum LN_pkcs9_countersignature = "countersignature"; 320 enum NID_pkcs9_countersignature = 53; 321 //#define OBJ_pkcs9_countersignature .OBJ_pkcs9, 6L 322 323 enum LN_pkcs9_challengePassword = "challengePassword"; 324 enum NID_pkcs9_challengePassword = 54; 325 //#define OBJ_pkcs9_challengePassword .OBJ_pkcs9, 7L 326 327 enum LN_pkcs9_unstructuredAddress = "unstructuredAddress"; 328 enum NID_pkcs9_unstructuredAddress = 55; 329 //#define OBJ_pkcs9_unstructuredAddress .OBJ_pkcs9, 8L 330 331 enum LN_pkcs9_extCertAttributes = "extendedCertificateAttributes"; 332 enum NID_pkcs9_extCertAttributes = 56; 333 //#define OBJ_pkcs9_extCertAttributes .OBJ_pkcs9, 9L 334 335 enum SN_netscape = "Netscape"; 336 enum LN_netscape = "Netscape Communications Corp."; 337 enum NID_netscape = 57; 338 //#define OBJ_netscape 2L, 16L, 840L, 1L, 113730L 339 340 enum SN_netscape_cert_extension = "nsCertExt"; 341 enum LN_netscape_cert_extension = "Netscape Certificate Extension"; 342 enum NID_netscape_cert_extension = 58; 343 //#define OBJ_netscape_cert_extension .OBJ_netscape, 1L 344 345 enum SN_netscape_data_type = "nsDataType"; 346 enum LN_netscape_data_type = "Netscape Data Type"; 347 enum NID_netscape_data_type = 59; 348 //#define OBJ_netscape_data_type .OBJ_netscape, 2L 349 350 enum SN_des_ede_cfb64 = "DES-EDE-CFB"; 351 enum LN_des_ede_cfb64 = "des-ede-cfb"; 352 enum NID_des_ede_cfb64 = 60; 353 354 enum SN_des_ede3_cfb64 = "DES-EDE3-CFB"; 355 enum LN_des_ede3_cfb64 = "des-ede3-cfb"; 356 enum NID_des_ede3_cfb64 = 61; 357 358 enum SN_des_ede_ofb64 = "DES-EDE-OFB"; 359 enum LN_des_ede_ofb64 = "des-ede-ofb"; 360 enum NID_des_ede_ofb64 = 62; 361 362 enum SN_des_ede3_ofb64 = "DES-EDE3-OFB"; 363 enum LN_des_ede3_ofb64 = "des-ede3-ofb"; 364 enum NID_des_ede3_ofb64 = 63; 365 366 /* I'm not sure about the object ID */ 367 enum SN_sha1 = "SHA1"; 368 enum LN_sha1 = "sha1"; 369 enum NID_sha1 = 64; 370 //#define OBJ_sha1 .OBJ_algorithm, 26L 371 /* 28 Jun 1996 - eay */ 372 /* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ 373 374 enum SN_sha1WithRSAEncryption = "RSA-SHA1"; 375 enum LN_sha1WithRSAEncryption = "sha1WithRSAEncryption"; 376 enum NID_sha1WithRSAEncryption = 65; 377 //#define OBJ_sha1WithRSAEncryption .OBJ_pkcs, 1L, 5L 378 379 enum SN_dsaWithSHA = "DSA-SHA"; 380 enum LN_dsaWithSHA = "dsaWithSHA"; 381 enum NID_dsaWithSHA = 66; 382 //#define OBJ_dsaWithSHA .OBJ_algorithm, 13L 383 384 enum SN_dsa_2 = "DSA-old"; 385 enum LN_dsa_2 = "dsaEncryption-old"; 386 enum NID_dsa_2 = 67; 387 //#define OBJ_dsa_2 .OBJ_algorithm, 12L 388 389 /* proposed by microsoft to RSA */ 390 enum SN_pbeWithSHA1AndRC2_CBC = "PBE-SHA1-RC2-64"; 391 enum LN_pbeWithSHA1AndRC2_CBC = "pbeWithSHA1AndRC2-CBC"; 392 enum NID_pbeWithSHA1AndRC2_CBC = 68; 393 //#define OBJ_pbeWithSHA1AndRC2_CBC .OBJ_pkcs, 5L, 11L 394 395 /* 396 * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now 397 * defined explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something 398 * completely different. 399 */ 400 enum LN_id_pbkdf2 = "PBKDF2"; 401 enum NID_id_pbkdf2 = 69; 402 //#define OBJ_id_pbkdf2 .OBJ_pkcs, 5L, 12L 403 404 enum SN_dsaWithSHA1_2 = "DSA-SHA1-old"; 405 enum LN_dsaWithSHA1_2 = "dsaWithSHA1-old"; 406 enum NID_dsaWithSHA1_2 = 70; 407 /* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ 408 //#define OBJ_dsaWithSHA1_2 .OBJ_algorithm, 27L 409 410 enum SN_netscape_cert_type = "nsCertType"; 411 enum LN_netscape_cert_type = "Netscape Cert Type"; 412 enum NID_netscape_cert_type = 71; 413 //#define OBJ_netscape_cert_type .OBJ_netscape_cert_extension, 1L 414 415 enum SN_netscape_base_url = "nsBaseUrl"; 416 enum LN_netscape_base_url = "Netscape Base Url"; 417 enum NID_netscape_base_url = 72; 418 //#define OBJ_netscape_base_url .OBJ_netscape_cert_extension, 2L 419 420 enum SN_netscape_revocation_url = "nsRevocationUrl"; 421 enum LN_netscape_revocation_url = "Netscape Revocation Url"; 422 enum NID_netscape_revocation_url = 73; 423 //#define OBJ_netscape_revocation_url .OBJ_netscape_cert_extension, 3L 424 425 enum SN_netscape_ca_revocation_url = "nsCaRevocationUrl"; 426 enum LN_netscape_ca_revocation_url = "Netscape CA Revocation Url"; 427 enum NID_netscape_ca_revocation_url = 74; 428 //#define OBJ_netscape_ca_revocation_url .OBJ_netscape_cert_extension, 4L 429 430 enum SN_netscape_renewal_url = "nsRenewalUrl"; 431 enum LN_netscape_renewal_url = "Netscape Renewal Url"; 432 enum NID_netscape_renewal_url = 75; 433 //#define OBJ_netscape_renewal_url .OBJ_netscape_cert_extension, 7L 434 435 enum SN_netscape_ca_policy_url = "nsCaPolicyUrl"; 436 enum LN_netscape_ca_policy_url = "Netscape CA Policy Url"; 437 enum NID_netscape_ca_policy_url = 76; 438 //#define OBJ_netscape_ca_policy_url .OBJ_netscape_cert_extension, 8L 439 440 enum SN_netscape_ssl_server_name = "nsSslServerName"; 441 enum LN_netscape_ssl_server_name = "Netscape SSL Server Name"; 442 enum NID_netscape_ssl_server_name = 77; 443 //#define OBJ_netscape_ssl_server_name .OBJ_netscape_cert_extension, 12L 444 445 enum SN_netscape_comment = "nsComment"; 446 enum LN_netscape_comment = "Netscape Comment"; 447 enum NID_netscape_comment = 78; 448 //#define OBJ_netscape_comment .OBJ_netscape_cert_extension, 13L 449 450 enum SN_netscape_cert_sequence = "nsCertSequence"; 451 enum LN_netscape_cert_sequence = "Netscape Certificate Sequence"; 452 enum NID_netscape_cert_sequence = 79; 453 //#define OBJ_netscape_cert_sequence .OBJ_netscape_data_type, 5L 454 455 enum SN_desx_cbc = "DESX-CBC"; 456 enum LN_desx_cbc = "desx-cbc"; 457 enum NID_desx_cbc = 80; 458 459 enum SN_id_ce = "id-ce"; 460 enum NID_id_ce = 81; 461 //#define OBJ_id_ce 2L, 5L, 29L 462 463 enum SN_subject_key_identifier = "subjectKeyIdentifier"; 464 enum LN_subject_key_identifier = "X509v3 Subject Key Identifier"; 465 enum NID_subject_key_identifier = 82; 466 //#define OBJ_subject_key_identifier .OBJ_id_ce, 14L 467 468 enum SN_key_usage = "keyUsage"; 469 enum LN_key_usage = "X509v3 Key Usage"; 470 enum NID_key_usage = 83; 471 //#define OBJ_key_usage .OBJ_id_ce, 15L 472 473 enum SN_private_key_usage_period = "privateKeyUsagePeriod"; 474 enum LN_private_key_usage_period = "X509v3 Private Key Usage Period"; 475 enum NID_private_key_usage_period = 84; 476 //#define OBJ_private_key_usage_period .OBJ_id_ce, 16L 477 478 enum SN_subject_alt_name = "subjectAltName"; 479 enum LN_subject_alt_name = "X509v3 Subject Alternative Name"; 480 enum NID_subject_alt_name = 85; 481 //#define OBJ_subject_alt_name .OBJ_id_ce, 17L 482 483 enum SN_issuer_alt_name = "issuerAltName"; 484 enum LN_issuer_alt_name = "X509v3 Issuer Alternative Name"; 485 enum NID_issuer_alt_name = 86; 486 //#define OBJ_issuer_alt_name .OBJ_id_ce, 18L 487 488 enum SN_basic_constraints = "basicConstraints"; 489 enum LN_basic_constraints = "X509v3 Basic Constraints"; 490 enum NID_basic_constraints = 87; 491 //#define OBJ_basic_constraints .OBJ_id_ce, 19L 492 493 enum SN_crl_number = "crlNumber"; 494 enum LN_crl_number = "X509v3 CRL Number"; 495 enum NID_crl_number = 88; 496 //#define OBJ_crl_number .OBJ_id_ce, 20L 497 498 enum SN_certificate_policies = "certificatePolicies"; 499 enum LN_certificate_policies = "X509v3 Certificate Policies"; 500 enum NID_certificate_policies = 89; 501 //#define OBJ_certificate_policies .OBJ_id_ce, 32L 502 503 enum SN_authority_key_identifier = "authorityKeyIdentifier"; 504 enum LN_authority_key_identifier = "X509v3 Authority Key Identifier"; 505 enum NID_authority_key_identifier = 90; 506 //#define OBJ_authority_key_identifier .OBJ_id_ce, 35L 507 508 enum SN_bf_cbc = "BF-CBC"; 509 enum LN_bf_cbc = "bf-cbc"; 510 enum NID_bf_cbc = 91; 511 //#define OBJ_bf_cbc 1L, 3L, 6L, 1L, 4L, 1L, 3029L, 1L, 2L 512 513 enum SN_bf_ecb = "BF-ECB"; 514 enum LN_bf_ecb = "bf-ecb"; 515 enum NID_bf_ecb = 92; 516 517 enum SN_bf_cfb64 = "BF-CFB"; 518 enum LN_bf_cfb64 = "bf-cfb"; 519 enum NID_bf_cfb64 = 93; 520 521 enum SN_bf_ofb64 = "BF-OFB"; 522 enum LN_bf_ofb64 = "bf-ofb"; 523 enum NID_bf_ofb64 = 94; 524 525 enum SN_mdc2 = "MDC2"; 526 enum LN_mdc2 = "mdc2"; 527 enum NID_mdc2 = 95; 528 //#define OBJ_mdc2 2L, 5L, 8L, 3L, 101L 529 /* An alternative? 1L,3L,14L,3L,2L,19L */ 530 531 enum SN_mdc2WithRSA = "RSA-MDC2"; 532 enum LN_mdc2WithRSA = "mdc2withRSA"; 533 enum NID_mdc2WithRSA = 96; 534 //#define OBJ_mdc2WithRSA 2L, 5L, 8L, 3L, 100L 535 536 enum SN_rc4_40 = "RC4-40"; 537 enum LN_rc4_40 = "rc4-40"; 538 enum NID_rc4_40 = 97; 539 540 enum SN_rc2_40_cbc = "RC2-40-CBC"; 541 enum LN_rc2_40_cbc = "rc2-40-cbc"; 542 enum NID_rc2_40_cbc = 98; 543 544 enum SN_givenName = "G"; 545 enum LN_givenName = "givenName"; 546 enum NID_givenName = 99; 547 //#define OBJ_givenName .OBJ_X509, 42L 548 549 enum SN_surname = "S"; 550 enum LN_surname = "surname"; 551 enum NID_surname = 100; 552 //#define OBJ_surname .OBJ_X509, 4L 553 554 enum SN_initials = "I"; 555 enum LN_initials = "initials"; 556 enum NID_initials = 101; 557 //#define OBJ_initials .OBJ_X509, 43L 558 559 enum SN_uniqueIdentifier = "UID"; 560 enum LN_uniqueIdentifier = "uniqueIdentifier"; 561 enum NID_uniqueIdentifier = 102; 562 //#define OBJ_uniqueIdentifier .OBJ_X509, 45L 563 564 enum SN_crl_distribution_points = "crlDistributionPoints"; 565 enum LN_crl_distribution_points = "X509v3 CRL Distribution Points"; 566 enum NID_crl_distribution_points = 103; 567 //#define OBJ_crl_distribution_points .OBJ_id_ce, 31L 568 569 enum SN_md5WithRSA = "RSA-NP-MD5"; 570 enum LN_md5WithRSA = "md5WithRSA"; 571 enum NID_md5WithRSA = 104; 572 //#define OBJ_md5WithRSA .OBJ_algorithm, 3L 573 574 enum SN_serialNumber = "SN"; 575 enum LN_serialNumber = "serialNumber"; 576 enum NID_serialNumber = 105; 577 //#define OBJ_serialNumber .OBJ_X509, 5L 578 579 enum SN_title = "T"; 580 enum LN_title = "title"; 581 enum NID_title = 106; 582 //#define OBJ_title .OBJ_X509, 12L 583 584 enum SN_description = "D"; 585 enum LN_description = "description"; 586 enum NID_description = 107; 587 //#define OBJ_description .OBJ_X509, 13L 588 589 /* CAST5 is CAST-128, I'm just sticking with the documentation */ 590 enum SN_cast5_cbc = "CAST5-CBC"; 591 enum LN_cast5_cbc = "cast5-cbc"; 592 enum NID_cast5_cbc = 108; 593 //#define OBJ_cast5_cbc 1L, 2L, 840L, 113533L, 7L, 66L, 10L 594 595 enum SN_cast5_ecb = "CAST5-ECB"; 596 enum LN_cast5_ecb = "cast5-ecb"; 597 enum NID_cast5_ecb = 109; 598 599 enum SN_cast5_cfb64 = "CAST5-CFB"; 600 enum LN_cast5_cfb64 = "cast5-cfb"; 601 enum NID_cast5_cfb64 = 110; 602 603 enum SN_cast5_ofb64 = "CAST5-OFB"; 604 enum LN_cast5_ofb64 = "cast5-ofb"; 605 enum NID_cast5_ofb64 = 111; 606 607 enum LN_pbeWithMD5AndCast5_CBC = "pbeWithMD5AndCast5CBC"; 608 enum NID_pbeWithMD5AndCast5_CBC = 112; 609 //#define OBJ_pbeWithMD5AndCast5_CBC 1L, 2L, 840L, 113533L, 7L, 66L, 12L 610 611 /* 612 * This is one sun will soon be using :-( 613 * id-dsa-with-sha1 ID ::= { 614 * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } 615 */ 616 enum SN_dsaWithSHA1 = "DSA-SHA1"; 617 enum LN_dsaWithSHA1 = "dsaWithSHA1"; 618 enum NID_dsaWithSHA1 = 113; 619 //#define OBJ_dsaWithSHA1 1L, 2L, 840L, 10040L, 4L, 3L 620 621 enum NID_md5_sha1 = 114; 622 enum SN_md5_sha1 = "MD5-SHA1"; 623 enum LN_md5_sha1 = "md5-sha1"; 624 625 enum SN_sha1WithRSA = "RSA-SHA1-2"; 626 enum LN_sha1WithRSA = "sha1WithRSA"; 627 enum NID_sha1WithRSA = 115; 628 //#define OBJ_sha1WithRSA .OBJ_algorithm, 29L 629 630 enum SN_dsa = "DSA"; 631 enum LN_dsa = "dsaEncryption"; 632 enum NID_dsa = 116; 633 //#define OBJ_dsa 1L, 2L, 840L, 10040L, 4L, 1L 634 635 enum SN_ripemd160 = "RIPEMD160"; 636 enum LN_ripemd160 = "ripemd160"; 637 enum NID_ripemd160 = 117; 638 //#define OBJ_ripemd160 1L, 3L, 36L, 3L, 2L, 1L 639 640 /* 641 * The name should actually be rsaSignatureWithripemd160, but I'm going 642 * to continue using the convention I'm using with the other ciphers 643 */ 644 enum SN_ripemd160WithRSA = "RSA-RIPEMD160"; 645 enum LN_ripemd160WithRSA = "ripemd160WithRSA"; 646 enum NID_ripemd160WithRSA = 119; 647 //#define OBJ_ripemd160WithRSA 1L, 3L, 36L, 3L, 3L, 1L, 2L 648 649 /* 650 * Taken from rfc2040 651 * RC5_CBC_Parameters ::= SEQUENCE { 652 * version INTEGER (v1_0(16)), 653 * rounds INTEGER (8..127), 654 * blockSizeInBits INTEGER (64, 128), 655 * iv OCTET STRING OPTIONAL 656 * } 657 */ 658 enum SN_rc5_cbc = "RC5-CBC"; 659 enum LN_rc5_cbc = "rc5-cbc"; 660 enum NID_rc5_cbc = 120; 661 //#define OBJ_rc5_cbc .OBJ_rsadsi, 3L, 8L 662 663 enum SN_rc5_ecb = "RC5-ECB"; 664 enum LN_rc5_ecb = "rc5-ecb"; 665 enum NID_rc5_ecb = 121; 666 667 enum SN_rc5_cfb64 = "RC5-CFB"; 668 enum LN_rc5_cfb64 = "rc5-cfb"; 669 enum NID_rc5_cfb64 = 122; 670 671 enum SN_rc5_ofb64 = "RC5-OFB"; 672 enum LN_rc5_ofb64 = "rc5-ofb"; 673 enum NID_rc5_ofb64 = 123; 674 675 enum SN_rle_compression = "RLE"; 676 enum LN_rle_compression = "run length compression"; 677 enum NID_rle_compression = 124; 678 //#define OBJ_rle_compression 1L, 1L, 1L, 1L, 666L, 1L 679 680 enum SN_zlib_compression = "ZLIB"; 681 enum LN_zlib_compression = "zlib compression"; 682 enum NID_zlib_compression = 125; 683 //#define OBJ_zlib_compression 1L, 1L, 1L, 1L, 666L, 2L 684 685 enum SN_ext_key_usage = "extendedKeyUsage"; 686 enum LN_ext_key_usage = "X509v3 Extended Key Usage"; 687 enum NID_ext_key_usage = 126; 688 //#define OBJ_ext_key_usage .OBJ_id_ce, 37 689 690 enum SN_id_pkix = "PKIX"; 691 enum NID_id_pkix = 127; 692 //#define OBJ_id_pkix 1L, 3L, 6L, 1L, 5L, 5L, 7L 693 694 enum SN_id_kp = "id-kp"; 695 enum NID_id_kp = 128; 696 //#define OBJ_id_kp .OBJ_id_pkix, 3L 697 698 /* PKIX extended key usage OIDs */ 699 700 enum SN_server_auth = "serverAuth"; 701 enum LN_server_auth = "TLS Web Server Authentication"; 702 enum NID_server_auth = 129; 703 //#define OBJ_server_auth .OBJ_id_kp, 1L 704 705 enum SN_client_auth = "clientAuth"; 706 enum LN_client_auth = "TLS Web Client Authentication"; 707 enum NID_client_auth = 130; 708 //#define OBJ_client_auth .OBJ_id_kp, 2L 709 710 enum SN_code_sign = "codeSigning"; 711 enum LN_code_sign = "Code Signing"; 712 enum NID_code_sign = 131; 713 //#define OBJ_code_sign .OBJ_id_kp, 3L 714 715 enum SN_email_protect = "emailProtection"; 716 enum LN_email_protect = "E-mail Protection"; 717 enum NID_email_protect = 132; 718 //#define OBJ_email_protect .OBJ_id_kp, 4L 719 720 enum SN_time_stamp = "timeStamping"; 721 enum LN_time_stamp = "Time Stamping"; 722 enum NID_time_stamp = 133; 723 //#define OBJ_time_stamp .OBJ_id_kp, 8L 724 725 /* Additional extended key usage OIDs: Microsoft */ 726 727 enum SN_ms_code_ind = "msCodeInd"; 728 enum LN_ms_code_ind = "Microsoft Individual Code Signing"; 729 enum NID_ms_code_ind = 134; 730 //#define OBJ_ms_code_ind 1L, 3L, 6L, 1L, 4L, 1L, 311L, 2L, 1L, 21L 731 732 enum SN_ms_code_com = "msCodeCom"; 733 enum LN_ms_code_com = "Microsoft Commercial Code Signing"; 734 enum NID_ms_code_com = 135; 735 //#define OBJ_ms_code_com 1L, 3L, 6L, 1L, 4L, 1L, 311L, 2L, 1L, 22L 736 737 enum SN_ms_ctl_sign = "msCTLSign"; 738 enum LN_ms_ctl_sign = "Microsoft Trust List Signing"; 739 enum NID_ms_ctl_sign = 136; 740 //#define OBJ_ms_ctl_sign 1L, 3L, 6L, 1L, 4L, 1L, 311L, 10L, 3L, 1L 741 742 enum SN_ms_sgc = "msSGC"; 743 enum LN_ms_sgc = "Microsoft Server Gated Crypto"; 744 enum NID_ms_sgc = 137; 745 //#define OBJ_ms_sgc 1L, 3L, 6L, 1L, 4L, 1L, 311L, 10L, 3L, 3L 746 747 enum SN_ms_efs = "msEFS"; 748 enum LN_ms_efs = "Microsoft Encrypted File System"; 749 enum NID_ms_efs = 138; 750 //#define OBJ_ms_efs 1L, 3L, 6L, 1L, 4L, 1L, 311L, 10L, 3L, 4L 751 752 /* Additional usage: Netscape */ 753 754 enum SN_ns_sgc = "nsSGC"; 755 enum LN_ns_sgc = "Netscape Server Gated Crypto"; 756 enum NID_ns_sgc = 139; 757 //#define OBJ_ns_sgc .OBJ_netscape, 4L, 1L 758 759 enum SN_delta_crl = "deltaCRL"; 760 enum LN_delta_crl = "X509v3 Delta CRL Indicator"; 761 enum NID_delta_crl = 140; 762 //#define OBJ_delta_crl .OBJ_id_ce, 27L 763 764 enum SN_crl_reason = "CRLReason"; 765 enum LN_crl_reason = "CRL Reason Code"; 766 enum NID_crl_reason = 141; 767 //#define OBJ_crl_reason .OBJ_id_ce, 21L 768 769 enum SN_invalidity_date = "invalidityDate"; 770 enum LN_invalidity_date = "Invalidity Date"; 771 enum NID_invalidity_date = 142; 772 //#define OBJ_invalidity_date .OBJ_id_ce, 24L 773 774 enum SN_sxnet = "SXNetID"; 775 enum LN_sxnet = "Strong Extranet ID"; 776 enum NID_sxnet = 143; 777 //#define OBJ_sxnet 1L, 3L, 101L, 1L, 4L, 1L 778 779 /* PKCS12 and related OBJECT IDENTIFIERS */ 780 781 //#define OBJ_pkcs12 .OBJ_pkcs, 12L 782 //#define OBJ_pkcs12_pbeids .OBJ_pkcs12, 1 783 784 enum SN_pbe_WithSHA1And128BitRC4 = "PBE-SHA1-RC4-128"; 785 enum LN_pbe_WithSHA1And128BitRC4 = "pbeWithSHA1And128BitRC4"; 786 enum NID_pbe_WithSHA1And128BitRC4 = 144; 787 //#define OBJ_pbe_WithSHA1And128BitRC4 .OBJ_pkcs12_pbeids, 1L 788 789 enum SN_pbe_WithSHA1And40BitRC4 = "PBE-SHA1-RC4-40"; 790 enum LN_pbe_WithSHA1And40BitRC4 = "pbeWithSHA1And40BitRC4"; 791 enum NID_pbe_WithSHA1And40BitRC4 = 145; 792 //#define OBJ_pbe_WithSHA1And40BitRC4 .OBJ_pkcs12_pbeids, 2L 793 794 enum SN_pbe_WithSHA1And3_Key_TripleDES_CBC = "PBE-SHA1-3DES"; 795 enum LN_pbe_WithSHA1And3_Key_TripleDES_CBC = "pbeWithSHA1And3-KeyTripleDES-CBC"; 796 enum NID_pbe_WithSHA1And3_Key_TripleDES_CBC = 146; 797 //#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC .OBJ_pkcs12_pbeids, 3L 798 799 enum SN_pbe_WithSHA1And2_Key_TripleDES_CBC = "PBE-SHA1-2DES"; 800 enum LN_pbe_WithSHA1And2_Key_TripleDES_CBC = "pbeWithSHA1And2-KeyTripleDES-CBC"; 801 enum NID_pbe_WithSHA1And2_Key_TripleDES_CBC = 147; 802 //#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC .OBJ_pkcs12_pbeids, 4L 803 804 enum SN_pbe_WithSHA1And128BitRC2_CBC = "PBE-SHA1-RC2-128"; 805 enum LN_pbe_WithSHA1And128BitRC2_CBC = "pbeWithSHA1And128BitRC2-CBC"; 806 enum NID_pbe_WithSHA1And128BitRC2_CBC = 148; 807 //#define OBJ_pbe_WithSHA1And128BitRC2_CBC .OBJ_pkcs12_pbeids, 5L 808 809 enum SN_pbe_WithSHA1And40BitRC2_CBC = "PBE-SHA1-RC2-40"; 810 enum LN_pbe_WithSHA1And40BitRC2_CBC = "pbeWithSHA1And40BitRC2-CBC"; 811 enum NID_pbe_WithSHA1And40BitRC2_CBC = 149; 812 //#define OBJ_pbe_WithSHA1And40BitRC2_CBC .OBJ_pkcs12_pbeids, 6L 813 814 //#define OBJ_pkcs12_Version1 .OBJ_pkcs12, 10L 815 816 //#define OBJ_pkcs12_BagIds .OBJ_pkcs12_Version1, 1L 817 818 enum LN_keyBag = "keyBag"; 819 enum NID_keyBag = 150; 820 //#define OBJ_keyBag .OBJ_pkcs12_BagIds, 1L 821 822 enum LN_pkcs8ShroudedKeyBag = "pkcs8ShroudedKeyBag"; 823 enum NID_pkcs8ShroudedKeyBag = 151; 824 //#define OBJ_pkcs8ShroudedKeyBag .OBJ_pkcs12_BagIds, 2L 825 826 enum LN_certBag = "certBag"; 827 enum NID_certBag = 152; 828 //#define OBJ_certBag .OBJ_pkcs12_BagIds, 3L 829 830 enum LN_crlBag = "crlBag"; 831 enum NID_crlBag = 153; 832 //#define OBJ_crlBag .OBJ_pkcs12_BagIds, 4L 833 834 enum LN_secretBag = "secretBag"; 835 enum NID_secretBag = 154; 836 //#define OBJ_secretBag .OBJ_pkcs12_BagIds, 5L 837 838 enum LN_safeContentsBag = "safeContentsBag"; 839 enum NID_safeContentsBag = 155; 840 //#define OBJ_safeContentsBag .OBJ_pkcs12_BagIds, 6L 841 842 enum LN_friendlyName = "friendlyName"; 843 enum NID_friendlyName = 156; 844 //#define OBJ_friendlyName .OBJ_pkcs9, 20L 845 846 enum LN_localKeyID = "localKeyID"; 847 enum NID_localKeyID = 157; 848 //#define OBJ_localKeyID .OBJ_pkcs9, 21L 849 850 //#define OBJ_certTypes .OBJ_pkcs9, 22L 851 852 enum LN_x509Certificate = "x509Certificate"; 853 enum NID_x509Certificate = 158; 854 //#define OBJ_x509Certificate .OBJ_certTypes, 1L 855 856 enum LN_sdsiCertificate = "sdsiCertificate"; 857 enum NID_sdsiCertificate = 159; 858 //#define OBJ_sdsiCertificate .OBJ_certTypes, 2L 859 860 //#define OBJ_crlTypes .OBJ_pkcs9, 23L 861 862 enum LN_x509Crl = "x509Crl"; 863 enum NID_x509Crl = 160; 864 //#define OBJ_x509Crl .OBJ_crlTypes, 1L 865 866 /* PKCS#5 v2 OIDs */ 867 868 enum LN_pbes2 = "PBES2"; 869 enum NID_pbes2 = 161; 870 //#define OBJ_pbes2 .OBJ_pkcs, 5L, 13L 871 872 enum LN_pbmac1 = "PBMAC1"; 873 enum NID_pbmac1 = 162; 874 //#define OBJ_pbmac1 .OBJ_pkcs, 5L, 14L 875 876 enum LN_hmacWithSHA1 = "hmacWithSHA1"; 877 enum NID_hmacWithSHA1 = 163; 878 //#define OBJ_hmacWithSHA1 .OBJ_rsadsi, 2L, 7L 879 880 /* Policy Qualifier Ids */ 881 882 enum LN_id_qt_cps = "Policy Qualifier CPS"; 883 enum SN_id_qt_cps = "id-qt-cps"; 884 enum NID_id_qt_cps = 164; 885 //#define OBJ_id_qt_cps .OBJ_id_pkix, 2L, 1L 886 887 enum LN_id_qt_unotice = "Policy Qualifier User Notice"; 888 enum SN_id_qt_unotice = "id-qt-unotice"; 889 enum NID_id_qt_unotice = 165; 890 //#define OBJ_id_qt_unotice .OBJ_id_pkix, 2L, 2L 891 892 enum SN_rc2_64_cbc = "RC2-64-CBC"; 893 enum LN_rc2_64_cbc = "rc2-64-cbc"; 894 enum NID_rc2_64_cbc = 166; 895 896 enum SN_SMIMECapabilities = "SMIME-CAPS"; 897 enum LN_SMIMECapabilities = "S/MIME Capabilities"; 898 enum NID_SMIMECapabilities = 167; 899 //#define OBJ_SMIMECapabilities .OBJ_pkcs9, 15L 900 901 enum SN_pbeWithMD2AndRC2_CBC = "PBE-MD2-RC2-64"; 902 enum LN_pbeWithMD2AndRC2_CBC = "pbeWithMD2AndRC2-CBC"; 903 enum NID_pbeWithMD2AndRC2_CBC = 168; 904 //#define OBJ_pbeWithMD2AndRC2_CBC .OBJ_pkcs, 5L, 4L 905 906 enum SN_pbeWithMD5AndRC2_CBC = "PBE-MD5-RC2-64"; 907 enum LN_pbeWithMD5AndRC2_CBC = "pbeWithMD5AndRC2-CBC"; 908 enum NID_pbeWithMD5AndRC2_CBC = 169; 909 //#define OBJ_pbeWithMD5AndRC2_CBC .OBJ_pkcs, 5L, 6L 910 911 enum SN_pbeWithSHA1AndDES_CBC = "PBE-SHA1-DES"; 912 enum LN_pbeWithSHA1AndDES_CBC = "pbeWithSHA1AndDES-CBC"; 913 enum NID_pbeWithSHA1AndDES_CBC = 170; 914 //#define OBJ_pbeWithSHA1AndDES_CBC .OBJ_pkcs, 5L, 10L 915 916 /* Extension request OIDs */ 917 918 enum LN_ms_ext_req = "Microsoft Extension Request"; 919 enum SN_ms_ext_req = "msExtReq"; 920 enum NID_ms_ext_req = 171; 921 //#define OBJ_ms_ext_req 1L, 3L, 6L, 1L, 4L, 1L, 311L, 2L, 1L, 14L 922 923 enum LN_ext_req = "Extension Request"; 924 enum SN_ext_req = "extReq"; 925 enum NID_ext_req = 172; 926 //#define OBJ_ext_req .OBJ_pkcs9, 14L 927 928 enum SN_name = "name"; 929 enum LN_name = "name"; 930 enum NID_name = 173; 931 //#define OBJ_name .OBJ_X509, 41L 932 933 enum SN_dnQualifier = "dnQualifier"; 934 enum LN_dnQualifier = "dnQualifier"; 935 enum NID_dnQualifier = 174; 936 //#define OBJ_dnQualifier .OBJ_X509, 46L 937 938 enum SN_id_pe = "id-pe"; 939 enum NID_id_pe = 175; 940 //#define OBJ_id_pe .OBJ_id_pkix, 1L 941 942 enum SN_id_ad = "id-ad"; 943 enum NID_id_ad = 176; 944 //#define OBJ_id_ad .OBJ_id_pkix, 48L 945 946 enum SN_info_access = "authorityInfoAccess"; 947 enum LN_info_access = "Authority Information Access"; 948 enum NID_info_access = 177; 949 //#define OBJ_info_access .OBJ_id_pe, 1L 950 951 enum SN_ad_OCSP = "OCSP"; 952 enum LN_ad_OCSP = "OCSP"; 953 enum NID_ad_OCSP = 178; 954 //#define OBJ_ad_OCSP .OBJ_id_ad, 1L 955 956 enum SN_ad_ca_issuers = "caIssuers"; 957 enum LN_ad_ca_issuers = "CA Issuers"; 958 enum NID_ad_ca_issuers = 179; 959 //#define OBJ_ad_ca_issuers .OBJ_id_ad, 2L 960 961 enum SN_OCSP_sign = "OCSPSigning"; 962 enum LN_OCSP_sign = "OCSP Signing"; 963 enum NID_OCSP_sign = 180; 964 //#define OBJ_OCSP_sign .OBJ_id_kp, 9L 965 } 966 967 enum OBJ_NAME_TYPE_UNDEF = 0x00; 968 enum OBJ_NAME_TYPE_MD_METH = 0x01; 969 enum OBJ_NAME_TYPE_CIPHER_METH = 0x02; 970 enum OBJ_NAME_TYPE_PKEY_METH = 0x03; 971 enum OBJ_NAME_TYPE_COMP_METH = 0x04; 972 enum OBJ_NAME_TYPE_NUM = 0x05; 973 974 enum OBJ_NAME_ALIAS = 0x8000; 975 976 enum OBJ_BSEARCH_VALUE_ON_NOMATCH = 0x01; 977 enum OBJ_BSEARCH_FIRST_VALUE_ON_MATCH = 0x02; 978 979 extern (C): 980 nothrow @nogc: 981 982 struct obj_name_st 983 { 984 int type; 985 int alias_; 986 const (char)* name; 987 const (char)* data; 988 } 989 990 alias OBJ_NAME = .obj_name_st; 991 992 alias OBJ_create_and_add_object = .OBJ_create; 993 994 int OBJ_NAME_init(); 995 int OBJ_NAME_new_index(core.stdc.config.c_ulong function(const (char)*) hash_func, int function(const (char)*, const (char)*) cmp_func, void function(const (char)*, int, const (char)*) free_func); 996 const (char)* OBJ_NAME_get(const (char)* name, int type); 997 int OBJ_NAME_add(const (char)* name, int type, const (char)* data); 998 int OBJ_NAME_remove(const (char)* name, int type); 999 1000 /** 1001 * -1 for everything 1002 */ 1003 void OBJ_NAME_cleanup(int type); 1004 1005 void OBJ_NAME_do_all(int type, void function(const (.OBJ_NAME)*, void* arg) fn, void* arg); 1006 void OBJ_NAME_do_all_sorted(int type, void function(const (.OBJ_NAME)*, void* arg) fn, void* arg); 1007 1008 libressl_d.openssl.asn1.ASN1_OBJECT* OBJ_dup(const (libressl_d.openssl.asn1.ASN1_OBJECT)* o); 1009 libressl_d.openssl.asn1.ASN1_OBJECT* OBJ_nid2obj(int n); 1010 const (char)* OBJ_nid2ln(int n); 1011 const (char)* OBJ_nid2sn(int n); 1012 int OBJ_obj2nid(const (libressl_d.openssl.asn1.ASN1_OBJECT)* o); 1013 libressl_d.openssl.asn1.ASN1_OBJECT* OBJ_txt2obj(const (char)* s, int no_name); 1014 int OBJ_obj2txt(char* buf, int buf_len, const (libressl_d.openssl.asn1.ASN1_OBJECT)* a, int no_name); 1015 int OBJ_txt2nid(const (char)* s); 1016 int OBJ_ln2nid(const (char)* s); 1017 int OBJ_sn2nid(const (char)* s); 1018 int OBJ_cmp(const (libressl_d.openssl.asn1.ASN1_OBJECT)* a, const (libressl_d.openssl.asn1.ASN1_OBJECT)* b); 1019 const (void)* OBJ_bsearch_(const (void)* key, const (void)* base, int num, int size, int function(const (void)*, const (void)*) cmp); 1020 const (void)* OBJ_bsearch_ex_(const (void)* key, const (void)* base, int num, int size, int function(const (void)*, const (void)*) cmp, int flags); 1021 1022 version (LIBRESSL_INTERNAL) { 1023 } else { 1024 //#define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) static int nm##_cmp_BSEARCH_CMP_FN(const (void)*, const (void)*); static int nm##_cmp(type1 const*, type2 const*); scope type2* OBJ_bsearch_##nm(type1* key, type2 const* base, int num) 1025 1026 //#define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) ._DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) 1027 //#define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) type2* OBJ_bsearch_##nm(type1* key, type2 const* base, int num) 1028 1029 /* 1030 * Unsolved problem: if a type is actually a pointer type, like 1031 * nid_triple is, then its impossible to get a const where you need 1032 * it. Consider: 1033 * 1034 * typedef int nid_triple[3]; 1035 * const (void)* a_; 1036 * const nid_triple const *a = a_; 1037 * 1038 * The assignement discards a const because what you really want is: 1039 * 1040 * const int const * const *a = a_; 1041 * 1042 * But if you do that, you lose the fact that a is an array of 3 ints, 1043 * which breaks comparison functions. 1044 * 1045 * Thus we end up having to cast, sadly, or unpack the 1046 * declarations. Or, as I finally did in this case, delcare nid_triple 1047 * to be a struct, which it should have been in the first place. 1048 * 1049 * Ben, August 2008. 1050 * 1051 * Also, strictly speaking not all types need be const, but handling 1052 * the non-constness means a lot of complication, and in practice 1053 * comparison routines do always not touch their arguments. 1054 */ 1055 1056 //#define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) static int nm##_cmp_BSEARCH_CMP_FN(const (void)* a_, const (void)* b_) { type1 const* a = a_; type2 const* b = b_; return nm##_cmp(a, b); } static type2* OBJ_bsearch_##nm(type1* key, type2 const* base, int num) { return (type2*) .OBJ_bsearch_(key, base, num, type2.sizeof, nm##_cmp_BSEARCH_CMP_FN); } extern void dummy_prototype(void) 1057 1058 //#define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) static int nm##_cmp_BSEARCH_CMP_FN(const (void)* a_, const (void)* b_) { type1 const* a = a_; type2 const* b = b_; return nm##_cmp(a, b); } type2* OBJ_bsearch_##nm(type1* key, type2 const* base, int num) { return (type2*) .OBJ_bsearch_(key, base, num, type2.sizeof, nm##_cmp_BSEARCH_CMP_FN); } extern void dummy_prototype(void) 1059 1060 //#define OBJ_bsearch(type1, key, type2, base, num, cmp) ((type2*) .OBJ_bsearch_(libressl_d.openssl.asn1.CHECKED_PTR_OF(type1, key), libressl_d.openssl.asn1.CHECKED_PTR_OF(type2, base), num, type2.sizeof, ((void) libressl_d.openssl.asn1.CHECKED_PTR_OF(type1, cmp##_type_1), (void) libressl_d.openssl.asn1.CHECKED_PTR_OF(type2, cmp##_type_2), cmp##_BSEARCH_CMP_FN))) 1061 1062 //#define OBJ_bsearch_ex(type1, key, type2, base, num, cmp, flags) ((type2*) .OBJ_bsearch_ex_(libressl_d.openssl.asn1.CHECKED_PTR_OF(type1, key), libressl_d.openssl.asn1.CHECKED_PTR_OF(type2, base), num, type2.sizeof, ((void) libressl_d.openssl.asn1.CHECKED_PTR_OF(type1, cmp##_type_1), (void) type_2 = libressl_d.openssl.asn1.CHECKED_PTR_OF(type2, cmp##_type_2), cmp##_BSEARCH_CMP_FN)), flags) 1063 } 1064 1065 int OBJ_new_nid(int num); 1066 int OBJ_add_object(const (libressl_d.openssl.asn1.ASN1_OBJECT)* obj); 1067 int OBJ_create(const (char)* oid, const (char)* sn, const (char)* ln); 1068 void OBJ_cleanup(); 1069 int OBJ_create_objects(libressl_d.openssl.bio.BIO* in_); 1070 1071 int OBJ_find_sigid_algs(int signid, int* pdig_nid, int* ppkey_nid); 1072 int OBJ_find_sigid_by_algs(int* psignid, int dig_nid, int pkey_nid); 1073 int OBJ_add_sigid(int signid, int dig_id, int pkey_id); 1074 void OBJ_sigid_free(); 1075 1076 extern __gshared int obj_cleanup_defer; 1077 void check_defer(int nid); 1078 1079 /* BEGIN ERROR CODES */ 1080 /* 1081 * The following lines are auto generated by the script mkerr.pl. Any changes 1082 * made after this point may be overwritten when the script is next run. 1083 */ 1084 void ERR_load_OBJ_strings(); 1085 1086 /* Error codes for the OBJ functions. */ 1087 1088 /* Function codes. */ 1089 enum OBJ_F_OBJ_ADD_OBJECT = 105; 1090 enum OBJ_F_OBJ_CREATE = 100; 1091 enum OBJ_F_OBJ_DUP = 101; 1092 enum OBJ_F_OBJ_NAME_NEW_INDEX = 106; 1093 enum OBJ_F_OBJ_NID2LN = 102; 1094 enum OBJ_F_OBJ_NID2OBJ = 103; 1095 enum OBJ_F_OBJ_NID2SN = 104; 1096 1097 /* Reason codes. */ 1098 enum OBJ_R_MALLOC_FAILURE = 100; 1099 enum OBJ_R_UNKNOWN_NID = 101;