1/* 2 * Copyright (c) 1999-2001,2003-2004,2008-2010 Apple Inc. All Rights Reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 * 23 * oidsbase.h -- Basic Object Identifier Macros and Data Types. 24 */ 25 26#include "SecAsn1Types.h" 27 28#ifndef _OIDSBASE_H_ 29#define _OIDSBASE_H_ 1 30 31#ifdef __cplusplus 32extern "C" { 33#endif 34 35#define SECASN1OID_DEF(NAME, VALUE, ARGS...) \ 36static const uint8_t _##NAME[] = { VALUE, ## ARGS }; \ 37const SecAsn1Oid NAME = { sizeof(_##NAME), (uint8_t *)_##NAME } 38 39/* Intel CSSM */ 40 41#define INTEL 96, 134, 72, 1, 134, 248, 77 42#define INTEL_LENGTH 7 43 44#define INTEL_CDSASECURITY INTEL, 2 45#define INTEL_CDSASECURITY_LENGTH (INTEL_LENGTH + 1) 46 47#define INTEL_SEC_FORMATS INTEL_CDSASECURITY, 1 48#define INTEL_SEC_FORMATS_LENGTH (INTEL_CDSASECURITY_LENGTH + 1) 49 50#define INTEL_SEC_ALGS INTEL_CDSASECURITY, 2, 5 51#define INTEL_SEC_ALGS_LENGTH (INTEL_CDSASECURITY_LENGTH + 2) 52 53#define INTEL_SEC_OBJECT_BUNDLE INTEL_SEC_FORMATS, 4 54#define INTEL_SEC_OBJECT_BUNDLE_LENGTH (INTEL_SEC_FORMATS_LENGTH + 1) 55 56#define INTEL_CERT_AND_PRIVATE_KEY_2_0 INTEL_SEC_OBJECT_BUNDLE, 1 57#define INTEL_CERT_AND_PRIVATE_KEY_2_0_LENGTH (INTEL_SEC_OBJECT_BUNDLE_LENGTH + 1) 58 59/* Suffix specifying format or representation of a field value */ 60/* Note that if a format suffix is not specified, a flat data 61representation is implied */ 62#define INTEL_X509_C_DATATYPE 1 63#define INTEL_X509_LDAPSTRING_DATATYPE 2 64 65#define OID_ISO_CCITT_DIR_SERVICE 85 66#define OID_DS OID_ISO_CCITT_DIR_SERVICE 67#define OID_DS_LENGTH 1 68#define OID_ATTR_TYPE OID_DS, 4 69#define OID_ATTR_TYPE_LENGTH OID_DS_LENGTH + 1 70#define OID_EXTENSION OID_DS, 29 71#define OID_EXTENSION_LENGTH OID_DS_LENGTH + 1 72#define OID_ISO_STANDARD 40 73#define OID_ISO_MEMBER 42 74#define OID_US OID_ISO_MEMBER, 134, 72 75 76#define OID_ISO_IDENTIFIED_ORG 43 77#define OID_OSINET OID_ISO_IDENTIFIED_ORG, 4 78#define OID_GOSIP OID_ISO_IDENTIFIED_ORG, 5 79#define OID_DOD OID_ISO_IDENTIFIED_ORG, 6 80#define OID_OIW OID_ISO_IDENTIFIED_ORG, 14 81 82#define OID_ITU_RFCDATA_MEMBER_LENGTH 1 83#define OID_ITU_RFCDATA 9 84 85/* From the PKCS Standards */ 86#define OID_ISO_MEMBER_LENGTH 1 87#define OID_US_LENGTH OID_ISO_MEMBER_LENGTH + 2 88#define OID_RSA OID_US, 134, 247, 13 89#define OID_RSA_LENGTH OID_US_LENGTH + 3 90#define OID_RSA_HASH OID_RSA, 2 91#define OID_RSA_HASH_LENGTH OID_RSA_LENGTH + 1 92#define OID_RSA_ENCRYPT OID_RSA, 3 93#define OID_RSA_ENCRYPT_LENGTH OID_RSA_LENGTH + 1 94#define OID_PKCS OID_RSA, 1 95#define OID_PKCS_LENGTH OID_RSA_LENGTH +1 96#define OID_PKCS_1 OID_PKCS, 1 97#define OID_PKCS_1_LENGTH OID_PKCS_LENGTH +1 98#define OID_PKCS_2 OID_PKCS, 2 99#define OID_PKCS_3 OID_PKCS, 3 100#define OID_PKCS_3_LENGTH OID_PKCS_LENGTH +1 101#define OID_PKCS_4 OID_PKCS, 4 102#define OID_PKCS_5 OID_PKCS, 5 103#define OID_PKCS_5_LENGTH OID_PKCS_LENGTH +1 104#define OID_PKCS_6 OID_PKCS, 6 105#define OID_PKCS_7 OID_PKCS, 7 106#define OID_PKCS_7_LENGTH OID_PKCS_LENGTH +1 107#define OID_PKCS_8 OID_PKCS, 8 108#define OID_PKCS_9 OID_PKCS, 9 109#define OID_PKCS_9_LENGTH OID_PKCS_LENGTH +1 110#define OID_PKCS_10 OID_PKCS, 10 111#define OID_PKCS_11 OID_PKCS, 11 112#define OID_PKCS_11_LENGTH OID_PKCS_LENGTH +1 113#define OID_PKCS_12 OID_PKCS, 12 114#define OID_PKCS_12_LENGTH OID_PKCS_LENGTH +1 115 116/* ANSI X9.42 */ 117#define OID_ANSI_X9_42 OID_US, 206, 62, 2 118#define OID_ANSI_X9_42_LEN OID_US_LENGTH + 3 119#define OID_ANSI_X9_42_SCHEME OID_ANSI_X9_42, 3 120#define OID_ANSI_X9_42_SCHEME_LEN OID_ANSI_X9_42_LEN + 1 121#define OID_ANSI_X9_42_NAMED_SCHEME OID_ANSI_X9_42, 4 122#define OID_ANSI_X9_42_NAMED_SCHEME_LEN OID_ANSI_X9_42_LEN + 1 123 124/* ANSI X9.62 (1 2 840 10045) */ 125#define OID_ANSI_X9_62 0x2A, 0x86, 0x48, 0xCE, 0x3D 126#define OID_ANSI_X9_62_LEN 5 127#define OID_ANSI_X9_62_FIELD_TYPE OID_ANSI_X9_62, 1 128#define OID_ANSI_X9_62_PUBKEY_TYPE OID_ANSI_X9_62, 2 129#define OID_ANSI_X9_62_ELL_CURVE OID_ANSI_X9_62, 3 130#define OID_ANSI_X9_62_ELL_CURVE_LEN OID_ANSI_X9_62_LEN+1 131#define OID_ANSI_X9_62_C_TWO_CURVE OID_ANSI_X9_62_ELL_CURVE, 0 132#define OID_ANSI_X9_62_PRIME_CURVE OID_ANSI_X9_62_ELL_CURVE, 1 133#define OID_ANSI_X9_62_SIG_TYPE OID_ANSI_X9_62, 4 134#define OID_ANSI_X9_62_SIG_TYPE_LEN OID_ANSI_X9_62_LEN+1 135 136/* PKIX */ 137#define OID_PKIX OID_DOD, 1, 5, 5, 7 138#define OID_PKIX_LENGTH 6 139#define OID_PE OID_PKIX, 1 140#define OID_PE_LENGTH OID_PKIX_LENGTH + 1 141#define OID_QT OID_PKIX, 2 142#define OID_QT_LENGTH OID_PKIX_LENGTH + 1 143#define OID_KP OID_PKIX, 3 144#define OID_KP_LENGTH OID_PKIX_LENGTH + 1 145#define OID_OTHER_NAME OID_PKIX, 8 146#define OID_OTHER_NAME_LENGTH OID_PKIX_LENGTH + 1 147#define OID_PDA OID_PKIX, 9 148#define OID_PDA_LENGTH OID_PKIX_LENGTH + 1 149#define OID_QCS OID_PKIX, 11 150#define OID_QCS_LENGTH OID_PKIX_LENGTH + 1 151#define OID_AD OID_PKIX, 48 152#define OID_AD_LENGTH OID_PKIX_LENGTH + 1 153#define OID_AD_OCSP OID_AD, 1 154#define OID_AD_OCSP_LENGTH OID_AD_LENGTH + 1 155 156/* ETSI */ 157#define OID_ETSI 0x04, 0x00 158#define OID_ETSI_LENGTH 2 159#define OID_ETSI_QCS 0x04, 0x00, 0x8E, 0x46, 0x01 160#define OID_ETSI_QCS_LENGTH 5 161 162#define OID_OIW_SECSIG OID_OIW, 3 163#define OID_OIW_LENGTH 2 164#define OID_OIW_SECSIG_LENGTH OID_OIW_LENGTH +1 165 166#define OID_OIW_ALGORITHM OID_OIW_SECSIG, 2 167#define OID_OIW_ALGORITHM_LENGTH OID_OIW_SECSIG_LENGTH +1 168 169/* NIST defined digest algorithm arc (2, 16, 840, 1, 101, 3, 4, 2) */ 170#define OID_NIST_HASHALG 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02 171#define OID_NIST_HASHALG_LENGTH 8 172 173/* Kerberos PKINIT */ 174#define OID_KERBv5 0x2b, 6, 1, 5, 2 175#define OID_KERBv5_LEN 5 176#define OID_KERBv5_PKINIT OID_KERBv5, 3 177#define OID_KERBv5_PKINIT_LEN OID_KERBv5_LEN + 1 178 179/* Certicom (1 3 132) */ 180#define OID_CERTICOM 0x2B, 0x81, 0x04 181#define OID_CERTICOM_LEN 3 182#define OID_CERTICOM_ELL_CURVE OID_CERTICOM, 0 183#define OID_CERTICOM_ELL_CURVE_LEN OID_CERTICOM_LEN+1 184 185/* 186 * Apple-specific OID bases 187 */ 188 189/* 190 * apple OBJECT IDENTIFIER ::= 191 * { iso(1) member-body(2) US(840) 113635 } 192 * 193 * BER = 06 06 2A 86 48 86 F7 63 194 */ 195#define APPLE_OID OID_US, 0x86, 0xf7, 0x63 196#define APPLE_OID_LENGTH OID_US_LENGTH + 3 197 198/* appleDataSecurity OBJECT IDENTIFIER ::= 199 * { apple 100 } 200 * { 1 2 840 113635 100 } 201 * 202 * BER = 06 07 2A 86 48 86 F7 63 64 203 */ 204#define APPLE_ADS_OID APPLE_OID, 0x64 205#define APPLE_ADS_OID_LENGTH APPLE_OID_LENGTH + 1 206 207/* 208 * appleTrustPolicy OBJECT IDENTIFIER ::= 209 * { appleDataSecurity 1 } 210 * { 1 2 840 113635 100 1 } 211 * 212 * BER = 06 08 2A 86 48 86 F7 63 64 01 213 */ 214#define APPLE_TP_OID APPLE_ADS_OID, 1 215#define APPLE_TP_OID_LENGTH APPLE_ADS_OID_LENGTH + 1 216 217/* 218 * appleSecurityAlgorithm OBJECT IDENTIFIER ::= 219 * { appleDataSecurity 2 } 220 * { 1 2 840 113635 100 2 } 221 * 222 * BER = 06 08 2A 86 48 86 F7 63 64 02 223 */ 224#define APPLE_ALG_OID APPLE_ADS_OID, 2 225#define APPLE_ALG_OID_LENGTH APPLE_ADS_OID_LENGTH + 1 226 227/* 228 * appleDotMacCertificate OBJECT IDENTIFIER ::= 229 * { appleDataSecurity 3 } 230 * { 1 2 840 113635 100 3 } 231 */ 232#define APPLE_DOTMAC_CERT_OID APPLE_ADS_OID, 3 233#define APPLE_DOTMAC_CERT_OID_LENGTH APPLE_ADS_OID_LENGTH + 1 234 235/* 236 * Basis of Policy OIDs for .mac TP requests 237 * 238 * dotMacCertificateRequest OBJECT IDENTIFIER ::= 239 * { appleDotMacCertificate 1 } 240 * { 1 2 840 113635 100 3 1 } 241 */ 242#define APPLE_DOTMAC_CERT_REQ_OID APPLE_DOTMAC_CERT_OID, 1 243#define APPLE_DOTMAC_CERT_REQ_OID_LENGTH APPLE_DOTMAC_CERT_OID_LENGTH + 1 244 245/* 246 * Basis of .mac Certificate Extensions 247 * 248 * dotMacCertificateExtension OBJECT IDENTIFIER ::= 249 * { appleDotMacCertificate 2 } 250 * { 1 2 840 113635 100 3 2 } 251 */ 252#define APPLE_DOTMAC_CERT_EXTEN_OID APPLE_DOTMAC_CERT_OID, 2 253#define APPLE_DOTMAC_CERT_EXTEN_OID_LENGTH APPLE_DOTMAC_CERT_OID_LENGTH + 1 254 255/* 256 * Basis of .mac Certificate request OID/value identifiers 257 * 258 * dotMacCertificateRequestValues OBJECT IDENTIFIER ::= 259 * { appleDotMacCertificate 3 } 260 * { 1 2 840 113635 100 3 3 } 261 */ 262#define APPLE_DOTMAC_CERT_REQ_VALUE_OID APPLE_DOTMAC_CERT_OID, 3 263#define APPLE_DOTMAC_CERT_REQ_VALUE_OID_LENGTH APPLE_DOTMAC_CERT_OID_LENGTH + 1 264 265/* 266 * Basis of Apple-specific extended key usages 267 * 268 * appleExtendedKeyUsage OBJECT IDENTIFIER ::= 269 * { appleDataSecurity 4 } 270 * { 1 2 840 113635 100 4 } 271 */ 272#define APPLE_EKU_OID APPLE_ADS_OID, 4 273#define APPLE_EKU_OID_LENGTH APPLE_ADS_OID_LENGTH + 1 274 275/* 276 * Basis of Apple Code Signing extended key usages 277 * appleCodeSigning OBJECT IDENTIFIER ::= 278 * { appleExtendedKeyUsage 1 } 279 * { 1 2 840 113635 100 4 1 } 280 */ 281#define APPLE_EKU_CODE_SIGNING APPLE_EKU_OID, 1 282#define APPLE_EKU_CODE_SIGNING_LENGTH APPLE_EKU_OID_LENGTH + 1 283 284/* 285 * Basis of Apple-specific Certificate Policy identifiers 286 * appleCertificatePolicies OBJECT IDENTIFIER ::= 287 * { appleDataSecurity 5 } 288 * { 1 2 840 113635 100 5 } 289 */ 290#define APPLE_CERT_POLICIES APPLE_ADS_OID, 5 291#define APPLE_CERT_POLICIES_LENGTH APPLE_ADS_OID_LENGTH + 1 292 293/* 294 * Basis of Apple-specific certificate extensions 295 * appleCertificateExtensions OBJECT IDENTIFIER ::= 296 * { appleDataSecurity 6 } 297 * { 1 2 840 113635 100 6 } 298 */ 299#define APPLE_EXTENSION_OID APPLE_ADS_OID, 6 300#define APPLE_EXTENSION_OID_LENGTH APPLE_ADS_OID_LENGTH + 1 301 302/* 303 * Basis of Apple-specific Code Signing certificate extensions 304 * appleCertificateExtensionCodeSigning OBJECT IDENTIFIER ::= 305 * { appleCertificateExtensions 1 } 306 * { 1 2 840 113635 100 6 1 } 307 */ 308#define APPLE_EXTENSION_CODE_SIGNING APPLE_EXTENSION_OID, 1 309#define APPLE_EXTENSION_CODE_SIGNING_LENGTH APPLE_EXTENSION_OID_LENGTH + 1 310 311/* 312 * Netscape OIDs. 313 */ 314#define NETSCAPE_BASE_OID 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42 315#define NETSCAPE_BASE_OID_LEN 7 316 317/* 318 * Netscape cert extension. 319 * 320 * netscape-cert-extension OBJECT IDENTIFIER ::= 321 * { 2 16 840 1 113730 1 } 322 * 323 * BER = 06 08 60 86 48 01 86 F8 42 01 324 */ 325#define NETSCAPE_CERT_EXTEN NETSCAPE_BASE_OID, 0x01 326#define NETSCAPE_CERT_EXTEN_LENGTH NETSCAPE_BASE_OID_LEN + 1 327 328#define NETSCAPE_CERT_POLICY NETSCAPE_BASE_OID, 0x04 329#define NETSCAPE_CERT_POLICY_LENGTH NETSCAPE_BASE_OID_LEN + 1 330 331/* 332 * Domain Component OID 333 */ 334#define OID_ITU_RFCDATA_2342 OID_ITU_RFCDATA, 0x49, 0x86 335#define OID_ITU_RFCDATA_2342_LENGTH OID_ITU_RFCDATA_MEMBER_LENGTH + 2 336 337#define OID_ITU_RFCDATA_2342_UCL OID_ITU_RFCDATA_2342, 0x49, 0x1F, 0x12, 0x8C 338#define OID_ITU_RFCDATA_2342_UCL_LENGTH OID_ITU_RFCDATA_2342_LENGTH + 4 339 340#define OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT OID_ITU_RFCDATA_2342_UCL, 0xE4 341#define OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_LENGTH OID_ITU_RFCDATA_2342_UCL_LENGTH + 1 342 343#define OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT, 0x81 344#define OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_LENGTH OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_LENGTH + 1 345 346#define OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_DOMAINCOMPONENT OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES, 0x99 347#define OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_DOMAINCOMPONENT_LENGTH OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_LENGTH + 1 348 349#define OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_USERID OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES, 0x81 350#define OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_USERID_LENGTH OID_ITU_RFCDATA_2342_UCL_DIRECTORYPILOT_ATTRIBUTES_LENGTH + 1 351 352#ifdef __cplusplus 353} 354#endif 355 356#endif /* _OIDSBASE_H_ */ 357