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