X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/Security/libsecurity_cssm/lib/oidscrl.cpp?ds=inline diff --git a/Security/libsecurity_cssm/lib/oidscrl.cpp b/Security/libsecurity_cssm/lib/oidscrl.cpp new file mode 100644 index 00000000..788c2068 --- /dev/null +++ b/Security/libsecurity_cssm/lib/oidscrl.cpp @@ -0,0 +1,179 @@ +/* + * Copyright (c) 2000-2002,2004,2011,2014 Apple Inc. All Rights Reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + + +/* + + File: oidscrl.cpp + + Contains: Object Identifiers for X509 CRLs and OCSP + + Copyright (c) 1999,2001-2002,2004,2011,2014 Apple Inc. All Rights Reserved. + + */ + +#include + +static const uint8 + + /* CRL OIDs */ + X509V2CRLSignedCrlStruct[] = {INTEL_X509V2_CRL_R08, 0}, + X509V2CRLSignedCrlCStruct [] = {INTEL_X509V2_CRL_R08, 0, INTEL_X509_C_DATATYPE}, + X509V2CRLTbsCertListStruct [] = {INTEL_X509V2_CRL_R08, 1}, + X509V2CRLTbsCertListCStruct[] = {INTEL_X509V2_CRL_R08, 1, INTEL_X509_C_DATATYPE}, + X509V2CRLVersion [] = {INTEL_X509V2_CRL_R08, 2}, + X509V1CRLIssuerStruct[] = {INTEL_X509V2_CRL_R08, 3}, + X509V1CRLIssuerNameCStruct[] = {INTEL_X509V2_CRL_R08, 3, INTEL_X509_C_DATATYPE}, + X509V1CRLIssuerNameLDAP[] = {INTEL_X509V2_CRL_R08, 3, + INTEL_X509_LDAPSTRING_DATATYPE}, + X509V1CRLThisUpdate[] = {INTEL_X509V2_CRL_R08, 4}, + X509V1CRLNextUpdate[] = {INTEL_X509V2_CRL_R08, 5}, + + /* CRL Entry (CRL CertList) OIDS */ + X509V1CRLRevokedCertificatesStruct[] = {INTEL_X509V2_CRL_R08, 7}, + X509V1CRLRevokedCertificatesCStruct[] = {INTEL_X509V2_CRL_R08, 7, INTEL_X509_C_DATATYPE}, + X509V1CRLNumberOfRevokedCertEntries[] = {INTEL_X509V2_CRL_R08, 6}, + X509V1CRLRevokedEntryStruct[] = {INTEL_X509V2_CRL_R08, 15}, + X509V1CRLRevokedEntryCStruct[] = {INTEL_X509V2_CRL_R08, 15, INTEL_X509_C_DATATYPE}, + X509V1CRLRevokedEntrySerialNumber[] = {INTEL_X509V2_CRL_R08, 16}, + X509V1CRLRevokedEntryRevocationDate[] = {INTEL_X509V2_CRL_R08, 17}, + + /* CRL Entry (CRL CertList) Extension OIDs */ + X509V2CRLRevokedEntryAllExtensionsStruct[] = {INTEL_X509V2_CRL_R08, 18}, + X509V2CRLRevokedEntryAllExtensionsCStruct[] = {INTEL_X509V2_CRL_R08, 18, INTEL_X509_C_DATATYPE}, + X509V2CRLRevokedEntryNumberOfExtensions[] = {INTEL_X509V2_CRL_R08, 20}, + X509V2CRLRevokedEntrySingleExtensionStruct[]= {INTEL_X509V2_CRL_R08, 19}, + X509V2CRLRevokedEntrySingleExtensionCStruct[]= {INTEL_X509V2_CRL_R08, 19, INTEL_X509_C_DATATYPE}, + X509V2CRLRevokedEntryExtensionId[] = {INTEL_X509V2_CRL_R08, 21}, + X509V2CRLRevokedEntryExtensionCritical[] = {INTEL_X509V2_CRL_R08, 22}, + X509V2CRLRevokedEntryExtensionType[] = {INTEL_X509V2_CRL_R08, 23}, + X509V2CRLRevokedEntryExtensionValue[] = {INTEL_X509V2_CRL_R08, 24}, + + /* CRL Extension OIDs */ + X509V2CRLAllExtensionsStruct[] = {INTEL_X509V2_CRL_R08, 8}, + X509V2CRLAllExtensionsCStruct[] = {INTEL_X509V2_CRL_R08, 8, INTEL_X509_C_DATATYPE}, + X509V2CRLNumberOfExtensions[] = {INTEL_X509V2_CRL_R08, 10}, + X509V2CRLSingleExtensionStruct[] = {INTEL_X509V2_CRL_R08, 9}, + X509V2CRLSingleExtensionCStruct[] = {INTEL_X509V2_CRL_R08, 9, INTEL_X509_C_DATATYPE}, + X509V2CRLExtensionId[] = {INTEL_X509V2_CRL_R08, 11}, + X509V2CRLExtensionCritical[] = {INTEL_X509V2_CRL_R08, 12}, + X509V2CRLExtensionType[] = {INTEL_X509V2_CRL_R08, 13}, + + /* OCSP */ + OID_PKIX_OCSP[] = { OID_AD_OCSP }, + OID_PKIX_OCSP_BASIC[] = { OID_AD_OCSP, 1 }, + OID_PKIX_OCSP_NONCE[] = { OID_AD_OCSP, 2 }, + OID_PKIX_OCSP_CRL[] = { OID_AD_OCSP, 3 }, + OID_PKIX_OCSP_RESPONSE[] = { OID_AD_OCSP, 4 }, + OID_PKIX_OCSP_NOCHECK[] = { OID_AD_OCSP, 5 }, + OID_PKIX_OCSP_ARCHIVE_CUTOFF[] = { OID_AD_OCSP, 6 }, + OID_PKIX_OCSP_SERVICE_LOCATOR[] = { OID_AD_OCSP, 7 }; + +const CSSM_OID + + /* CRL OIDs */ + CSSMOID_X509V2CRLSignedCrlStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLSignedCrlStruct}, + CSSMOID_X509V2CRLSignedCrlCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V2CRLSignedCrlCStruct}, + CSSMOID_X509V2CRLTbsCertListStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLTbsCertListStruct}, + CSSMOID_X509V2CRLTbsCertListCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V2CRLTbsCertListCStruct}, + CSSMOID_X509V2CRLVersion = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLVersion}, + CSSMOID_X509V1CRLIssuerStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V1CRLIssuerStruct}, + CSSMOID_X509V1CRLIssuerNameCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V1CRLIssuerNameCStruct}, + CSSMOID_X509V1CRLIssuerNameLDAP = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V1CRLIssuerNameLDAP}, + CSSMOID_X509V1CRLThisUpdate = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V1CRLThisUpdate}, + CSSMOID_X509V1CRLNextUpdate = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V1CRLNextUpdate}, + + /* CRL Entry (CRL CertList) OIDS */ + CSSMOID_X509V1CRLRevokedCertificatesStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V1CRLRevokedCertificatesStruct}, + CSSMOID_X509V1CRLRevokedCertificatesCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V1CRLRevokedCertificatesCStruct}, + CSSMOID_X509V1CRLNumberOfRevokedCertEntries = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V1CRLNumberOfRevokedCertEntries}, + CSSMOID_X509V1CRLRevokedEntryStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V1CRLRevokedEntryStruct}, + CSSMOID_X509V1CRLRevokedEntryCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V1CRLRevokedEntryCStruct}, + CSSMOID_X509V1CRLRevokedEntrySerialNumber = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V1CRLRevokedEntrySerialNumber}, + CSSMOID_X509V1CRLRevokedEntryRevocationDate = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V1CRLRevokedEntryRevocationDate}, + + /* CRL Entry (CRL CertList) Extension OIDs */ + CSSMOID_X509V2CRLRevokedEntryAllExtensionsStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLRevokedEntryAllExtensionsStruct}, + CSSMOID_X509V2CRLRevokedEntryAllExtensionsCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V2CRLRevokedEntryAllExtensionsCStruct}, + CSSMOID_X509V2CRLRevokedEntryNumberOfExtensions = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLRevokedEntryNumberOfExtensions}, + CSSMOID_X509V2CRLRevokedEntrySingleExtensionStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLRevokedEntrySingleExtensionStruct}, + CSSMOID_X509V2CRLRevokedEntrySingleExtensionCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V2CRLRevokedEntrySingleExtensionCStruct}, + CSSMOID_X509V2CRLRevokedEntryExtensionId = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLRevokedEntryExtensionId}, + CSSMOID_X509V2CRLRevokedEntryExtensionCritical = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLRevokedEntryExtensionCritical}, + CSSMOID_X509V2CRLRevokedEntryExtensionType = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLRevokedEntryExtensionType}, + CSSMOID_X509V2CRLRevokedEntryExtensionValue = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLRevokedEntryExtensionValue}, + + /* CRL Extension OIDs */ + CSSMOID_X509V2CRLAllExtensionsStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLAllExtensionsStruct}, + CSSMOID_X509V2CRLAllExtensionsCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V2CRLAllExtensionsCStruct}, + CSSMOID_X509V2CRLNumberOfExtensions = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLNumberOfExtensions}, + CSSMOID_X509V2CRLSingleExtensionStruct = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLSingleExtensionStruct}, + CSSMOID_X509V2CRLSingleExtensionCStruct = {INTEL_X509V2_CRL_R08_LENGTH+2, + (uint8 *)X509V2CRLSingleExtensionCStruct}, + CSSMOID_X509V2CRLExtensionId = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLExtensionId}, + CSSMOID_X509V2CRLExtensionCritical = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLExtensionCritical}, + CSSMOID_X509V2CRLExtensionType = {INTEL_X509V2_CRL_R08_LENGTH+1, + (uint8 *)X509V2CRLExtensionType}; + +const CSSM_OID + /* OCSP OIDs */ + CSSMOID_PKIX_OCSP = { OID_AD_OCSP_LENGTH, (uint8 *)OID_PKIX_OCSP }, + CSSMOID_PKIX_OCSP_BASIC = { OID_AD_OCSP_LENGTH+1, (uint8 *)OID_PKIX_OCSP_BASIC}, + CSSMOID_PKIX_OCSP_NONCE = { OID_AD_OCSP_LENGTH+1, (uint8 *)OID_PKIX_OCSP_NONCE}, + CSSMOID_PKIX_OCSP_CRL = { OID_AD_OCSP_LENGTH+1, (uint8 *)OID_PKIX_OCSP_CRL}, + CSSMOID_PKIX_OCSP_RESPONSE = { OID_AD_OCSP_LENGTH+1, (uint8 *)OID_PKIX_OCSP_RESPONSE}, + CSSMOID_PKIX_OCSP_NOCHECK = { OID_AD_OCSP_LENGTH+1, (uint8 *)OID_PKIX_OCSP_NOCHECK}, + CSSMOID_PKIX_OCSP_ARCHIVE_CUTOFF = { OID_AD_OCSP_LENGTH+1, (uint8 *)OID_PKIX_OCSP_ARCHIVE_CUTOFF}, + CSSMOID_PKIX_OCSP_SERVICE_LOCATOR = { OID_AD_OCSP_LENGTH+1, (uint8 *)OID_PKIX_OCSP_SERVICE_LOCATOR};