155714Skris/* crypto/objects/objects.h */ 255714Skris/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 355714Skris * All rights reserved. 455714Skris * 555714Skris * This package is an SSL implementation written 655714Skris * by Eric Young (eay@cryptsoft.com). 755714Skris * The implementation was written so as to conform with Netscapes SSL. 8280304Sjkim * 955714Skris * This library is free for commercial and non-commercial use as long as 1055714Skris * the following conditions are aheared to. The following conditions 1155714Skris * apply to all code found in this distribution, be it the RC4, RSA, 1255714Skris * lhash, DES, etc., code; not just the SSL code. The SSL documentation 1355714Skris * included with this distribution is covered by the same copyright terms 1455714Skris * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15280304Sjkim * 1655714Skris * Copyright remains Eric Young's, and as such any Copyright notices in 1755714Skris * the code are not to be removed. 1855714Skris * If this package is used in a product, Eric Young should be given attribution 1955714Skris * as the author of the parts of the library used. 2055714Skris * This can be in the form of a textual message at program startup or 2155714Skris * in documentation (online or textual) provided with the package. 22280304Sjkim * 2355714Skris * Redistribution and use in source and binary forms, with or without 2455714Skris * modification, are permitted provided that the following conditions 2555714Skris * are met: 2655714Skris * 1. Redistributions of source code must retain the copyright 2755714Skris * notice, this list of conditions and the following disclaimer. 2855714Skris * 2. Redistributions in binary form must reproduce the above copyright 2955714Skris * notice, this list of conditions and the following disclaimer in the 3055714Skris * documentation and/or other materials provided with the distribution. 3155714Skris * 3. All advertising materials mentioning features or use of this software 3255714Skris * must display the following acknowledgement: 3355714Skris * "This product includes cryptographic software written by 3455714Skris * Eric Young (eay@cryptsoft.com)" 3555714Skris * The word 'cryptographic' can be left out if the rouines from the library 3655714Skris * being used are not cryptographic related :-). 37280304Sjkim * 4. If you include any Windows specific code (or a derivative thereof) from 3855714Skris * the apps directory (application code) you must include an acknowledgement: 3955714Skris * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 40280304Sjkim * 4155714Skris * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 4255714Skris * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 4355714Skris * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 4455714Skris * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 4555714Skris * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 4655714Skris * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 4755714Skris * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 4855714Skris * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 4955714Skris * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 5055714Skris * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 5155714Skris * SUCH DAMAGE. 52280304Sjkim * 5355714Skris * The licence and distribution terms for any publically available version or 5455714Skris * derivative of this code cannot be changed. i.e. this code cannot simply be 5555714Skris * copied and put under another distribution licence 5655714Skris * [including the GNU Public Licence.] 5755714Skris */ 5855714Skris 5955714Skris#ifndef HEADER_OBJECTS_H 60280304Sjkim# define HEADER_OBJECTS_H 6155714Skris 62280304Sjkim# define USE_OBJ_MAC 6355714Skris 64280304Sjkim# ifdef USE_OBJ_MAC 65280304Sjkim# include <openssl/obj_mac.h> 66280304Sjkim# else 67280304Sjkim# define SN_undef "UNDEF" 68280304Sjkim# define LN_undef "undefined" 69280304Sjkim# define NID_undef 0 70280304Sjkim# define OBJ_undef 0L 7155714Skris 72280304Sjkim# define SN_Algorithm "Algorithm" 73280304Sjkim# define LN_algorithm "algorithm" 74280304Sjkim# define NID_algorithm 38 75280304Sjkim# define OBJ_algorithm 1L,3L,14L,3L,2L 7655714Skris 77280304Sjkim# define LN_rsadsi "rsadsi" 78280304Sjkim# define NID_rsadsi 1 79280304Sjkim# define OBJ_rsadsi 1L,2L,840L,113549L 8055714Skris 81280304Sjkim# define LN_pkcs "pkcs" 82280304Sjkim# define NID_pkcs 2 83280304Sjkim# define OBJ_pkcs OBJ_rsadsi,1L 8455714Skris 85280304Sjkim# define SN_md2 "MD2" 86280304Sjkim# define LN_md2 "md2" 87280304Sjkim# define NID_md2 3 88280304Sjkim# define OBJ_md2 OBJ_rsadsi,2L,2L 8955714Skris 90280304Sjkim# define SN_md5 "MD5" 91280304Sjkim# define LN_md5 "md5" 92280304Sjkim# define NID_md5 4 93280304Sjkim# define OBJ_md5 OBJ_rsadsi,2L,5L 9455714Skris 95280304Sjkim# define SN_rc4 "RC4" 96280304Sjkim# define LN_rc4 "rc4" 97280304Sjkim# define NID_rc4 5 98280304Sjkim# define OBJ_rc4 OBJ_rsadsi,3L,4L 9955714Skris 100280304Sjkim# define LN_rsaEncryption "rsaEncryption" 101280304Sjkim# define NID_rsaEncryption 6 102280304Sjkim# define OBJ_rsaEncryption OBJ_pkcs,1L,1L 10355714Skris 104280304Sjkim# define SN_md2WithRSAEncryption "RSA-MD2" 105280304Sjkim# define LN_md2WithRSAEncryption "md2WithRSAEncryption" 106280304Sjkim# define NID_md2WithRSAEncryption 7 107280304Sjkim# define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L 10855714Skris 109280304Sjkim# define SN_md5WithRSAEncryption "RSA-MD5" 110280304Sjkim# define LN_md5WithRSAEncryption "md5WithRSAEncryption" 111280304Sjkim# define NID_md5WithRSAEncryption 8 112280304Sjkim# define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L 11355714Skris 114280304Sjkim# define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" 115280304Sjkim# define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" 116280304Sjkim# define NID_pbeWithMD2AndDES_CBC 9 117280304Sjkim# define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L 11855714Skris 119280304Sjkim# define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" 120280304Sjkim# define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" 121280304Sjkim# define NID_pbeWithMD5AndDES_CBC 10 122280304Sjkim# define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L 12355714Skris 124280304Sjkim# define LN_X500 "X500" 125280304Sjkim# define NID_X500 11 126280304Sjkim# define OBJ_X500 2L,5L 12755714Skris 128280304Sjkim# define LN_X509 "X509" 129280304Sjkim# define NID_X509 12 130280304Sjkim# define OBJ_X509 OBJ_X500,4L 13155714Skris 132280304Sjkim# define SN_commonName "CN" 133280304Sjkim# define LN_commonName "commonName" 134280304Sjkim# define NID_commonName 13 135280304Sjkim# define OBJ_commonName OBJ_X509,3L 13655714Skris 137280304Sjkim# define SN_countryName "C" 138280304Sjkim# define LN_countryName "countryName" 139280304Sjkim# define NID_countryName 14 140280304Sjkim# define OBJ_countryName OBJ_X509,6L 14155714Skris 142280304Sjkim# define SN_localityName "L" 143280304Sjkim# define LN_localityName "localityName" 144280304Sjkim# define NID_localityName 15 145280304Sjkim# define OBJ_localityName OBJ_X509,7L 14655714Skris 14755714Skris/* Postal Address? PA */ 14855714Skris 14955714Skris/* should be "ST" (rfc1327) but MS uses 'S' */ 150280304Sjkim# define SN_stateOrProvinceName "ST" 151280304Sjkim# define LN_stateOrProvinceName "stateOrProvinceName" 152280304Sjkim# define NID_stateOrProvinceName 16 153280304Sjkim# define OBJ_stateOrProvinceName OBJ_X509,8L 15455714Skris 155280304Sjkim# define SN_organizationName "O" 156280304Sjkim# define LN_organizationName "organizationName" 157280304Sjkim# define NID_organizationName 17 158280304Sjkim# define OBJ_organizationName OBJ_X509,10L 15955714Skris 160280304Sjkim# define SN_organizationalUnitName "OU" 161280304Sjkim# define LN_organizationalUnitName "organizationalUnitName" 162280304Sjkim# define NID_organizationalUnitName 18 163280304Sjkim# define OBJ_organizationalUnitName OBJ_X509,11L 16455714Skris 165280304Sjkim# define SN_rsa "RSA" 166280304Sjkim# define LN_rsa "rsa" 167280304Sjkim# define NID_rsa 19 168280304Sjkim# define OBJ_rsa OBJ_X500,8L,1L,1L 16955714Skris 170280304Sjkim# define LN_pkcs7 "pkcs7" 171280304Sjkim# define NID_pkcs7 20 172280304Sjkim# define OBJ_pkcs7 OBJ_pkcs,7L 17355714Skris 174280304Sjkim# define LN_pkcs7_data "pkcs7-data" 175280304Sjkim# define NID_pkcs7_data 21 176280304Sjkim# define OBJ_pkcs7_data OBJ_pkcs7,1L 17755714Skris 178280304Sjkim# define LN_pkcs7_signed "pkcs7-signedData" 179280304Sjkim# define NID_pkcs7_signed 22 180280304Sjkim# define OBJ_pkcs7_signed OBJ_pkcs7,2L 18155714Skris 182280304Sjkim# define LN_pkcs7_enveloped "pkcs7-envelopedData" 183280304Sjkim# define NID_pkcs7_enveloped 23 184280304Sjkim# define OBJ_pkcs7_enveloped OBJ_pkcs7,3L 18555714Skris 186280304Sjkim# define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" 187280304Sjkim# define NID_pkcs7_signedAndEnveloped 24 188280304Sjkim# define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L 18955714Skris 190280304Sjkim# define LN_pkcs7_digest "pkcs7-digestData" 191280304Sjkim# define NID_pkcs7_digest 25 192280304Sjkim# define OBJ_pkcs7_digest OBJ_pkcs7,5L 19355714Skris 194280304Sjkim# define LN_pkcs7_encrypted "pkcs7-encryptedData" 195280304Sjkim# define NID_pkcs7_encrypted 26 196280304Sjkim# define OBJ_pkcs7_encrypted OBJ_pkcs7,6L 19755714Skris 198280304Sjkim# define LN_pkcs3 "pkcs3" 199280304Sjkim# define NID_pkcs3 27 200280304Sjkim# define OBJ_pkcs3 OBJ_pkcs,3L 20155714Skris 202280304Sjkim# define LN_dhKeyAgreement "dhKeyAgreement" 203280304Sjkim# define NID_dhKeyAgreement 28 204280304Sjkim# define OBJ_dhKeyAgreement OBJ_pkcs3,1L 20555714Skris 206280304Sjkim# define SN_des_ecb "DES-ECB" 207280304Sjkim# define LN_des_ecb "des-ecb" 208280304Sjkim# define NID_des_ecb 29 209280304Sjkim# define OBJ_des_ecb OBJ_algorithm,6L 21055714Skris 211280304Sjkim# define SN_des_cfb64 "DES-CFB" 212280304Sjkim# define LN_des_cfb64 "des-cfb" 213280304Sjkim# define NID_des_cfb64 30 21455714Skris/* IV + num */ 215280304Sjkim# define OBJ_des_cfb64 OBJ_algorithm,9L 21655714Skris 217280304Sjkim# define SN_des_cbc "DES-CBC" 218280304Sjkim# define LN_des_cbc "des-cbc" 219280304Sjkim# define NID_des_cbc 31 22055714Skris/* IV */ 221280304Sjkim# define OBJ_des_cbc OBJ_algorithm,7L 22255714Skris 223280304Sjkim# define SN_des_ede "DES-EDE" 224280304Sjkim# define LN_des_ede "des-ede" 225280304Sjkim# define NID_des_ede 32 22655714Skris/* ?? */ 227280304Sjkim# define OBJ_des_ede OBJ_algorithm,17L 22855714Skris 229280304Sjkim# define SN_des_ede3 "DES-EDE3" 230280304Sjkim# define LN_des_ede3 "des-ede3" 231280304Sjkim# define NID_des_ede3 33 23255714Skris 233280304Sjkim# define SN_idea_cbc "IDEA-CBC" 234280304Sjkim# define LN_idea_cbc "idea-cbc" 235280304Sjkim# define NID_idea_cbc 34 236280304Sjkim# define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L 23755714Skris 238280304Sjkim# define SN_idea_cfb64 "IDEA-CFB" 239280304Sjkim# define LN_idea_cfb64 "idea-cfb" 240280304Sjkim# define NID_idea_cfb64 35 24155714Skris 242280304Sjkim# define SN_idea_ecb "IDEA-ECB" 243280304Sjkim# define LN_idea_ecb "idea-ecb" 244280304Sjkim# define NID_idea_ecb 36 24555714Skris 246280304Sjkim# define SN_rc2_cbc "RC2-CBC" 247280304Sjkim# define LN_rc2_cbc "rc2-cbc" 248280304Sjkim# define NID_rc2_cbc 37 249280304Sjkim# define OBJ_rc2_cbc OBJ_rsadsi,3L,2L 25055714Skris 251280304Sjkim# define SN_rc2_ecb "RC2-ECB" 252280304Sjkim# define LN_rc2_ecb "rc2-ecb" 253280304Sjkim# define NID_rc2_ecb 38 25455714Skris 255280304Sjkim# define SN_rc2_cfb64 "RC2-CFB" 256280304Sjkim# define LN_rc2_cfb64 "rc2-cfb" 257280304Sjkim# define NID_rc2_cfb64 39 25855714Skris 259280304Sjkim# define SN_rc2_ofb64 "RC2-OFB" 260280304Sjkim# define LN_rc2_ofb64 "rc2-ofb" 261280304Sjkim# define NID_rc2_ofb64 40 26255714Skris 263280304Sjkim# define SN_sha "SHA" 264280304Sjkim# define LN_sha "sha" 265280304Sjkim# define NID_sha 41 266280304Sjkim# define OBJ_sha OBJ_algorithm,18L 26755714Skris 268280304Sjkim# define SN_shaWithRSAEncryption "RSA-SHA" 269280304Sjkim# define LN_shaWithRSAEncryption "shaWithRSAEncryption" 270280304Sjkim# define NID_shaWithRSAEncryption 42 271280304Sjkim# define OBJ_shaWithRSAEncryption OBJ_algorithm,15L 27255714Skris 273280304Sjkim# define SN_des_ede_cbc "DES-EDE-CBC" 274280304Sjkim# define LN_des_ede_cbc "des-ede-cbc" 275280304Sjkim# define NID_des_ede_cbc 43 27655714Skris 277280304Sjkim# define SN_des_ede3_cbc "DES-EDE3-CBC" 278280304Sjkim# define LN_des_ede3_cbc "des-ede3-cbc" 279280304Sjkim# define NID_des_ede3_cbc 44 280280304Sjkim# define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L 28155714Skris 282280304Sjkim# define SN_des_ofb64 "DES-OFB" 283280304Sjkim# define LN_des_ofb64 "des-ofb" 284280304Sjkim# define NID_des_ofb64 45 285280304Sjkim# define OBJ_des_ofb64 OBJ_algorithm,8L 28655714Skris 287280304Sjkim# define SN_idea_ofb64 "IDEA-OFB" 288280304Sjkim# define LN_idea_ofb64 "idea-ofb" 289280304Sjkim# define NID_idea_ofb64 46 29055714Skris 291280304Sjkim# define LN_pkcs9 "pkcs9" 292280304Sjkim# define NID_pkcs9 47 293280304Sjkim# define OBJ_pkcs9 OBJ_pkcs,9L 29455714Skris 295280304Sjkim# define SN_pkcs9_emailAddress "Email" 296280304Sjkim# define LN_pkcs9_emailAddress "emailAddress" 297280304Sjkim# define NID_pkcs9_emailAddress 48 298280304Sjkim# define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L 29955714Skris 300280304Sjkim# define LN_pkcs9_unstructuredName "unstructuredName" 301280304Sjkim# define NID_pkcs9_unstructuredName 49 302280304Sjkim# define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L 30355714Skris 304280304Sjkim# define LN_pkcs9_contentType "contentType" 305280304Sjkim# define NID_pkcs9_contentType 50 306280304Sjkim# define OBJ_pkcs9_contentType OBJ_pkcs9,3L 30755714Skris 308280304Sjkim# define LN_pkcs9_messageDigest "messageDigest" 309280304Sjkim# define NID_pkcs9_messageDigest 51 310280304Sjkim# define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L 31155714Skris 312280304Sjkim# define LN_pkcs9_signingTime "signingTime" 313280304Sjkim# define NID_pkcs9_signingTime 52 314280304Sjkim# define OBJ_pkcs9_signingTime OBJ_pkcs9,5L 31555714Skris 316280304Sjkim# define LN_pkcs9_countersignature "countersignature" 317280304Sjkim# define NID_pkcs9_countersignature 53 318280304Sjkim# define OBJ_pkcs9_countersignature OBJ_pkcs9,6L 31955714Skris 320280304Sjkim# define LN_pkcs9_challengePassword "challengePassword" 321280304Sjkim# define NID_pkcs9_challengePassword 54 322280304Sjkim# define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L 32355714Skris 324280304Sjkim# define LN_pkcs9_unstructuredAddress "unstructuredAddress" 325280304Sjkim# define NID_pkcs9_unstructuredAddress 55 326280304Sjkim# define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L 32755714Skris 328280304Sjkim# define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" 329280304Sjkim# define NID_pkcs9_extCertAttributes 56 330280304Sjkim# define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L 33155714Skris 332280304Sjkim# define SN_netscape "Netscape" 333280304Sjkim# define LN_netscape "Netscape Communications Corp." 334280304Sjkim# define NID_netscape 57 335280304Sjkim# define OBJ_netscape 2L,16L,840L,1L,113730L 33655714Skris 337280304Sjkim# define SN_netscape_cert_extension "nsCertExt" 338280304Sjkim# define LN_netscape_cert_extension "Netscape Certificate Extension" 339280304Sjkim# define NID_netscape_cert_extension 58 340280304Sjkim# define OBJ_netscape_cert_extension OBJ_netscape,1L 34155714Skris 342280304Sjkim# define SN_netscape_data_type "nsDataType" 343280304Sjkim# define LN_netscape_data_type "Netscape Data Type" 344280304Sjkim# define NID_netscape_data_type 59 345280304Sjkim# define OBJ_netscape_data_type OBJ_netscape,2L 34655714Skris 347280304Sjkim# define SN_des_ede_cfb64 "DES-EDE-CFB" 348280304Sjkim# define LN_des_ede_cfb64 "des-ede-cfb" 349280304Sjkim# define NID_des_ede_cfb64 60 35055714Skris 351280304Sjkim# define SN_des_ede3_cfb64 "DES-EDE3-CFB" 352280304Sjkim# define LN_des_ede3_cfb64 "des-ede3-cfb" 353280304Sjkim# define NID_des_ede3_cfb64 61 35455714Skris 355280304Sjkim# define SN_des_ede_ofb64 "DES-EDE-OFB" 356280304Sjkim# define LN_des_ede_ofb64 "des-ede-ofb" 357280304Sjkim# define NID_des_ede_ofb64 62 35855714Skris 359280304Sjkim# define SN_des_ede3_ofb64 "DES-EDE3-OFB" 360280304Sjkim# define LN_des_ede3_ofb64 "des-ede3-ofb" 361280304Sjkim# define NID_des_ede3_ofb64 63 36255714Skris 36355714Skris/* I'm not sure about the object ID */ 364280304Sjkim# define SN_sha1 "SHA1" 365280304Sjkim# define LN_sha1 "sha1" 366280304Sjkim# define NID_sha1 64 367280304Sjkim# define OBJ_sha1 OBJ_algorithm,26L 36855714Skris/* 28 Jun 1996 - eay */ 369280304Sjkim/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ 37055714Skris 371280304Sjkim# define SN_sha1WithRSAEncryption "RSA-SHA1" 372280304Sjkim# define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" 373280304Sjkim# define NID_sha1WithRSAEncryption 65 374280304Sjkim# define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L 37555714Skris 376280304Sjkim# define SN_dsaWithSHA "DSA-SHA" 377280304Sjkim# define LN_dsaWithSHA "dsaWithSHA" 378280304Sjkim# define NID_dsaWithSHA 66 379280304Sjkim# define OBJ_dsaWithSHA OBJ_algorithm,13L 38055714Skris 381280304Sjkim# define SN_dsa_2 "DSA-old" 382280304Sjkim# define LN_dsa_2 "dsaEncryption-old" 383280304Sjkim# define NID_dsa_2 67 384280304Sjkim# define OBJ_dsa_2 OBJ_algorithm,12L 38555714Skris 38655714Skris/* proposed by microsoft to RSA */ 387280304Sjkim# define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" 388280304Sjkim# define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" 389280304Sjkim# define NID_pbeWithSHA1AndRC2_CBC 68 390280304Sjkim# define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L 39155714Skris 392280304Sjkim/* 393280304Sjkim * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined 394280304Sjkim * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely 395280304Sjkim * different. 39655714Skris */ 397280304Sjkim# define LN_id_pbkdf2 "PBKDF2" 398280304Sjkim# define NID_id_pbkdf2 69 399280304Sjkim# define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L 40055714Skris 401280304Sjkim# define SN_dsaWithSHA1_2 "DSA-SHA1-old" 402280304Sjkim# define LN_dsaWithSHA1_2 "dsaWithSHA1-old" 403280304Sjkim# define NID_dsaWithSHA1_2 70 40455714Skris/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ 405280304Sjkim# define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L 40655714Skris 407280304Sjkim# define SN_netscape_cert_type "nsCertType" 408280304Sjkim# define LN_netscape_cert_type "Netscape Cert Type" 409280304Sjkim# define NID_netscape_cert_type 71 410280304Sjkim# define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L 41155714Skris 412280304Sjkim# define SN_netscape_base_url "nsBaseUrl" 413280304Sjkim# define LN_netscape_base_url "Netscape Base Url" 414280304Sjkim# define NID_netscape_base_url 72 415280304Sjkim# define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L 41655714Skris 417280304Sjkim# define SN_netscape_revocation_url "nsRevocationUrl" 418280304Sjkim# define LN_netscape_revocation_url "Netscape Revocation Url" 419280304Sjkim# define NID_netscape_revocation_url 73 420280304Sjkim# define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L 42155714Skris 422280304Sjkim# define SN_netscape_ca_revocation_url "nsCaRevocationUrl" 423280304Sjkim# define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" 424280304Sjkim# define NID_netscape_ca_revocation_url 74 425280304Sjkim# define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L 42655714Skris 427280304Sjkim# define SN_netscape_renewal_url "nsRenewalUrl" 428280304Sjkim# define LN_netscape_renewal_url "Netscape Renewal Url" 429280304Sjkim# define NID_netscape_renewal_url 75 430280304Sjkim# define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L 43155714Skris 432280304Sjkim# define SN_netscape_ca_policy_url "nsCaPolicyUrl" 433280304Sjkim# define LN_netscape_ca_policy_url "Netscape CA Policy Url" 434280304Sjkim# define NID_netscape_ca_policy_url 76 435280304Sjkim# define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L 43655714Skris 437280304Sjkim# define SN_netscape_ssl_server_name "nsSslServerName" 438280304Sjkim# define LN_netscape_ssl_server_name "Netscape SSL Server Name" 439280304Sjkim# define NID_netscape_ssl_server_name 77 440280304Sjkim# define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L 44155714Skris 442280304Sjkim# define SN_netscape_comment "nsComment" 443280304Sjkim# define LN_netscape_comment "Netscape Comment" 444280304Sjkim# define NID_netscape_comment 78 445280304Sjkim# define OBJ_netscape_comment OBJ_netscape_cert_extension,13L 44655714Skris 447280304Sjkim# define SN_netscape_cert_sequence "nsCertSequence" 448280304Sjkim# define LN_netscape_cert_sequence "Netscape Certificate Sequence" 449280304Sjkim# define NID_netscape_cert_sequence 79 450280304Sjkim# define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L 45155714Skris 452280304Sjkim# define SN_desx_cbc "DESX-CBC" 453280304Sjkim# define LN_desx_cbc "desx-cbc" 454280304Sjkim# define NID_desx_cbc 80 45555714Skris 456280304Sjkim# define SN_id_ce "id-ce" 457280304Sjkim# define NID_id_ce 81 458280304Sjkim# define OBJ_id_ce 2L,5L,29L 45955714Skris 460280304Sjkim# define SN_subject_key_identifier "subjectKeyIdentifier" 461280304Sjkim# define LN_subject_key_identifier "X509v3 Subject Key Identifier" 462280304Sjkim# define NID_subject_key_identifier 82 463280304Sjkim# define OBJ_subject_key_identifier OBJ_id_ce,14L 46455714Skris 465280304Sjkim# define SN_key_usage "keyUsage" 466280304Sjkim# define LN_key_usage "X509v3 Key Usage" 467280304Sjkim# define NID_key_usage 83 468280304Sjkim# define OBJ_key_usage OBJ_id_ce,15L 46955714Skris 470280304Sjkim# define SN_private_key_usage_period "privateKeyUsagePeriod" 471280304Sjkim# define LN_private_key_usage_period "X509v3 Private Key Usage Period" 472280304Sjkim# define NID_private_key_usage_period 84 473280304Sjkim# define OBJ_private_key_usage_period OBJ_id_ce,16L 47455714Skris 475280304Sjkim# define SN_subject_alt_name "subjectAltName" 476280304Sjkim# define LN_subject_alt_name "X509v3 Subject Alternative Name" 477280304Sjkim# define NID_subject_alt_name 85 478280304Sjkim# define OBJ_subject_alt_name OBJ_id_ce,17L 47955714Skris 480280304Sjkim# define SN_issuer_alt_name "issuerAltName" 481280304Sjkim# define LN_issuer_alt_name "X509v3 Issuer Alternative Name" 482280304Sjkim# define NID_issuer_alt_name 86 483280304Sjkim# define OBJ_issuer_alt_name OBJ_id_ce,18L 48455714Skris 485280304Sjkim# define SN_basic_constraints "basicConstraints" 486280304Sjkim# define LN_basic_constraints "X509v3 Basic Constraints" 487280304Sjkim# define NID_basic_constraints 87 488280304Sjkim# define OBJ_basic_constraints OBJ_id_ce,19L 48955714Skris 490280304Sjkim# define SN_crl_number "crlNumber" 491280304Sjkim# define LN_crl_number "X509v3 CRL Number" 492280304Sjkim# define NID_crl_number 88 493280304Sjkim# define OBJ_crl_number OBJ_id_ce,20L 49455714Skris 495280304Sjkim# define SN_certificate_policies "certificatePolicies" 496280304Sjkim# define LN_certificate_policies "X509v3 Certificate Policies" 497280304Sjkim# define NID_certificate_policies 89 498280304Sjkim# define OBJ_certificate_policies OBJ_id_ce,32L 49955714Skris 500280304Sjkim# define SN_authority_key_identifier "authorityKeyIdentifier" 501280304Sjkim# define LN_authority_key_identifier "X509v3 Authority Key Identifier" 502280304Sjkim# define NID_authority_key_identifier 90 503280304Sjkim# define OBJ_authority_key_identifier OBJ_id_ce,35L 50455714Skris 505280304Sjkim# define SN_bf_cbc "BF-CBC" 506280304Sjkim# define LN_bf_cbc "bf-cbc" 507280304Sjkim# define NID_bf_cbc 91 508280304Sjkim# define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L 50955714Skris 510280304Sjkim# define SN_bf_ecb "BF-ECB" 511280304Sjkim# define LN_bf_ecb "bf-ecb" 512280304Sjkim# define NID_bf_ecb 92 51355714Skris 514280304Sjkim# define SN_bf_cfb64 "BF-CFB" 515280304Sjkim# define LN_bf_cfb64 "bf-cfb" 516280304Sjkim# define NID_bf_cfb64 93 51755714Skris 518280304Sjkim# define SN_bf_ofb64 "BF-OFB" 519280304Sjkim# define LN_bf_ofb64 "bf-ofb" 520280304Sjkim# define NID_bf_ofb64 94 52155714Skris 522280304Sjkim# define SN_mdc2 "MDC2" 523280304Sjkim# define LN_mdc2 "mdc2" 524280304Sjkim# define NID_mdc2 95 525280304Sjkim# define OBJ_mdc2 2L,5L,8L,3L,101L 526280304Sjkim/* An alternative? 1L,3L,14L,3L,2L,19L */ 52755714Skris 528280304Sjkim# define SN_mdc2WithRSA "RSA-MDC2" 529280304Sjkim# define LN_mdc2WithRSA "mdc2withRSA" 530280304Sjkim# define NID_mdc2WithRSA 96 531280304Sjkim# define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L 53255714Skris 533280304Sjkim# define SN_rc4_40 "RC4-40" 534280304Sjkim# define LN_rc4_40 "rc4-40" 535280304Sjkim# define NID_rc4_40 97 53655714Skris 537280304Sjkim# define SN_rc2_40_cbc "RC2-40-CBC" 538280304Sjkim# define LN_rc2_40_cbc "rc2-40-cbc" 539280304Sjkim# define NID_rc2_40_cbc 98 54055714Skris 541280304Sjkim# define SN_givenName "G" 542280304Sjkim# define LN_givenName "givenName" 543280304Sjkim# define NID_givenName 99 544280304Sjkim# define OBJ_givenName OBJ_X509,42L 54555714Skris 546280304Sjkim# define SN_surname "S" 547280304Sjkim# define LN_surname "surname" 548280304Sjkim# define NID_surname 100 549280304Sjkim# define OBJ_surname OBJ_X509,4L 55055714Skris 551280304Sjkim# define SN_initials "I" 552280304Sjkim# define LN_initials "initials" 553280304Sjkim# define NID_initials 101 554280304Sjkim# define OBJ_initials OBJ_X509,43L 55555714Skris 556280304Sjkim# define SN_uniqueIdentifier "UID" 557280304Sjkim# define LN_uniqueIdentifier "uniqueIdentifier" 558280304Sjkim# define NID_uniqueIdentifier 102 559280304Sjkim# define OBJ_uniqueIdentifier OBJ_X509,45L 56055714Skris 561280304Sjkim# define SN_crl_distribution_points "crlDistributionPoints" 562280304Sjkim# define LN_crl_distribution_points "X509v3 CRL Distribution Points" 563280304Sjkim# define NID_crl_distribution_points 103 564280304Sjkim# define OBJ_crl_distribution_points OBJ_id_ce,31L 56555714Skris 566280304Sjkim# define SN_md5WithRSA "RSA-NP-MD5" 567280304Sjkim# define LN_md5WithRSA "md5WithRSA" 568280304Sjkim# define NID_md5WithRSA 104 569280304Sjkim# define OBJ_md5WithRSA OBJ_algorithm,3L 57055714Skris 571280304Sjkim# define SN_serialNumber "SN" 572280304Sjkim# define LN_serialNumber "serialNumber" 573280304Sjkim# define NID_serialNumber 105 574280304Sjkim# define OBJ_serialNumber OBJ_X509,5L 57555714Skris 576280304Sjkim# define SN_title "T" 577280304Sjkim# define LN_title "title" 578280304Sjkim# define NID_title 106 579280304Sjkim# define OBJ_title OBJ_X509,12L 58055714Skris 581280304Sjkim# define SN_description "D" 582280304Sjkim# define LN_description "description" 583280304Sjkim# define NID_description 107 584280304Sjkim# define OBJ_description OBJ_X509,13L 58555714Skris 58655714Skris/* CAST5 is CAST-128, I'm just sticking with the documentation */ 587280304Sjkim# define SN_cast5_cbc "CAST5-CBC" 588280304Sjkim# define LN_cast5_cbc "cast5-cbc" 589280304Sjkim# define NID_cast5_cbc 108 590280304Sjkim# define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L 59155714Skris 592280304Sjkim# define SN_cast5_ecb "CAST5-ECB" 593280304Sjkim# define LN_cast5_ecb "cast5-ecb" 594280304Sjkim# define NID_cast5_ecb 109 59555714Skris 596280304Sjkim# define SN_cast5_cfb64 "CAST5-CFB" 597280304Sjkim# define LN_cast5_cfb64 "cast5-cfb" 598280304Sjkim# define NID_cast5_cfb64 110 59955714Skris 600280304Sjkim# define SN_cast5_ofb64 "CAST5-OFB" 601280304Sjkim# define LN_cast5_ofb64 "cast5-ofb" 602280304Sjkim# define NID_cast5_ofb64 111 60355714Skris 604280304Sjkim# define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" 605280304Sjkim# define NID_pbeWithMD5AndCast5_CBC 112 606280304Sjkim# define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L 60755714Skris 608280304Sjkim/*- 609280304Sjkim * This is one sun will soon be using :-( 61055714Skris * id-dsa-with-sha1 ID ::= { 61155714Skris * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } 61255714Skris */ 613280304Sjkim# define SN_dsaWithSHA1 "DSA-SHA1" 614280304Sjkim# define LN_dsaWithSHA1 "dsaWithSHA1" 615280304Sjkim# define NID_dsaWithSHA1 113 616280304Sjkim# define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L 61755714Skris 618280304Sjkim# define NID_md5_sha1 114 619280304Sjkim# define SN_md5_sha1 "MD5-SHA1" 620280304Sjkim# define LN_md5_sha1 "md5-sha1" 62155714Skris 622280304Sjkim# define SN_sha1WithRSA "RSA-SHA1-2" 623280304Sjkim# define LN_sha1WithRSA "sha1WithRSA" 624280304Sjkim# define NID_sha1WithRSA 115 625280304Sjkim# define OBJ_sha1WithRSA OBJ_algorithm,29L 62655714Skris 627280304Sjkim# define SN_dsa "DSA" 628280304Sjkim# define LN_dsa "dsaEncryption" 629280304Sjkim# define NID_dsa 116 630280304Sjkim# define OBJ_dsa 1L,2L,840L,10040L,4L,1L 63155714Skris 632280304Sjkim# define SN_ripemd160 "RIPEMD160" 633280304Sjkim# define LN_ripemd160 "ripemd160" 634280304Sjkim# define NID_ripemd160 117 635280304Sjkim# define OBJ_ripemd160 1L,3L,36L,3L,2L,1L 63655714Skris 637280304Sjkim/* 638280304Sjkim * The name should actually be rsaSignatureWithripemd160, but I'm going to 639280304Sjkim * continue using the convention I'm using with the other ciphers 640280304Sjkim */ 641280304Sjkim# define SN_ripemd160WithRSA "RSA-RIPEMD160" 642280304Sjkim# define LN_ripemd160WithRSA "ripemd160WithRSA" 643280304Sjkim# define NID_ripemd160WithRSA 119 644280304Sjkim# define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L 64555714Skris 646280304Sjkim/*- 647280304Sjkim * Taken from rfc2040 64855714Skris * RC5_CBC_Parameters ::= SEQUENCE { 649280304Sjkim * version INTEGER (v1_0(16)), 650280304Sjkim * rounds INTEGER (8..127), 651280304Sjkim * blockSizeInBits INTEGER (64, 128), 652280304Sjkim * iv OCTET STRING OPTIONAL 653280304Sjkim * } 65455714Skris */ 655280304Sjkim# define SN_rc5_cbc "RC5-CBC" 656280304Sjkim# define LN_rc5_cbc "rc5-cbc" 657280304Sjkim# define NID_rc5_cbc 120 658280304Sjkim# define OBJ_rc5_cbc OBJ_rsadsi,3L,8L 65955714Skris 660280304Sjkim# define SN_rc5_ecb "RC5-ECB" 661280304Sjkim# define LN_rc5_ecb "rc5-ecb" 662280304Sjkim# define NID_rc5_ecb 121 66355714Skris 664280304Sjkim# define SN_rc5_cfb64 "RC5-CFB" 665280304Sjkim# define LN_rc5_cfb64 "rc5-cfb" 666280304Sjkim# define NID_rc5_cfb64 122 66755714Skris 668280304Sjkim# define SN_rc5_ofb64 "RC5-OFB" 669280304Sjkim# define LN_rc5_ofb64 "rc5-ofb" 670280304Sjkim# define NID_rc5_ofb64 123 67155714Skris 672280304Sjkim# define SN_rle_compression "RLE" 673280304Sjkim# define LN_rle_compression "run length compression" 674280304Sjkim# define NID_rle_compression 124 675280304Sjkim# define OBJ_rle_compression 1L,1L,1L,1L,666L,1L 67655714Skris 677280304Sjkim# define SN_zlib_compression "ZLIB" 678280304Sjkim# define LN_zlib_compression "zlib compression" 679280304Sjkim# define NID_zlib_compression 125 680280304Sjkim# define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L 68155714Skris 682280304Sjkim# define SN_ext_key_usage "extendedKeyUsage" 683280304Sjkim# define LN_ext_key_usage "X509v3 Extended Key Usage" 684280304Sjkim# define NID_ext_key_usage 126 685280304Sjkim# define OBJ_ext_key_usage OBJ_id_ce,37 68655714Skris 687280304Sjkim# define SN_id_pkix "PKIX" 688280304Sjkim# define NID_id_pkix 127 689280304Sjkim# define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L 69055714Skris 691280304Sjkim# define SN_id_kp "id-kp" 692280304Sjkim# define NID_id_kp 128 693280304Sjkim# define OBJ_id_kp OBJ_id_pkix,3L 69455714Skris 69555714Skris/* PKIX extended key usage OIDs */ 69655714Skris 697280304Sjkim# define SN_server_auth "serverAuth" 698280304Sjkim# define LN_server_auth "TLS Web Server Authentication" 699280304Sjkim# define NID_server_auth 129 700280304Sjkim# define OBJ_server_auth OBJ_id_kp,1L 70155714Skris 702280304Sjkim# define SN_client_auth "clientAuth" 703280304Sjkim# define LN_client_auth "TLS Web Client Authentication" 704280304Sjkim# define NID_client_auth 130 705280304Sjkim# define OBJ_client_auth OBJ_id_kp,2L 70655714Skris 707280304Sjkim# define SN_code_sign "codeSigning" 708280304Sjkim# define LN_code_sign "Code Signing" 709280304Sjkim# define NID_code_sign 131 710280304Sjkim# define OBJ_code_sign OBJ_id_kp,3L 71155714Skris 712280304Sjkim# define SN_email_protect "emailProtection" 713280304Sjkim# define LN_email_protect "E-mail Protection" 714280304Sjkim# define NID_email_protect 132 715280304Sjkim# define OBJ_email_protect OBJ_id_kp,4L 71655714Skris 717280304Sjkim# define SN_time_stamp "timeStamping" 718280304Sjkim# define LN_time_stamp "Time Stamping" 719280304Sjkim# define NID_time_stamp 133 720280304Sjkim# define OBJ_time_stamp OBJ_id_kp,8L 72155714Skris 72255714Skris/* Additional extended key usage OIDs: Microsoft */ 72355714Skris 724280304Sjkim# define SN_ms_code_ind "msCodeInd" 725280304Sjkim# define LN_ms_code_ind "Microsoft Individual Code Signing" 726280304Sjkim# define NID_ms_code_ind 134 727280304Sjkim# define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L 72855714Skris 729280304Sjkim# define SN_ms_code_com "msCodeCom" 730280304Sjkim# define LN_ms_code_com "Microsoft Commercial Code Signing" 731280304Sjkim# define NID_ms_code_com 135 732280304Sjkim# define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L 73355714Skris 734280304Sjkim# define SN_ms_ctl_sign "msCTLSign" 735280304Sjkim# define LN_ms_ctl_sign "Microsoft Trust List Signing" 736280304Sjkim# define NID_ms_ctl_sign 136 737280304Sjkim# define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L 73855714Skris 739280304Sjkim# define SN_ms_sgc "msSGC" 740280304Sjkim# define LN_ms_sgc "Microsoft Server Gated Crypto" 741280304Sjkim# define NID_ms_sgc 137 742280304Sjkim# define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L 74355714Skris 744280304Sjkim# define SN_ms_efs "msEFS" 745280304Sjkim# define LN_ms_efs "Microsoft Encrypted File System" 746280304Sjkim# define NID_ms_efs 138 747280304Sjkim# define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L 74855714Skris 74959191Skris/* Additional usage: Netscape */ 75055714Skris 751280304Sjkim# define SN_ns_sgc "nsSGC" 752280304Sjkim# define LN_ns_sgc "Netscape Server Gated Crypto" 753280304Sjkim# define NID_ns_sgc 139 754280304Sjkim# define OBJ_ns_sgc OBJ_netscape,4L,1L 75555714Skris 756280304Sjkim# define SN_delta_crl "deltaCRL" 757280304Sjkim# define LN_delta_crl "X509v3 Delta CRL Indicator" 758280304Sjkim# define NID_delta_crl 140 759280304Sjkim# define OBJ_delta_crl OBJ_id_ce,27L 76055714Skris 761280304Sjkim# define SN_crl_reason "CRLReason" 762280304Sjkim# define LN_crl_reason "CRL Reason Code" 763280304Sjkim# define NID_crl_reason 141 764280304Sjkim# define OBJ_crl_reason OBJ_id_ce,21L 76555714Skris 766280304Sjkim# define SN_invalidity_date "invalidityDate" 767280304Sjkim# define LN_invalidity_date "Invalidity Date" 768280304Sjkim# define NID_invalidity_date 142 769280304Sjkim# define OBJ_invalidity_date OBJ_id_ce,24L 77055714Skris 771280304Sjkim# define SN_sxnet "SXNetID" 772280304Sjkim# define LN_sxnet "Strong Extranet ID" 773280304Sjkim# define NID_sxnet 143 774280304Sjkim# define OBJ_sxnet 1L,3L,101L,1L,4L,1L 77555714Skris 77655714Skris/* PKCS12 and related OBJECT IDENTIFIERS */ 77755714Skris 778280304Sjkim# define OBJ_pkcs12 OBJ_pkcs,12L 779280304Sjkim# define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 78055714Skris 781280304Sjkim# define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" 782280304Sjkim# define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" 783280304Sjkim# define NID_pbe_WithSHA1And128BitRC4 144 784280304Sjkim# define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L 78555714Skris 786280304Sjkim# define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" 787280304Sjkim# define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" 788280304Sjkim# define NID_pbe_WithSHA1And40BitRC4 145 789280304Sjkim# define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L 79055714Skris 791280304Sjkim# define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" 792280304Sjkim# define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" 793280304Sjkim# define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 794280304Sjkim# define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L 79555714Skris 796280304Sjkim# define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" 797280304Sjkim# define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" 798280304Sjkim# define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 799280304Sjkim# define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L 80055714Skris 801280304Sjkim# define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" 802280304Sjkim# define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" 803280304Sjkim# define NID_pbe_WithSHA1And128BitRC2_CBC 148 804280304Sjkim# define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L 80555714Skris 806280304Sjkim# define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" 807280304Sjkim# define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" 808280304Sjkim# define NID_pbe_WithSHA1And40BitRC2_CBC 149 809280304Sjkim# define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L 81055714Skris 811280304Sjkim# define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L 81255714Skris 813280304Sjkim# define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L 81455714Skris 815280304Sjkim# define LN_keyBag "keyBag" 816280304Sjkim# define NID_keyBag 150 817280304Sjkim# define OBJ_keyBag OBJ_pkcs12_BagIds, 1L 81855714Skris 819280304Sjkim# define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" 820280304Sjkim# define NID_pkcs8ShroudedKeyBag 151 821280304Sjkim# define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L 82255714Skris 823280304Sjkim# define LN_certBag "certBag" 824280304Sjkim# define NID_certBag 152 825280304Sjkim# define OBJ_certBag OBJ_pkcs12_BagIds, 3L 82655714Skris 827280304Sjkim# define LN_crlBag "crlBag" 828280304Sjkim# define NID_crlBag 153 829280304Sjkim# define OBJ_crlBag OBJ_pkcs12_BagIds, 4L 83055714Skris 831280304Sjkim# define LN_secretBag "secretBag" 832280304Sjkim# define NID_secretBag 154 833280304Sjkim# define OBJ_secretBag OBJ_pkcs12_BagIds, 5L 83455714Skris 835280304Sjkim# define LN_safeContentsBag "safeContentsBag" 836280304Sjkim# define NID_safeContentsBag 155 837280304Sjkim# define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L 83855714Skris 839280304Sjkim# define LN_friendlyName "friendlyName" 840280304Sjkim# define NID_friendlyName 156 841280304Sjkim# define OBJ_friendlyName OBJ_pkcs9, 20L 84255714Skris 843280304Sjkim# define LN_localKeyID "localKeyID" 844280304Sjkim# define NID_localKeyID 157 845280304Sjkim# define OBJ_localKeyID OBJ_pkcs9, 21L 84655714Skris 847280304Sjkim# define OBJ_certTypes OBJ_pkcs9, 22L 84855714Skris 849280304Sjkim# define LN_x509Certificate "x509Certificate" 850280304Sjkim# define NID_x509Certificate 158 851280304Sjkim# define OBJ_x509Certificate OBJ_certTypes, 1L 85255714Skris 853280304Sjkim# define LN_sdsiCertificate "sdsiCertificate" 854280304Sjkim# define NID_sdsiCertificate 159 855280304Sjkim# define OBJ_sdsiCertificate OBJ_certTypes, 2L 85655714Skris 857280304Sjkim# define OBJ_crlTypes OBJ_pkcs9, 23L 85855714Skris 859280304Sjkim# define LN_x509Crl "x509Crl" 860280304Sjkim# define NID_x509Crl 160 861280304Sjkim# define OBJ_x509Crl OBJ_crlTypes, 1L 86255714Skris 86355714Skris/* PKCS#5 v2 OIDs */ 86455714Skris 865280304Sjkim# define LN_pbes2 "PBES2" 866280304Sjkim# define NID_pbes2 161 867280304Sjkim# define OBJ_pbes2 OBJ_pkcs,5L,13L 86855714Skris 869280304Sjkim# define LN_pbmac1 "PBMAC1" 870280304Sjkim# define NID_pbmac1 162 871280304Sjkim# define OBJ_pbmac1 OBJ_pkcs,5L,14L 87255714Skris 873280304Sjkim# define LN_hmacWithSHA1 "hmacWithSHA1" 874280304Sjkim# define NID_hmacWithSHA1 163 875280304Sjkim# define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L 87655714Skris 87755714Skris/* Policy Qualifier Ids */ 87855714Skris 879280304Sjkim# define LN_id_qt_cps "Policy Qualifier CPS" 880280304Sjkim# define SN_id_qt_cps "id-qt-cps" 881280304Sjkim# define NID_id_qt_cps 164 882280304Sjkim# define OBJ_id_qt_cps OBJ_id_pkix,2L,1L 88355714Skris 884280304Sjkim# define LN_id_qt_unotice "Policy Qualifier User Notice" 885280304Sjkim# define SN_id_qt_unotice "id-qt-unotice" 886280304Sjkim# define NID_id_qt_unotice 165 887280304Sjkim# define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L 88855714Skris 889280304Sjkim# define SN_rc2_64_cbc "RC2-64-CBC" 890280304Sjkim# define LN_rc2_64_cbc "rc2-64-cbc" 891280304Sjkim# define NID_rc2_64_cbc 166 89255714Skris 893280304Sjkim# define SN_SMIMECapabilities "SMIME-CAPS" 894280304Sjkim# define LN_SMIMECapabilities "S/MIME Capabilities" 895280304Sjkim# define NID_SMIMECapabilities 167 896280304Sjkim# define OBJ_SMIMECapabilities OBJ_pkcs9,15L 89755714Skris 898280304Sjkim# define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" 899280304Sjkim# define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" 900280304Sjkim# define NID_pbeWithMD2AndRC2_CBC 168 901280304Sjkim# define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L 90255714Skris 903280304Sjkim# define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" 904280304Sjkim# define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" 905280304Sjkim# define NID_pbeWithMD5AndRC2_CBC 169 906280304Sjkim# define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L 90755714Skris 908280304Sjkim# define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" 909280304Sjkim# define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" 910280304Sjkim# define NID_pbeWithSHA1AndDES_CBC 170 911280304Sjkim# define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L 91255714Skris 91359191Skris/* Extension request OIDs */ 91459191Skris 915280304Sjkim# define LN_ms_ext_req "Microsoft Extension Request" 916280304Sjkim# define SN_ms_ext_req "msExtReq" 917280304Sjkim# define NID_ms_ext_req 171 918280304Sjkim# define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L 91959191Skris 920280304Sjkim# define LN_ext_req "Extension Request" 921280304Sjkim# define SN_ext_req "extReq" 922280304Sjkim# define NID_ext_req 172 923280304Sjkim# define OBJ_ext_req OBJ_pkcs9,14L 92459191Skris 925280304Sjkim# define SN_name "name" 926280304Sjkim# define LN_name "name" 927280304Sjkim# define NID_name 173 928280304Sjkim# define OBJ_name OBJ_X509,41L 92959191Skris 930280304Sjkim# define SN_dnQualifier "dnQualifier" 931280304Sjkim# define LN_dnQualifier "dnQualifier" 932280304Sjkim# define NID_dnQualifier 174 933280304Sjkim# define OBJ_dnQualifier OBJ_X509,46L 93459191Skris 935280304Sjkim# define SN_id_pe "id-pe" 936280304Sjkim# define NID_id_pe 175 937280304Sjkim# define OBJ_id_pe OBJ_id_pkix,1L 93859191Skris 939280304Sjkim# define SN_id_ad "id-ad" 940280304Sjkim# define NID_id_ad 176 941280304Sjkim# define OBJ_id_ad OBJ_id_pkix,48L 94259191Skris 943280304Sjkim# define SN_info_access "authorityInfoAccess" 944280304Sjkim# define LN_info_access "Authority Information Access" 945280304Sjkim# define NID_info_access 177 946280304Sjkim# define OBJ_info_access OBJ_id_pe,1L 94759191Skris 948280304Sjkim# define SN_ad_OCSP "OCSP" 949280304Sjkim# define LN_ad_OCSP "OCSP" 950280304Sjkim# define NID_ad_OCSP 178 951280304Sjkim# define OBJ_ad_OCSP OBJ_id_ad,1L 95259191Skris 953280304Sjkim# define SN_ad_ca_issuers "caIssuers" 954280304Sjkim# define LN_ad_ca_issuers "CA Issuers" 955280304Sjkim# define NID_ad_ca_issuers 179 956280304Sjkim# define OBJ_ad_ca_issuers OBJ_id_ad,2L 95759191Skris 958280304Sjkim# define SN_OCSP_sign "OCSPSigning" 959280304Sjkim# define LN_OCSP_sign "OCSP Signing" 960280304Sjkim# define NID_OCSP_sign 180 961280304Sjkim# define OBJ_OCSP_sign OBJ_id_kp,9L 962280304Sjkim# endif /* USE_OBJ_MAC */ 96359191Skris 964280304Sjkim# include <openssl/bio.h> 965280304Sjkim# include <openssl/asn1.h> 96655714Skris 967280304Sjkim# define OBJ_NAME_TYPE_UNDEF 0x00 968280304Sjkim# define OBJ_NAME_TYPE_MD_METH 0x01 969280304Sjkim# define OBJ_NAME_TYPE_CIPHER_METH 0x02 970280304Sjkim# define OBJ_NAME_TYPE_PKEY_METH 0x03 971280304Sjkim# define OBJ_NAME_TYPE_COMP_METH 0x04 972280304Sjkim# define OBJ_NAME_TYPE_NUM 0x05 97355714Skris 974280304Sjkim# define OBJ_NAME_ALIAS 0x8000 97555714Skris 976280304Sjkim# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 977280304Sjkim# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 97855714Skris 979160814Ssimon 98068651Skris#ifdef __cplusplus 98168651Skrisextern "C" { 98268651Skris#endif 98368651Skris 984280304Sjkimtypedef struct obj_name_st { 985280304Sjkim int type; 986280304Sjkim int alias; 987280304Sjkim const char *name; 988280304Sjkim const char *data; 989280304Sjkim} OBJ_NAME; 99055714Skris 991280304Sjkim# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) 99255714Skris 99355714Skrisint OBJ_NAME_init(void); 994280304Sjkimint OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), 995280304Sjkim int (*cmp_func) (const char *, const char *), 996280304Sjkim void (*free_func) (const char *, int, const char *)); 997280304Sjkimconst char *OBJ_NAME_get(const char *name, int type); 998280304Sjkimint OBJ_NAME_add(const char *name, int type, const char *data); 999280304Sjkimint OBJ_NAME_remove(const char *name, int type); 100055714Skrisvoid OBJ_NAME_cleanup(int type); /* -1 for everything */ 1001280304Sjkimvoid OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), 1002280304Sjkim void *arg); 1003280304Sjkimvoid OBJ_NAME_do_all_sorted(int type, 1004280304Sjkim void (*fn) (const OBJ_NAME *, void *arg), 1005280304Sjkim void *arg); 100655714Skris 1007280304SjkimASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); 1008280304SjkimASN1_OBJECT *OBJ_nid2obj(int n); 1009280304Sjkimconst char *OBJ_nid2ln(int n); 1010280304Sjkimconst char *OBJ_nid2sn(int n); 1011280304Sjkimint OBJ_obj2nid(const ASN1_OBJECT *o); 1012280304SjkimASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); 1013280304Sjkimint OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); 1014280304Sjkimint OBJ_txt2nid(const char *s); 1015280304Sjkimint OBJ_ln2nid(const char *s); 1016280304Sjkimint OBJ_sn2nid(const char *s); 1017280304Sjkimint OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); 1018280304Sjkimconst void *OBJ_bsearch_(const void *key, const void *base, int num, int size, 1019280304Sjkim int (*cmp) (const void *, const void *)); 1020280304Sjkimconst void *OBJ_bsearch_ex_(const void *key, const void *base, int num, 1021280304Sjkim int size, 1022280304Sjkim int (*cmp) (const void *, const void *), 1023280304Sjkim int flags); 102455714Skris 1025280304Sjkim# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ 1026238405Sjkim static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ 1027238405Sjkim static int nm##_cmp(type1 const *, type2 const *); \ 1028238405Sjkim scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) 1029238405Sjkim 1030280304Sjkim# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ 1031238405Sjkim _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) 1032280304Sjkim# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ 1033238405Sjkim type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) 1034238405Sjkim 1035280304Sjkim/*- 1036238405Sjkim * Unsolved problem: if a type is actually a pointer type, like 1037238405Sjkim * nid_triple is, then its impossible to get a const where you need 1038238405Sjkim * it. Consider: 1039238405Sjkim * 1040238405Sjkim * typedef int nid_triple[3]; 1041238405Sjkim * const void *a_; 1042238405Sjkim * const nid_triple const *a = a_; 1043238405Sjkim * 1044238405Sjkim * The assignement discards a const because what you really want is: 1045238405Sjkim * 1046238405Sjkim * const int const * const *a = a_; 1047238405Sjkim * 1048238405Sjkim * But if you do that, you lose the fact that a is an array of 3 ints, 1049238405Sjkim * which breaks comparison functions. 1050238405Sjkim * 1051238405Sjkim * Thus we end up having to cast, sadly, or unpack the 1052238405Sjkim * declarations. Or, as I finally did in this case, delcare nid_triple 1053238405Sjkim * to be a struct, which it should have been in the first place. 1054238405Sjkim * 1055238405Sjkim * Ben, August 2008. 1056238405Sjkim * 1057238405Sjkim * Also, strictly speaking not all types need be const, but handling 1058238405Sjkim * the non-constness means a lot of complication, and in practice 1059238405Sjkim * comparison routines do always not touch their arguments. 1060238405Sjkim */ 1061238405Sjkim 1062280304Sjkim# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ 1063280304Sjkim static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ 1064238405Sjkim { \ 1065238405Sjkim type1 const *a = a_; \ 1066238405Sjkim type2 const *b = b_; \ 1067238405Sjkim return nm##_cmp(a,b); \ 1068238405Sjkim } \ 1069238405Sjkim static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ 1070238405Sjkim { \ 1071238405Sjkim return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ 1072280304Sjkim nm##_cmp_BSEARCH_CMP_FN); \ 1073238405Sjkim } \ 1074238405Sjkim extern void dummy_prototype(void) 1075238405Sjkim 1076280304Sjkim# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ 1077280304Sjkim static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ 1078238405Sjkim { \ 1079238405Sjkim type1 const *a = a_; \ 1080238405Sjkim type2 const *b = b_; \ 1081238405Sjkim return nm##_cmp(a,b); \ 1082238405Sjkim } \ 1083238405Sjkim type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ 1084238405Sjkim { \ 1085238405Sjkim return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ 1086280304Sjkim nm##_cmp_BSEARCH_CMP_FN); \ 1087238405Sjkim } \ 1088238405Sjkim extern void dummy_prototype(void) 1089238405Sjkim 1090280304Sjkim# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ 1091238405Sjkim ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ 1092280304Sjkim num,sizeof(type2), \ 1093280304Sjkim ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ 1094280304Sjkim (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ 1095280304Sjkim cmp##_BSEARCH_CMP_FN))) 1096238405Sjkim 1097280304Sjkim# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ 1098238405Sjkim ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ 1099280304Sjkim num,sizeof(type2), \ 1100280304Sjkim ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ 1101280304Sjkim (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ 1102280304Sjkim cmp##_BSEARCH_CMP_FN)),flags) 1103238405Sjkim 1104280304Sjkimint OBJ_new_nid(int num); 1105280304Sjkimint OBJ_add_object(const ASN1_OBJECT *obj); 1106280304Sjkimint OBJ_create(const char *oid, const char *sn, const char *ln); 1107280304Sjkimvoid OBJ_cleanup(void); 1108280304Sjkimint OBJ_create_objects(BIO *in); 110955714Skris 1110238405Sjkimint OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); 1111238405Sjkimint OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); 1112238405Sjkimint OBJ_add_sigid(int signid, int dig_id, int pkey_id); 1113238405Sjkimvoid OBJ_sigid_free(void); 1114238405Sjkim 1115238405Sjkimextern int obj_cleanup_defer; 1116238405Sjkimvoid check_defer(int nid); 1117238405Sjkim 111855714Skris/* BEGIN ERROR CODES */ 1119280304Sjkim/* 1120280304Sjkim * The following lines are auto generated by the script mkerr.pl. Any changes 112155714Skris * made after this point may be overwritten when the script is next run. 112255714Skris */ 112389837Skrisvoid ERR_load_OBJ_strings(void); 112455714Skris 112555714Skris/* Error codes for the OBJ functions. */ 112655714Skris 112755714Skris/* Function codes. */ 1128280304Sjkim# define OBJ_F_OBJ_ADD_OBJECT 105 1129280304Sjkim# define OBJ_F_OBJ_CREATE 100 1130280304Sjkim# define OBJ_F_OBJ_DUP 101 1131280304Sjkim# define OBJ_F_OBJ_NAME_NEW_INDEX 106 1132280304Sjkim# define OBJ_F_OBJ_NID2LN 102 1133280304Sjkim# define OBJ_F_OBJ_NID2OBJ 103 1134280304Sjkim# define OBJ_F_OBJ_NID2SN 104 113555714Skris 113655714Skris/* Reason codes. */ 1137280304Sjkim# define OBJ_R_MALLOC_FAILURE 100 1138280304Sjkim# define OBJ_R_UNKNOWN_NID 101 113955714Skris 114055714Skris#ifdef __cplusplus 114155714Skris} 114255714Skris#endif 114355714Skris#endif 1144