2  * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved. 
   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 
  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. 
  23  Contains:  Object Identifiers for X509 Certificate Library 
  25  Copyright: (c) 1999 Apple Computer, Inc., all rights reserved. 
  29 #include <Security/oidscert.h> 
  33         /* Certificate OID Fields */ 
  34         X509V3SignedCertificate
[]                                       = {INTEL_X509V3_CERT_R08
, 0}, 
  35         X509V3SignedCertificateCStruct
[]                        = {INTEL_X509V3_CERT_R08
, 0, INTEL_X509_C_DATATYPE
}, 
  36         X509V3Certificate
[]                                                     = {INTEL_X509V3_CERT_R08
, 1}, 
  37         X509V3CertificateCStruct
[]                                      = {INTEL_X509V3_CERT_R08
, 1, INTEL_X509_C_DATATYPE
}, 
  38         X509V1Version
[]                                                         = {INTEL_X509V3_CERT_R08
, 2}, 
  39         X509V1SerialNumber
[]                                            = {INTEL_X509V3_CERT_R08
, 3}, 
  40         X509V1IssuerName
[]                                                      = {INTEL_X509V3_CERT_R08
, 5}, 
  41         X509V1IssuerNameCStruct
[]                                       = {INTEL_X509V3_CERT_R08
, 5, INTEL_X509_C_DATATYPE
}, 
  42         X509V1IssuerNameLDAP
[]                                          = {INTEL_X509V3_CERT_R08
, 5, INTEL_X509_LDAPSTRING_DATATYPE
}, 
  43         X509V1ValidityNotBefore
[]                                       = {INTEL_X509V3_CERT_R08
, 6}, 
  44         X509V1ValidityNotAfter
[]                                        = {INTEL_X509V3_CERT_R08
, 7}, 
  45         X509V1SubjectName
[]                                                     = {INTEL_X509V3_CERT_R08
, 8}, 
  46         X509V1SubjectNameCStruct
[]                                      = {INTEL_X509V3_CERT_R08
, 8, INTEL_X509_C_DATATYPE
}, 
  47         X509V1SubjectNameLDAP
[]                                         = {INTEL_X509V3_CERT_R08
, 8, INTEL_X509_LDAPSTRING_DATATYPE
}, 
  48         X509V1SubjectPublicKeyAlgorithm
[]                       = {INTEL_X509V3_CERT_R08
, 9}, 
  49         X509V1SubjectPublicKey
[]                                        = {INTEL_X509V3_CERT_R08
, 10}, 
  50         X509V1CertificateIssuerUniqueId
[]                       = {INTEL_X509V3_CERT_R08
, 11}, 
  51         X509V1CertificateSubjectUniqueId
[]                      = {INTEL_X509V3_CERT_R08
, 12}, 
  52         X509V3CertificateExtensionStruct
[]                      = {INTEL_X509V3_CERT_R08
, 13}, 
  53         X509V3CertificateExtensionCStruct
[]                     = {INTEL_X509V3_CERT_R08
, 13, INTEL_X509_C_DATATYPE
}, 
  54         X509V3CertificateNumberOfExtensions
[]           = {INTEL_X509V3_CERT_R08
, 14}, 
  55         X509V3CertificateExtensionId
[]                          = {INTEL_X509V3_CERT_R08
, 15}, 
  56         X509V3CertificateExtensionCritical
[]            = {INTEL_X509V3_CERT_R08
, 16}, 
  57         X509V3CertificateExtensionValue
[]                       = {INTEL_X509V3_CERT_R08
, 17}, 
  58         X509V1SubjectPublicKeyAlgorithmParameters
[]     = {INTEL_X509V3_CERT_R08
, 18}, 
  59         X509V3CertificateExtensionType
[]                        = {INTEL_X509V3_CERT_R08
, 19}, 
  60         CSSMKeyStruct
[]                                                         = {INTEL_X509V3_CERT_R08
, 20}, 
  61         X509V1SubjectPublicKeyCStruct
[]                         = {INTEL_X509V3_CERT_R08
, 20, INTEL_X509_C_DATATYPE
}, 
  62         X509V3CertificateExtensionsStruct
[]                     = {INTEL_X509V3_CERT_R08
, 21}, 
  63         X509V3CertificateExtensionsCStruct
[]            = {INTEL_X509V3_CERT_R08
, 21, INTEL_X509_C_DATATYPE
}, 
  65         /* Signature OID Fields */ 
  66         X509V1SignatureStruct
[]                                         = {INTEL_X509V3_SIGN_R08
, 0}, 
  67         X509V1SignatureCStruct
[]                                        = {INTEL_X509V3_SIGN_R08
, 0, INTEL_X509_C_DATATYPE
}, 
  68         /* for the algorithm ID in the cert proper */ 
  69         X509V1SignatureAlgorithm
[]                                      = {INTEL_X509V3_SIGN_R08
, 1}, 
  70         /* for the one in TBSCert */ 
  71         X509V1SignatureAlgorithmTBS
[]                           = {INTEL_X509V3_SIGN_R08
, 10}, 
  72         X509V1SignatureAlgorithmParameters
[]            = {INTEL_X509V3_SIGN_R08
, 3}, 
  73         X509V1Signature
[]                                                       = {INTEL_X509V3_SIGN_R08
, 2}, 
  75         /* Extension OID Fields */ 
  76         SubjectSignatureBitmap
[]                                        = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS
, 1}, 
  77         SubjectPicture
[]                                                        = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS
, 2}, 
  78         SubjectEmailAddress
[]                                           = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS
, 3}, 
  79         UseExemptions
[]                                                         = {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS
, 4}; 
  84         /* Certificate OIDS */ 
  85         CSSMOID_X509V3SignedCertificate                                                 
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3SignedCertificate
}, 
  86         CSSMOID_X509V3SignedCertificateCStruct                                  
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V3SignedCertificateCStruct
}, 
  87         CSSMOID_X509V3Certificate                                                       
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3Certificate
}, 
  88         CSSMOID_X509V3CertificateCStruct                                                
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V3CertificateCStruct
}, 
  89         CSSMOID_X509V1Version                                                           
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1Version
}, 
  90         CSSMOID_X509V1SerialNumber                                                      
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1SerialNumber
}, 
  91         CSSMOID_X509V1IssuerName                                                        
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1IssuerName
}, 
  92         CSSMOID_X509V1IssuerNameCStruct                                         
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V1IssuerNameCStruct
}, 
  93         CSSMOID_X509V1IssuerNameLDAP                                            
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V1IssuerNameLDAP
}, 
  94         CSSMOID_X509V1ValidityNotBefore                                                 
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1ValidityNotBefore
}, 
  95         CSSMOID_X509V1ValidityNotAfter                                                  
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1ValidityNotAfter
}, 
  96         CSSMOID_X509V1SubjectName                                                       
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1SubjectName
}, 
  97         CSSMOID_X509V1SubjectNameCStruct                                        
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V1SubjectNameCStruct
}, 
  98         CSSMOID_X509V1SubjectNameLDAP                                           
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V1SubjectNameLDAP
}, 
  99         CSSMOID_CSSMKeyStruct                                                           
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)CSSMKeyStruct
}, 
 100         CSSMOID_X509V1SubjectPublicKeyCStruct                           
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V1SubjectPublicKeyCStruct
}, 
 101         CSSMOID_X509V1SubjectPublicKeyAlgorithm                                 
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1SubjectPublicKeyAlgorithm
}, 
 102         CSSMOID_X509V1SubjectPublicKeyAlgorithmParameters       
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1SubjectPublicKeyAlgorithmParameters
}, 
 103         CSSMOID_X509V1SubjectPublicKey                                                  
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1SubjectPublicKey
}, 
 104         CSSMOID_X509V1CertificateIssuerUniqueId                                 
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1CertificateIssuerUniqueId
}, 
 105         CSSMOID_X509V1CertificateSubjectUniqueId                                
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V1CertificateSubjectUniqueId
}, 
 106         CSSMOID_X509V3CertificateExtensionsStruct                               
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3CertificateExtensionsStruct
}, 
 107         CSSMOID_X509V3CertificateExtensionsCStruct                              
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V3CertificateExtensionsCStruct
}, 
 108         CSSMOID_X509V3CertificateNumberOfExtensions                     
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3CertificateNumberOfExtensions
}, 
 109         CSSMOID_X509V3CertificateExtensionStruct                                
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3CertificateExtensionStruct
}, 
 110         CSSMOID_X509V3CertificateExtensionCStruct                               
= {INTEL_X509V3_CERT_R08_LENGTH
+2,  (uint8 
*)X509V3CertificateExtensionCStruct
}, 
 111         CSSMOID_X509V3CertificateExtensionId                                    
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3CertificateExtensionId
}, 
 112         CSSMOID_X509V3CertificateExtensionCritical                              
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3CertificateExtensionCritical
}, 
 113         CSSMOID_X509V3CertificateExtensionType                                  
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3CertificateExtensionType
}, 
 114         CSSMOID_X509V3CertificateExtensionValue                                 
= {INTEL_X509V3_CERT_R08_LENGTH
+1,  (uint8 
*)X509V3CertificateExtensionValue
}, 
 116         /* Signature OID Fields */ 
 117         CSSMOID_X509V1SignatureStruct                                           
= {INTEL_X509V3_SIGN_R08_LENGTH
+1,  (uint8 
*)X509V1SignatureStruct
}, 
 118         CSSMOID_X509V1SignatureCStruct                                                  
= {INTEL_X509V3_SIGN_R08_LENGTH
+2,  (uint8 
*)X509V1SignatureCStruct
}, 
 119         CSSMOID_X509V1SignatureAlgorithm                                        
= {INTEL_X509V3_SIGN_R08_LENGTH
+1,  (uint8 
*)X509V1SignatureAlgorithm
}, 
 120         CSSMOID_X509V1SignatureAlgorithmTBS                                     
= {INTEL_X509V3_SIGN_R08_LENGTH
+1,  (uint8 
*)X509V1SignatureAlgorithmTBS
}, 
 121         CSSMOID_X509V1SignatureAlgorithmParameters                      
= {INTEL_X509V3_SIGN_R08_LENGTH
+1,  (uint8 
*)X509V1SignatureAlgorithmParameters
}, 
 122         CSSMOID_X509V1Signature                                                         
= {INTEL_X509V3_SIGN_R08_LENGTH
+1,  (uint8 
*)X509V1Signature
}, 
 124         /* Extension OID Fields */ 
 125         CSSMOID_SubjectSignatureBitmap                                                  
= {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS_LENGTH
+1,  (uint8 
*)SubjectSignatureBitmap
}, 
 126         CSSMOID_SubjectPicture                                                                  
= {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS_LENGTH
+1,  (uint8 
*)SubjectPicture
}, 
 127         CSSMOID_SubjectEmailAddress                                                     
= {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS_LENGTH
+1,  (uint8 
*)SubjectEmailAddress
}, 
 128         CSSMOID_UseExemptions                                                           
= {INTEL_X509V3_CERT_PRIVATE_EXTENSIONS_LENGTH
+1, (uint8 
*)UseExemptions
}; 
 135  * Standard Cert extensions. 
 138         OID_SubjectDirectoryAttributes
[]        = { OID_EXTENSION
, 9 }, 
 139         OID_SubjectKeyIdentifier
[]                      = { OID_EXTENSION
, 14 }, 
 140         OID_KeyUsage
[]                                  = { OID_EXTENSION
, 15 }, 
 141         OID_PrivateKeyUsagePeriod
[]             = { OID_EXTENSION
, 16 }, 
 142         OID_SubjectAltName
[]                            = { OID_EXTENSION
, 17 }, 
 143         OID_IssuerAltName
[]                     = { OID_EXTENSION
, 18 }, 
 144         OID_BasicConstraints
[]                  = { OID_EXTENSION
, 19 }, 
 145         OID_CrlNumber
[]                         = { OID_EXTENSION
, 20 }, 
 146         OID_CrlReason
[]                         = { OID_EXTENSION
, 21 }, 
 147         OID_HoldInstructionCode
[]               = { OID_EXTENSION
, 23 }, 
 148         OID_InvalidityDate
[]                    = { OID_EXTENSION
, 24 }, 
 149         OID_DeltaCrlIndicator
[]                 = { OID_EXTENSION
, 27 }, 
 150         OID_IssuingDistributionPoints
[]     = { OID_EXTENSION
, 28 }, 
 151         OID_NameConstraints
[]                   = { OID_EXTENSION
, 30 }, 
 152         OID_CrlDistributionPoints
[]             = { OID_EXTENSION
, 31 }, 
 153         OID_CertificatePolicies
[]               = { OID_EXTENSION
, 32 }, 
 154         OID_PolicyMappings
[]                    = { OID_EXTENSION
, 33 }, 
 155         OID_AuthorityKeyIdentifier
[]            = { OID_EXTENSION
, 35 }, 
 156         OID_PolicyConstraints
[]                 = { OID_EXTENSION
, 36 }, 
 157         OID_ExtendedKeyUsage
[]                          = { OID_EXTENSION
, 37 }, 
 158         OID_ExtendedUseCodeSigning
[]            = { OID_EXTENSION
, 37, 3 } 
 161 #define OID_PKCS_CE_LENGTH      OID_EXTENSION_LENGTH + 1 
 164 CSSMOID_SubjectDirectoryAttributes 
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_SubjectDirectoryAttributes
}, 
 165 CSSMOID_SubjectKeyIdentifier    
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_SubjectKeyIdentifier
}, 
 166 CSSMOID_KeyUsage                                
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_KeyUsage
}, 
 167 CSSMOID_PrivateKeyUsagePeriod   
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_PrivateKeyUsagePeriod
}, 
 168 CSSMOID_SubjectAltName                  
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_SubjectAltName
}, 
 169 CSSMOID_IssuerAltName                   
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_IssuerAltName
}, 
 170 CSSMOID_BasicConstraints                
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_BasicConstraints
}, 
 171 CSSMOID_CrlNumber                               
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_CrlNumber
}, 
 172 CSSMOID_CrlReason                               
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_CrlReason
}, 
 173 CSSMOID_HoldInstructionCode     
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_HoldInstructionCode
}, 
 174 CSSMOID_InvalidityDate                  
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_InvalidityDate
}, 
 175 CSSMOID_DeltaCrlIndicator               
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_DeltaCrlIndicator
}, 
 176 CSSMOID_IssuingDistributionPoints 
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_IssuingDistributionPoints
}, 
 177 CSSMOID_NameConstraints                 
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_NameConstraints
}, 
 178 CSSMOID_CrlDistributionPoints   
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_CrlDistributionPoints
}, 
 179 CSSMOID_CertificatePolicies     
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_CertificatePolicies
}, 
 180 CSSMOID_PolicyMappings                  
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_PolicyMappings
}, 
 181 CSSMOID_PolicyConstraints               
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_PolicyConstraints
}, 
 182 CSSMOID_AuthorityKeyIdentifier  
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_AuthorityKeyIdentifier
}, 
 183 CSSMOID_ExtendedKeyUsage                
= { OID_PKCS_CE_LENGTH
, (uint8 
*)OID_ExtendedKeyUsage
}, 
 184 CSSMOID_ExtendedUseCodeSigning  
= { OID_PKCS_CE_LENGTH
+1, (uint8 
*)OID_ExtendedUseCodeSigning
}; 
 188  * Netscape extensions. 
 190  *  netscape-cert-type OBJECT IDENTIFIER ::= 
 191  *              { 2 16 840 1 113730 1 1 } 
 193  *      BER = 06 08 60 86 48 01 86 F8 42 01 01 
 195 static const uint8      OID_NetscapeCertType
[]          = {NETSCAPE_CERT_EXTEN
, 1}; 
 196 const CSSM_OID  CSSMOID_NetscapeCertType        
=  
 197         {NETSCAPE_CERT_EXTEN_LENGTH 
+ 1, (uint8 
*)OID_NetscapeCertType
};