github.com/zmap/zcrypto@v0.0.0-20240512203510-0fef58d9a9db/x509/extended_key_usage.go (about)

     1  // Created by extended_key_usage_gen; DO NOT EDIT
     2  
     3  // Copyright 2017 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  package x509
     8  
     9  import (
    10  	"github.com/zmap/zcrypto/encoding/asn1"
    11  )
    12  
    13  const (
    14  	OID_EKU_APPLE_CODE_SIGNING                 = "1.2.840.113635.100.4.1"
    15  	OID_EKU_APPLE_CODE_SIGNING_DEVELOPMENT     = "1.2.840.113635.100.4.1.1"
    16  	OID_EKU_APPLE_SOFTWARE_UPDATE_SIGNING      = "1.2.840.113635.100.4.1.2"
    17  	OID_EKU_APPLE_CODE_SIGNING_THIRD_PARTY     = "1.2.840.113635.100.4.1.3"
    18  	OID_EKU_APPLE_RESOURCE_SIGNING             = "1.2.840.113635.100.4.1.4"
    19  	OID_EKU_APPLE_ICHAT_SIGNING                = "1.2.840.113635.100.4.2"
    20  	OID_EKU_APPLE_ICHAT_ENCRYPTION             = "1.2.840.113635.100.4.3"
    21  	OID_EKU_APPLE_SYSTEM_IDENTITY              = "1.2.840.113635.100.4.4"
    22  	OID_EKU_APPLE_CRYPTO_ENV                   = "1.2.840.113635.100.4.5"
    23  	OID_EKU_APPLE_CRYPTO_PRODUCTION_ENV        = "1.2.840.113635.100.4.5.1"
    24  	OID_EKU_APPLE_CRYPTO_MAINTENANCE_ENV       = "1.2.840.113635.100.4.5.2"
    25  	OID_EKU_APPLE_CRYPTO_TEST_ENV              = "1.2.840.113635.100.4.5.3"
    26  	OID_EKU_APPLE_CRYPTO_DEVELOPMENT_ENV       = "1.2.840.113635.100.4.5.4"
    27  	OID_EKU_APPLE_CRYPTO_QOS                   = "1.2.840.113635.100.4.6"
    28  	OID_EKU_APPLE_CRYPTO_TIER0_QOS             = "1.2.840.113635.100.4.6.1"
    29  	OID_EKU_APPLE_CRYPTO_TIER1_QOS             = "1.2.840.113635.100.4.6.2"
    30  	OID_EKU_APPLE_CRYPTO_TIER2_QOS             = "1.2.840.113635.100.4.6.3"
    31  	OID_EKU_APPLE_CRYPTO_TIER3_QOS             = "1.2.840.113635.100.4.6.4"
    32  	OID_EKU_ADOBE_AUTHENTIC_DOCUMENT_TRUST     = "1.2.840.113583.1.1.5"
    33  	OID_EKU_MICROSOFT_CERT_TRUST_LIST_SIGNING  = "1.3.6.1.4.1.311.10.3.1"
    34  	OID_EKU_MICROSOFT_QUALIFIED_SUBORDINATE    = "1.3.6.1.4.1.311.10.3.10"
    35  	OID_EKU_MICROSOFT_KEY_RECOVERY_3           = "1.3.6.1.4.1.311.10.3.11"
    36  	OID_EKU_MICROSOFT_DOCUMENT_SIGNING         = "1.3.6.1.4.1.311.10.3.12"
    37  	OID_EKU_MICROSOFT_LIFETIME_SIGNING         = "1.3.6.1.4.1.311.10.3.13"
    38  	OID_EKU_MICROSOFT_MOBILE_DEVICE_SOFTWARE   = "1.3.6.1.4.1.311.10.3.14"
    39  	OID_EKU_MICROSOFT_SMART_DISPLAY            = "1.3.6.1.4.1.311.10.3.15"
    40  	OID_EKU_MICROSOFT_CSP_SIGNATURE            = "1.3.6.1.4.1.311.10.3.16"
    41  	OID_EKU_MICROSOFT_TIMESTAMP_SIGNING        = "1.3.6.1.4.1.311.10.3.2"
    42  	OID_EKU_MICROSOFT_SERVER_GATED_CRYPTO      = "1.3.6.1.4.1.311.10.3.3"
    43  	OID_EKU_MICROSOFT_SGC_SERIALIZED           = "1.3.6.1.4.1.311.10.3.3.1"
    44  	OID_EKU_MICROSOFT_ENCRYPTED_FILE_SYSTEM    = "1.3.6.1.4.1.311.10.3.4"
    45  	OID_EKU_MICROSOFT_EFS_RECOVERY             = "1.3.6.1.4.1.311.10.3.4.1"
    46  	OID_EKU_MICROSOFT_WHQL_CRYPTO              = "1.3.6.1.4.1.311.10.3.5"
    47  	OID_EKU_MICROSOFT_NT5_CRYPTO               = "1.3.6.1.4.1.311.10.3.6"
    48  	OID_EKU_MICROSOFT_OEM_WHQL_CRYPTO          = "1.3.6.1.4.1.311.10.3.7"
    49  	OID_EKU_MICROSOFT_EMBEDDED_NT_CRYPTO       = "1.3.6.1.4.1.311.10.3.8"
    50  	OID_EKU_MICROSOFT_ROOT_LIST_SIGNER         = "1.3.6.1.4.1.311.10.3.9"
    51  	OID_EKU_MICROSOFT_DRM                      = "1.3.6.1.4.1.311.10.5.1"
    52  	OID_EKU_MICROSOFT_DRM_INDIVIDUALIZATION    = "1.3.6.1.4.1.311.10.5.2"
    53  	OID_EKU_MICROSOFT_LICENSES                 = "1.3.6.1.4.1.311.10.5.3"
    54  	OID_EKU_MICROSOFT_LICENSE_SERVER           = "1.3.6.1.4.1.311.10.5.4"
    55  	OID_EKU_MICROSOFT_ENROLLMENT_AGENT         = "1.3.6.1.4.1.311.20.2.1"
    56  	OID_EKU_MICROSOFT_SMARTCARD_LOGON          = "1.3.6.1.4.1.311.20.2.2"
    57  	OID_EKU_MICROSOFT_CA_EXCHANGE              = "1.3.6.1.4.1.311.21.5"
    58  	OID_EKU_MICROSOFT_KEY_RECOVERY_21          = "1.3.6.1.4.1.311.21.6"
    59  	OID_EKU_MICROSOFT_SYSTEM_HEALTH            = "1.3.6.1.4.1.311.47.1.1"
    60  	OID_EKU_MICROSOFT_SYSTEM_HEALTH_LOOPHOLE   = "1.3.6.1.4.1.311.47.1.3"
    61  	OID_EKU_MICROSOFT_KERNEL_MODE_CODE_SIGNING = "1.3.6.1.4.1.311.61.1.1"
    62  	OID_EKU_SERVER_AUTH                        = "1.3.6.1.5.5.7.3.1"
    63  	OID_EKU_DVCS                               = "1.3.6.1.5.5.7.3.10"
    64  	OID_EKU_SBGP_CERT_AA_SERVICE_AUTH          = "1.3.6.1.5.5.7.3.11"
    65  	OID_EKU_EAP_OVER_PPP                       = "1.3.6.1.5.5.7.3.13"
    66  	OID_EKU_EAP_OVER_LAN                       = "1.3.6.1.5.5.7.3.14"
    67  	OID_EKU_CLIENT_AUTH                        = "1.3.6.1.5.5.7.3.2"
    68  	OID_EKU_CODE_SIGNING                       = "1.3.6.1.5.5.7.3.3"
    69  	OID_EKU_EMAIL_PROTECTION                   = "1.3.6.1.5.5.7.3.4"
    70  	OID_EKU_IPSEC_END_SYSTEM                   = "1.3.6.1.5.5.7.3.5"
    71  	OID_EKU_IPSEC_TUNNEL                       = "1.3.6.1.5.5.7.3.6"
    72  	OID_EKU_IPSEC_USER                         = "1.3.6.1.5.5.7.3.7"
    73  	OID_EKU_TIME_STAMPING                      = "1.3.6.1.5.5.7.3.8"
    74  	OID_EKU_OCSP_SIGNING                       = "1.3.6.1.5.5.7.3.9"
    75  	OID_EKU_IPSEC_INTERMEDIATE_SYSTEM_USAGE    = "1.3.6.1.5.5.8.2.2"
    76  	OID_EKU_NETSCAPE_SERVER_GATED_CRYPTO       = "2.16.840.1.113730.4.1"
    77  	OID_EKU_ANY                                = "2.5.29.37.0"
    78  )
    79  
    80  var (
    81  	oidExtKeyUsageAppleCodeSigning               = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 1}
    82  	oidExtKeyUsageAppleCodeSigningDevelopment    = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 1, 1}
    83  	oidExtKeyUsageAppleSoftwareUpdateSigning     = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 1, 2}
    84  	oidExtKeyUsageAppleCodeSigningThirdParty     = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 1, 3}
    85  	oidExtKeyUsageAppleResourceSigning           = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 1, 4}
    86  	oidExtKeyUsageAppleIchatSigning              = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 2}
    87  	oidExtKeyUsageAppleIchatEncryption           = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 3}
    88  	oidExtKeyUsageAppleSystemIdentity            = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 4}
    89  	oidExtKeyUsageAppleCryptoEnv                 = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 5}
    90  	oidExtKeyUsageAppleCryptoProductionEnv       = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 5, 1}
    91  	oidExtKeyUsageAppleCryptoMaintenanceEnv      = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 5, 2}
    92  	oidExtKeyUsageAppleCryptoTestEnv             = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 5, 3}
    93  	oidExtKeyUsageAppleCryptoDevelopmentEnv      = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 5, 4}
    94  	oidExtKeyUsageAppleCryptoQos                 = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 6}
    95  	oidExtKeyUsageAppleCryptoTier0Qos            = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 6, 1}
    96  	oidExtKeyUsageAppleCryptoTier1Qos            = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 6, 2}
    97  	oidExtKeyUsageAppleCryptoTier2Qos            = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 6, 3}
    98  	oidExtKeyUsageAppleCryptoTier3Qos            = asn1.ObjectIdentifier{1, 2, 840, 113635, 100, 4, 6, 4}
    99  	oidExtKeyUsageAdobeAuthenticDocumentTrust    = asn1.ObjectIdentifier{1, 2, 840, 113583, 1, 1, 5}
   100  	oidExtKeyUsageMicrosoftCertTrustListSigning  = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 1}
   101  	oidExtKeyUsageMicrosoftQualifiedSubordinate  = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 10}
   102  	oidExtKeyUsageMicrosoftKeyRecovery3          = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 11}
   103  	oidExtKeyUsageMicrosoftDocumentSigning       = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 12}
   104  	oidExtKeyUsageMicrosoftLifetimeSigning       = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 13}
   105  	oidExtKeyUsageMicrosoftMobileDeviceSoftware  = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 14}
   106  	oidExtKeyUsageMicrosoftSmartDisplay          = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 15}
   107  	oidExtKeyUsageMicrosoftCspSignature          = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 16}
   108  	oidExtKeyUsageMicrosoftTimestampSigning      = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 2}
   109  	oidExtKeyUsageMicrosoftServerGatedCrypto     = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 3}
   110  	oidExtKeyUsageMicrosoftSgcSerialized         = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 3, 1}
   111  	oidExtKeyUsageMicrosoftEncryptedFileSystem   = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 4}
   112  	oidExtKeyUsageMicrosoftEfsRecovery           = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 4, 1}
   113  	oidExtKeyUsageMicrosoftWhqlCrypto            = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 5}
   114  	oidExtKeyUsageMicrosoftNt5Crypto             = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 6}
   115  	oidExtKeyUsageMicrosoftOemWhqlCrypto         = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 7}
   116  	oidExtKeyUsageMicrosoftEmbeddedNtCrypto      = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 8}
   117  	oidExtKeyUsageMicrosoftRootListSigner        = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 9}
   118  	oidExtKeyUsageMicrosoftDrm                   = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 5, 1}
   119  	oidExtKeyUsageMicrosoftDrmIndividualization  = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 5, 2}
   120  	oidExtKeyUsageMicrosoftLicenses              = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 5, 3}
   121  	oidExtKeyUsageMicrosoftLicenseServer         = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 5, 4}
   122  	oidExtKeyUsageMicrosoftEnrollmentAgent       = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 20, 2, 1}
   123  	oidExtKeyUsageMicrosoftSmartcardLogon        = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 20, 2, 2}
   124  	oidExtKeyUsageMicrosoftCaExchange            = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 21, 5}
   125  	oidExtKeyUsageMicrosoftKeyRecovery21         = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 21, 6}
   126  	oidExtKeyUsageMicrosoftSystemHealth          = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 47, 1, 1}
   127  	oidExtKeyUsageMicrosoftSystemHealthLoophole  = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 47, 1, 3}
   128  	oidExtKeyUsageMicrosoftKernelModeCodeSigning = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 61, 1, 1}
   129  	oidExtKeyUsageServerAuth                     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 1}
   130  	oidExtKeyUsageDvcs                           = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 10}
   131  	oidExtKeyUsageSbgpCertAaServiceAuth          = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 11}
   132  	oidExtKeyUsageEapOverPpp                     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 13}
   133  	oidExtKeyUsageEapOverLan                     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 14}
   134  	oidExtKeyUsageClientAuth                     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 2}
   135  	oidExtKeyUsageCodeSigning                    = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 3}
   136  	oidExtKeyUsageEmailProtection                = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 4}
   137  	oidExtKeyUsageIpsecEndSystem                 = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 5}
   138  	oidExtKeyUsageIpsecTunnel                    = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 6}
   139  	oidExtKeyUsageIpsecUser                      = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 7}
   140  	oidExtKeyUsageTimeStamping                   = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 8}
   141  	oidExtKeyUsageOcspSigning                    = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 9}
   142  	oidExtKeyUsageIpsecIntermediateSystemUsage   = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 8, 2, 2}
   143  	oidExtKeyUsageNetscapeServerGatedCrypto      = asn1.ObjectIdentifier{2, 16, 840, 1, 113730, 4, 1}
   144  	oidExtKeyUsageAny                            = asn1.ObjectIdentifier{2, 5, 29, 37, 0}
   145  )
   146  
   147  const (
   148  	ExtKeyUsageAppleCodeSigning ExtKeyUsage = iota
   149  	ExtKeyUsageAppleCodeSigningDevelopment
   150  	ExtKeyUsageAppleSoftwareUpdateSigning
   151  	ExtKeyUsageAppleCodeSigningThirdParty
   152  	ExtKeyUsageAppleResourceSigning
   153  	ExtKeyUsageAppleIchatSigning
   154  	ExtKeyUsageAppleIchatEncryption
   155  	ExtKeyUsageAppleSystemIdentity
   156  	ExtKeyUsageAppleCryptoEnv
   157  	ExtKeyUsageAppleCryptoProductionEnv
   158  	ExtKeyUsageAppleCryptoMaintenanceEnv
   159  	ExtKeyUsageAppleCryptoTestEnv
   160  	ExtKeyUsageAppleCryptoDevelopmentEnv
   161  	ExtKeyUsageAppleCryptoQos
   162  	ExtKeyUsageAppleCryptoTier0Qos
   163  	ExtKeyUsageAppleCryptoTier1Qos
   164  	ExtKeyUsageAppleCryptoTier2Qos
   165  	ExtKeyUsageAppleCryptoTier3Qos
   166  	ExtKeyUsageAdobeAuthenticDocumentTrust
   167  	ExtKeyUsageMicrosoftCertTrustListSigning
   168  	ExtKeyUsageMicrosoftQualifiedSubordinate
   169  	ExtKeyUsageMicrosoftKeyRecovery3
   170  	ExtKeyUsageMicrosoftDocumentSigning
   171  	ExtKeyUsageMicrosoftLifetimeSigning
   172  	ExtKeyUsageMicrosoftMobileDeviceSoftware
   173  	ExtKeyUsageMicrosoftSmartDisplay
   174  	ExtKeyUsageMicrosoftCspSignature
   175  	ExtKeyUsageMicrosoftTimestampSigning
   176  	ExtKeyUsageMicrosoftServerGatedCrypto
   177  	ExtKeyUsageMicrosoftSgcSerialized
   178  	ExtKeyUsageMicrosoftEncryptedFileSystem
   179  	ExtKeyUsageMicrosoftEfsRecovery
   180  	ExtKeyUsageMicrosoftWhqlCrypto
   181  	ExtKeyUsageMicrosoftNt5Crypto
   182  	ExtKeyUsageMicrosoftOemWhqlCrypto
   183  	ExtKeyUsageMicrosoftEmbeddedNtCrypto
   184  	ExtKeyUsageMicrosoftRootListSigner
   185  	ExtKeyUsageMicrosoftDrm
   186  	ExtKeyUsageMicrosoftDrmIndividualization
   187  	ExtKeyUsageMicrosoftLicenses
   188  	ExtKeyUsageMicrosoftLicenseServer
   189  	ExtKeyUsageMicrosoftEnrollmentAgent
   190  	ExtKeyUsageMicrosoftSmartcardLogon
   191  	ExtKeyUsageMicrosoftCaExchange
   192  	ExtKeyUsageMicrosoftKeyRecovery21
   193  	ExtKeyUsageMicrosoftSystemHealth
   194  	ExtKeyUsageMicrosoftSystemHealthLoophole
   195  	ExtKeyUsageMicrosoftKernelModeCodeSigning
   196  	ExtKeyUsageServerAuth
   197  	ExtKeyUsageDvcs
   198  	ExtKeyUsageSbgpCertAaServiceAuth
   199  	ExtKeyUsageEapOverPpp
   200  	ExtKeyUsageEapOverLan
   201  	ExtKeyUsageClientAuth
   202  	ExtKeyUsageCodeSigning
   203  	ExtKeyUsageEmailProtection
   204  	ExtKeyUsageIpsecEndSystem
   205  	ExtKeyUsageIpsecTunnel
   206  	ExtKeyUsageIpsecUser
   207  	ExtKeyUsageTimeStamping
   208  	ExtKeyUsageOcspSigning
   209  	ExtKeyUsageIpsecIntermediateSystemUsage
   210  	ExtKeyUsageNetscapeServerGatedCrypto
   211  	ExtKeyUsageAny
   212  )
   213  
   214  type auxExtendedKeyUsage struct {
   215  	AppleCodeSigning               bool     `json:"apple_code_signing,omitempty" oid:"1.2.840.113635.100.4.1"`
   216  	AppleCodeSigningDevelopment    bool     `json:"apple_code_signing_development,omitempty" oid:"1.2.840.113635.100.4.1.1"`
   217  	AppleSoftwareUpdateSigning     bool     `json:"apple_software_update_signing,omitempty" oid:"1.2.840.113635.100.4.1.2"`
   218  	AppleCodeSigningThirdParty     bool     `json:"apple_code_signing_third_party,omitempty" oid:"1.2.840.113635.100.4.1.3"`
   219  	AppleResourceSigning           bool     `json:"apple_resource_signing,omitempty" oid:"1.2.840.113635.100.4.1.4"`
   220  	AppleIchatSigning              bool     `json:"apple_ichat_signing,omitempty" oid:"1.2.840.113635.100.4.2"`
   221  	AppleIchatEncryption           bool     `json:"apple_ichat_encryption,omitempty" oid:"1.2.840.113635.100.4.3"`
   222  	AppleSystemIdentity            bool     `json:"apple_system_identity,omitempty" oid:"1.2.840.113635.100.4.4"`
   223  	AppleCryptoEnv                 bool     `json:"apple_crypto_env,omitempty" oid:"1.2.840.113635.100.4.5"`
   224  	AppleCryptoProductionEnv       bool     `json:"apple_crypto_production_env,omitempty" oid:"1.2.840.113635.100.4.5.1"`
   225  	AppleCryptoMaintenanceEnv      bool     `json:"apple_crypto_maintenance_env,omitempty" oid:"1.2.840.113635.100.4.5.2"`
   226  	AppleCryptoTestEnv             bool     `json:"apple_crypto_test_env,omitempty" oid:"1.2.840.113635.100.4.5.3"`
   227  	AppleCryptoDevelopmentEnv      bool     `json:"apple_crypto_development_env,omitempty" oid:"1.2.840.113635.100.4.5.4"`
   228  	AppleCryptoQos                 bool     `json:"apple_crypto_qos,omitempty" oid:"1.2.840.113635.100.4.6"`
   229  	AppleCryptoTier0Qos            bool     `json:"apple_crypto_tier0_qos,omitempty" oid:"1.2.840.113635.100.4.6.1"`
   230  	AppleCryptoTier1Qos            bool     `json:"apple_crypto_tier1_qos,omitempty" oid:"1.2.840.113635.100.4.6.2"`
   231  	AppleCryptoTier2Qos            bool     `json:"apple_crypto_tier2_qos,omitempty" oid:"1.2.840.113635.100.4.6.3"`
   232  	AppleCryptoTier3Qos            bool     `json:"apple_crypto_tier3_qos,omitempty" oid:"1.2.840.113635.100.4.6.4"`
   233  	AdobeAuthenticDocumentTrust    bool     `json:"adobe_authentic_document_trust,omitempty" oid:"1.2.840.113583.1.1.5"`
   234  	MicrosoftCertTrustListSigning  bool     `json:"microsoft_cert_trust_list_signing,omitempty" oid:"1.3.6.1.4.1.311.10.3.1"`
   235  	MicrosoftQualifiedSubordinate  bool     `json:"microsoft_qualified_subordinate,omitempty" oid:"1.3.6.1.4.1.311.10.3.10"`
   236  	MicrosoftKeyRecovery3          bool     `json:"microsoft_key_recovery_3,omitempty" oid:"1.3.6.1.4.1.311.10.3.11"`
   237  	MicrosoftDocumentSigning       bool     `json:"microsoft_document_signing,omitempty" oid:"1.3.6.1.4.1.311.10.3.12"`
   238  	MicrosoftLifetimeSigning       bool     `json:"microsoft_lifetime_signing,omitempty" oid:"1.3.6.1.4.1.311.10.3.13"`
   239  	MicrosoftMobileDeviceSoftware  bool     `json:"microsoft_mobile_device_software,omitempty" oid:"1.3.6.1.4.1.311.10.3.14"`
   240  	MicrosoftSmartDisplay          bool     `json:"microsoft_smart_display,omitempty" oid:"1.3.6.1.4.1.311.10.3.15"`
   241  	MicrosoftCspSignature          bool     `json:"microsoft_csp_signature,omitempty" oid:"1.3.6.1.4.1.311.10.3.16"`
   242  	MicrosoftTimestampSigning      bool     `json:"microsoft_timestamp_signing,omitempty" oid:"1.3.6.1.4.1.311.10.3.2"`
   243  	MicrosoftServerGatedCrypto     bool     `json:"microsoft_server_gated_crypto,omitempty" oid:"1.3.6.1.4.1.311.10.3.3"`
   244  	MicrosoftSgcSerialized         bool     `json:"microsoft_sgc_serialized,omitempty" oid:"1.3.6.1.4.1.311.10.3.3.1"`
   245  	MicrosoftEncryptedFileSystem   bool     `json:"microsoft_encrypted_file_system,omitempty" oid:"1.3.6.1.4.1.311.10.3.4"`
   246  	MicrosoftEfsRecovery           bool     `json:"microsoft_efs_recovery,omitempty" oid:"1.3.6.1.4.1.311.10.3.4.1"`
   247  	MicrosoftWhqlCrypto            bool     `json:"microsoft_whql_crypto,omitempty" oid:"1.3.6.1.4.1.311.10.3.5"`
   248  	MicrosoftNt5Crypto             bool     `json:"microsoft_nt5_crypto,omitempty" oid:"1.3.6.1.4.1.311.10.3.6"`
   249  	MicrosoftOemWhqlCrypto         bool     `json:"microsoft_oem_whql_crypto,omitempty" oid:"1.3.6.1.4.1.311.10.3.7"`
   250  	MicrosoftEmbeddedNtCrypto      bool     `json:"microsoft_embedded_nt_crypto,omitempty" oid:"1.3.6.1.4.1.311.10.3.8"`
   251  	MicrosoftRootListSigner        bool     `json:"microsoft_root_list_signer,omitempty" oid:"1.3.6.1.4.1.311.10.3.9"`
   252  	MicrosoftDrm                   bool     `json:"microsoft_drm,omitempty" oid:"1.3.6.1.4.1.311.10.5.1"`
   253  	MicrosoftDrmIndividualization  bool     `json:"microsoft_drm_individualization,omitempty" oid:"1.3.6.1.4.1.311.10.5.2"`
   254  	MicrosoftLicenses              bool     `json:"microsoft_licenses,omitempty" oid:"1.3.6.1.4.1.311.10.5.3"`
   255  	MicrosoftLicenseServer         bool     `json:"microsoft_license_server,omitempty" oid:"1.3.6.1.4.1.311.10.5.4"`
   256  	MicrosoftEnrollmentAgent       bool     `json:"microsoft_enrollment_agent,omitempty" oid:"1.3.6.1.4.1.311.20.2.1"`
   257  	MicrosoftSmartcardLogon        bool     `json:"microsoft_smartcard_logon,omitempty" oid:"1.3.6.1.4.1.311.20.2.2"`
   258  	MicrosoftCaExchange            bool     `json:"microsoft_ca_exchange,omitempty" oid:"1.3.6.1.4.1.311.21.5"`
   259  	MicrosoftKeyRecovery21         bool     `json:"microsoft_key_recovery_21,omitempty" oid:"1.3.6.1.4.1.311.21.6"`
   260  	MicrosoftSystemHealth          bool     `json:"microsoft_system_health,omitempty" oid:"1.3.6.1.4.1.311.47.1.1"`
   261  	MicrosoftSystemHealthLoophole  bool     `json:"microsoft_system_health_loophole,omitempty" oid:"1.3.6.1.4.1.311.47.1.3"`
   262  	MicrosoftKernelModeCodeSigning bool     `json:"microsoft_kernel_mode_code_signing,omitempty" oid:"1.3.6.1.4.1.311.61.1.1"`
   263  	ServerAuth                     bool     `json:"server_auth,omitempty" oid:"1.3.6.1.5.5.7.3.1"`
   264  	Dvcs                           bool     `json:"dvcs,omitempty" oid:"1.3.6.1.5.5.7.3.10"`
   265  	SbgpCertAaServiceAuth          bool     `json:"sbgp_cert_aa_service_auth,omitempty" oid:"1.3.6.1.5.5.7.3.11"`
   266  	EapOverPpp                     bool     `json:"eap_over_ppp,omitempty" oid:"1.3.6.1.5.5.7.3.13"`
   267  	EapOverLan                     bool     `json:"eap_over_lan,omitempty" oid:"1.3.6.1.5.5.7.3.14"`
   268  	ClientAuth                     bool     `json:"client_auth,omitempty" oid:"1.3.6.1.5.5.7.3.2"`
   269  	CodeSigning                    bool     `json:"code_signing,omitempty" oid:"1.3.6.1.5.5.7.3.3"`
   270  	EmailProtection                bool     `json:"email_protection,omitempty" oid:"1.3.6.1.5.5.7.3.4"`
   271  	IpsecEndSystem                 bool     `json:"ipsec_end_system,omitempty" oid:"1.3.6.1.5.5.7.3.5"`
   272  	IpsecTunnel                    bool     `json:"ipsec_tunnel,omitempty" oid:"1.3.6.1.5.5.7.3.6"`
   273  	IpsecUser                      bool     `json:"ipsec_user,omitempty" oid:"1.3.6.1.5.5.7.3.7"`
   274  	TimeStamping                   bool     `json:"time_stamping,omitempty" oid:"1.3.6.1.5.5.7.3.8"`
   275  	OcspSigning                    bool     `json:"ocsp_signing,omitempty" oid:"1.3.6.1.5.5.7.3.9"`
   276  	IpsecIntermediateSystemUsage   bool     `json:"ipsec_intermediate_system_usage,omitempty" oid:"1.3.6.1.5.5.8.2.2"`
   277  	NetscapeServerGatedCrypto      bool     `json:"netscape_server_gated_crypto,omitempty" oid:"2.16.840.1.113730.4.1"`
   278  	Any                            bool     `json:"any,omitempty" oid:"2.5.29.37.0"`
   279  	Unknown                        []string `json:"unknown,omitempty"`
   280  }
   281  
   282  func (aux *auxExtendedKeyUsage) populateFromASN1(oid asn1.ObjectIdentifier) {
   283  	s := oid.String()
   284  	switch s {
   285  	case OID_EKU_APPLE_CODE_SIGNING:
   286  		aux.AppleCodeSigning = true
   287  	case OID_EKU_APPLE_CODE_SIGNING_DEVELOPMENT:
   288  		aux.AppleCodeSigningDevelopment = true
   289  	case OID_EKU_APPLE_SOFTWARE_UPDATE_SIGNING:
   290  		aux.AppleSoftwareUpdateSigning = true
   291  	case OID_EKU_APPLE_CODE_SIGNING_THIRD_PARTY:
   292  		aux.AppleCodeSigningThirdParty = true
   293  	case OID_EKU_APPLE_RESOURCE_SIGNING:
   294  		aux.AppleResourceSigning = true
   295  	case OID_EKU_APPLE_ICHAT_SIGNING:
   296  		aux.AppleIchatSigning = true
   297  	case OID_EKU_APPLE_ICHAT_ENCRYPTION:
   298  		aux.AppleIchatEncryption = true
   299  	case OID_EKU_APPLE_SYSTEM_IDENTITY:
   300  		aux.AppleSystemIdentity = true
   301  	case OID_EKU_APPLE_CRYPTO_ENV:
   302  		aux.AppleCryptoEnv = true
   303  	case OID_EKU_APPLE_CRYPTO_PRODUCTION_ENV:
   304  		aux.AppleCryptoProductionEnv = true
   305  	case OID_EKU_APPLE_CRYPTO_MAINTENANCE_ENV:
   306  		aux.AppleCryptoMaintenanceEnv = true
   307  	case OID_EKU_APPLE_CRYPTO_TEST_ENV:
   308  		aux.AppleCryptoTestEnv = true
   309  	case OID_EKU_APPLE_CRYPTO_DEVELOPMENT_ENV:
   310  		aux.AppleCryptoDevelopmentEnv = true
   311  	case OID_EKU_APPLE_CRYPTO_QOS:
   312  		aux.AppleCryptoQos = true
   313  	case OID_EKU_APPLE_CRYPTO_TIER0_QOS:
   314  		aux.AppleCryptoTier0Qos = true
   315  	case OID_EKU_APPLE_CRYPTO_TIER1_QOS:
   316  		aux.AppleCryptoTier1Qos = true
   317  	case OID_EKU_APPLE_CRYPTO_TIER2_QOS:
   318  		aux.AppleCryptoTier2Qos = true
   319  	case OID_EKU_APPLE_CRYPTO_TIER3_QOS:
   320  		aux.AppleCryptoTier3Qos = true
   321  	case OID_EKU_ADOBE_AUTHENTIC_DOCUMENT_TRUST:
   322  		aux.AdobeAuthenticDocumentTrust = true
   323  	case OID_EKU_MICROSOFT_CERT_TRUST_LIST_SIGNING:
   324  		aux.MicrosoftCertTrustListSigning = true
   325  	case OID_EKU_MICROSOFT_QUALIFIED_SUBORDINATE:
   326  		aux.MicrosoftQualifiedSubordinate = true
   327  	case OID_EKU_MICROSOFT_KEY_RECOVERY_3:
   328  		aux.MicrosoftKeyRecovery3 = true
   329  	case OID_EKU_MICROSOFT_DOCUMENT_SIGNING:
   330  		aux.MicrosoftDocumentSigning = true
   331  	case OID_EKU_MICROSOFT_LIFETIME_SIGNING:
   332  		aux.MicrosoftLifetimeSigning = true
   333  	case OID_EKU_MICROSOFT_MOBILE_DEVICE_SOFTWARE:
   334  		aux.MicrosoftMobileDeviceSoftware = true
   335  	case OID_EKU_MICROSOFT_SMART_DISPLAY:
   336  		aux.MicrosoftSmartDisplay = true
   337  	case OID_EKU_MICROSOFT_CSP_SIGNATURE:
   338  		aux.MicrosoftCspSignature = true
   339  	case OID_EKU_MICROSOFT_TIMESTAMP_SIGNING:
   340  		aux.MicrosoftTimestampSigning = true
   341  	case OID_EKU_MICROSOFT_SERVER_GATED_CRYPTO:
   342  		aux.MicrosoftServerGatedCrypto = true
   343  	case OID_EKU_MICROSOFT_SGC_SERIALIZED:
   344  		aux.MicrosoftSgcSerialized = true
   345  	case OID_EKU_MICROSOFT_ENCRYPTED_FILE_SYSTEM:
   346  		aux.MicrosoftEncryptedFileSystem = true
   347  	case OID_EKU_MICROSOFT_EFS_RECOVERY:
   348  		aux.MicrosoftEfsRecovery = true
   349  	case OID_EKU_MICROSOFT_WHQL_CRYPTO:
   350  		aux.MicrosoftWhqlCrypto = true
   351  	case OID_EKU_MICROSOFT_NT5_CRYPTO:
   352  		aux.MicrosoftNt5Crypto = true
   353  	case OID_EKU_MICROSOFT_OEM_WHQL_CRYPTO:
   354  		aux.MicrosoftOemWhqlCrypto = true
   355  	case OID_EKU_MICROSOFT_EMBEDDED_NT_CRYPTO:
   356  		aux.MicrosoftEmbeddedNtCrypto = true
   357  	case OID_EKU_MICROSOFT_ROOT_LIST_SIGNER:
   358  		aux.MicrosoftRootListSigner = true
   359  	case OID_EKU_MICROSOFT_DRM:
   360  		aux.MicrosoftDrm = true
   361  	case OID_EKU_MICROSOFT_DRM_INDIVIDUALIZATION:
   362  		aux.MicrosoftDrmIndividualization = true
   363  	case OID_EKU_MICROSOFT_LICENSES:
   364  		aux.MicrosoftLicenses = true
   365  	case OID_EKU_MICROSOFT_LICENSE_SERVER:
   366  		aux.MicrosoftLicenseServer = true
   367  	case OID_EKU_MICROSOFT_ENROLLMENT_AGENT:
   368  		aux.MicrosoftEnrollmentAgent = true
   369  	case OID_EKU_MICROSOFT_SMARTCARD_LOGON:
   370  		aux.MicrosoftSmartcardLogon = true
   371  	case OID_EKU_MICROSOFT_CA_EXCHANGE:
   372  		aux.MicrosoftCaExchange = true
   373  	case OID_EKU_MICROSOFT_KEY_RECOVERY_21:
   374  		aux.MicrosoftKeyRecovery21 = true
   375  	case OID_EKU_MICROSOFT_SYSTEM_HEALTH:
   376  		aux.MicrosoftSystemHealth = true
   377  	case OID_EKU_MICROSOFT_SYSTEM_HEALTH_LOOPHOLE:
   378  		aux.MicrosoftSystemHealthLoophole = true
   379  	case OID_EKU_MICROSOFT_KERNEL_MODE_CODE_SIGNING:
   380  		aux.MicrosoftKernelModeCodeSigning = true
   381  	case OID_EKU_SERVER_AUTH:
   382  		aux.ServerAuth = true
   383  	case OID_EKU_DVCS:
   384  		aux.Dvcs = true
   385  	case OID_EKU_SBGP_CERT_AA_SERVICE_AUTH:
   386  		aux.SbgpCertAaServiceAuth = true
   387  	case OID_EKU_EAP_OVER_PPP:
   388  		aux.EapOverPpp = true
   389  	case OID_EKU_EAP_OVER_LAN:
   390  		aux.EapOverLan = true
   391  	case OID_EKU_CLIENT_AUTH:
   392  		aux.ClientAuth = true
   393  	case OID_EKU_CODE_SIGNING:
   394  		aux.CodeSigning = true
   395  	case OID_EKU_EMAIL_PROTECTION:
   396  		aux.EmailProtection = true
   397  	case OID_EKU_IPSEC_END_SYSTEM:
   398  		aux.IpsecEndSystem = true
   399  	case OID_EKU_IPSEC_TUNNEL:
   400  		aux.IpsecTunnel = true
   401  	case OID_EKU_IPSEC_USER:
   402  		aux.IpsecUser = true
   403  	case OID_EKU_TIME_STAMPING:
   404  		aux.TimeStamping = true
   405  	case OID_EKU_OCSP_SIGNING:
   406  		aux.OcspSigning = true
   407  	case OID_EKU_IPSEC_INTERMEDIATE_SYSTEM_USAGE:
   408  		aux.IpsecIntermediateSystemUsage = true
   409  	case OID_EKU_NETSCAPE_SERVER_GATED_CRYPTO:
   410  		aux.NetscapeServerGatedCrypto = true
   411  	case OID_EKU_ANY:
   412  		aux.Any = true
   413  	default:
   414  	}
   415  	return
   416  }
   417  
   418  func (aux *auxExtendedKeyUsage) populateFromExtKeyUsage(eku ExtKeyUsage) {
   419  	switch eku {
   420  	case ExtKeyUsageAppleCodeSigning:
   421  		aux.AppleCodeSigning = true
   422  	case ExtKeyUsageAppleCodeSigningDevelopment:
   423  		aux.AppleCodeSigningDevelopment = true
   424  	case ExtKeyUsageAppleSoftwareUpdateSigning:
   425  		aux.AppleSoftwareUpdateSigning = true
   426  	case ExtKeyUsageAppleCodeSigningThirdParty:
   427  		aux.AppleCodeSigningThirdParty = true
   428  	case ExtKeyUsageAppleResourceSigning:
   429  		aux.AppleResourceSigning = true
   430  	case ExtKeyUsageAppleIchatSigning:
   431  		aux.AppleIchatSigning = true
   432  	case ExtKeyUsageAppleIchatEncryption:
   433  		aux.AppleIchatEncryption = true
   434  	case ExtKeyUsageAppleSystemIdentity:
   435  		aux.AppleSystemIdentity = true
   436  	case ExtKeyUsageAppleCryptoEnv:
   437  		aux.AppleCryptoEnv = true
   438  	case ExtKeyUsageAppleCryptoProductionEnv:
   439  		aux.AppleCryptoProductionEnv = true
   440  	case ExtKeyUsageAppleCryptoMaintenanceEnv:
   441  		aux.AppleCryptoMaintenanceEnv = true
   442  	case ExtKeyUsageAppleCryptoTestEnv:
   443  		aux.AppleCryptoTestEnv = true
   444  	case ExtKeyUsageAppleCryptoDevelopmentEnv:
   445  		aux.AppleCryptoDevelopmentEnv = true
   446  	case ExtKeyUsageAppleCryptoQos:
   447  		aux.AppleCryptoQos = true
   448  	case ExtKeyUsageAppleCryptoTier0Qos:
   449  		aux.AppleCryptoTier0Qos = true
   450  	case ExtKeyUsageAppleCryptoTier1Qos:
   451  		aux.AppleCryptoTier1Qos = true
   452  	case ExtKeyUsageAppleCryptoTier2Qos:
   453  		aux.AppleCryptoTier2Qos = true
   454  	case ExtKeyUsageAppleCryptoTier3Qos:
   455  		aux.AppleCryptoTier3Qos = true
   456  	case ExtKeyUsageAdobeAuthenticDocumentTrust:
   457  		aux.AdobeAuthenticDocumentTrust = true
   458  	case ExtKeyUsageMicrosoftCertTrustListSigning:
   459  		aux.MicrosoftCertTrustListSigning = true
   460  	case ExtKeyUsageMicrosoftQualifiedSubordinate:
   461  		aux.MicrosoftQualifiedSubordinate = true
   462  	case ExtKeyUsageMicrosoftKeyRecovery3:
   463  		aux.MicrosoftKeyRecovery3 = true
   464  	case ExtKeyUsageMicrosoftDocumentSigning:
   465  		aux.MicrosoftDocumentSigning = true
   466  	case ExtKeyUsageMicrosoftLifetimeSigning:
   467  		aux.MicrosoftLifetimeSigning = true
   468  	case ExtKeyUsageMicrosoftMobileDeviceSoftware:
   469  		aux.MicrosoftMobileDeviceSoftware = true
   470  	case ExtKeyUsageMicrosoftSmartDisplay:
   471  		aux.MicrosoftSmartDisplay = true
   472  	case ExtKeyUsageMicrosoftCspSignature:
   473  		aux.MicrosoftCspSignature = true
   474  	case ExtKeyUsageMicrosoftTimestampSigning:
   475  		aux.MicrosoftTimestampSigning = true
   476  	case ExtKeyUsageMicrosoftServerGatedCrypto:
   477  		aux.MicrosoftServerGatedCrypto = true
   478  	case ExtKeyUsageMicrosoftSgcSerialized:
   479  		aux.MicrosoftSgcSerialized = true
   480  	case ExtKeyUsageMicrosoftEncryptedFileSystem:
   481  		aux.MicrosoftEncryptedFileSystem = true
   482  	case ExtKeyUsageMicrosoftEfsRecovery:
   483  		aux.MicrosoftEfsRecovery = true
   484  	case ExtKeyUsageMicrosoftWhqlCrypto:
   485  		aux.MicrosoftWhqlCrypto = true
   486  	case ExtKeyUsageMicrosoftNt5Crypto:
   487  		aux.MicrosoftNt5Crypto = true
   488  	case ExtKeyUsageMicrosoftOemWhqlCrypto:
   489  		aux.MicrosoftOemWhqlCrypto = true
   490  	case ExtKeyUsageMicrosoftEmbeddedNtCrypto:
   491  		aux.MicrosoftEmbeddedNtCrypto = true
   492  	case ExtKeyUsageMicrosoftRootListSigner:
   493  		aux.MicrosoftRootListSigner = true
   494  	case ExtKeyUsageMicrosoftDrm:
   495  		aux.MicrosoftDrm = true
   496  	case ExtKeyUsageMicrosoftDrmIndividualization:
   497  		aux.MicrosoftDrmIndividualization = true
   498  	case ExtKeyUsageMicrosoftLicenses:
   499  		aux.MicrosoftLicenses = true
   500  	case ExtKeyUsageMicrosoftLicenseServer:
   501  		aux.MicrosoftLicenseServer = true
   502  	case ExtKeyUsageMicrosoftEnrollmentAgent:
   503  		aux.MicrosoftEnrollmentAgent = true
   504  	case ExtKeyUsageMicrosoftSmartcardLogon:
   505  		aux.MicrosoftSmartcardLogon = true
   506  	case ExtKeyUsageMicrosoftCaExchange:
   507  		aux.MicrosoftCaExchange = true
   508  	case ExtKeyUsageMicrosoftKeyRecovery21:
   509  		aux.MicrosoftKeyRecovery21 = true
   510  	case ExtKeyUsageMicrosoftSystemHealth:
   511  		aux.MicrosoftSystemHealth = true
   512  	case ExtKeyUsageMicrosoftSystemHealthLoophole:
   513  		aux.MicrosoftSystemHealthLoophole = true
   514  	case ExtKeyUsageMicrosoftKernelModeCodeSigning:
   515  		aux.MicrosoftKernelModeCodeSigning = true
   516  	case ExtKeyUsageServerAuth:
   517  		aux.ServerAuth = true
   518  	case ExtKeyUsageDvcs:
   519  		aux.Dvcs = true
   520  	case ExtKeyUsageSbgpCertAaServiceAuth:
   521  		aux.SbgpCertAaServiceAuth = true
   522  	case ExtKeyUsageEapOverPpp:
   523  		aux.EapOverPpp = true
   524  	case ExtKeyUsageEapOverLan:
   525  		aux.EapOverLan = true
   526  	case ExtKeyUsageClientAuth:
   527  		aux.ClientAuth = true
   528  	case ExtKeyUsageCodeSigning:
   529  		aux.CodeSigning = true
   530  	case ExtKeyUsageEmailProtection:
   531  		aux.EmailProtection = true
   532  	case ExtKeyUsageIpsecEndSystem:
   533  		aux.IpsecEndSystem = true
   534  	case ExtKeyUsageIpsecTunnel:
   535  		aux.IpsecTunnel = true
   536  	case ExtKeyUsageIpsecUser:
   537  		aux.IpsecUser = true
   538  	case ExtKeyUsageTimeStamping:
   539  		aux.TimeStamping = true
   540  	case ExtKeyUsageOcspSigning:
   541  		aux.OcspSigning = true
   542  	case ExtKeyUsageIpsecIntermediateSystemUsage:
   543  		aux.IpsecIntermediateSystemUsage = true
   544  	case ExtKeyUsageNetscapeServerGatedCrypto:
   545  		aux.NetscapeServerGatedCrypto = true
   546  	case ExtKeyUsageAny:
   547  		aux.Any = true
   548  	default:
   549  	}
   550  	return
   551  }
   552  
   553  var ekuOIDs map[string]asn1.ObjectIdentifier
   554  
   555  var ekuConstants map[string]ExtKeyUsage
   556  
   557  func init() {
   558  	ekuOIDs = make(map[string]asn1.ObjectIdentifier)
   559  	ekuOIDs[OID_EKU_APPLE_CODE_SIGNING] = oidExtKeyUsageAppleCodeSigning
   560  	ekuOIDs[OID_EKU_APPLE_CODE_SIGNING_DEVELOPMENT] = oidExtKeyUsageAppleCodeSigningDevelopment
   561  	ekuOIDs[OID_EKU_APPLE_SOFTWARE_UPDATE_SIGNING] = oidExtKeyUsageAppleSoftwareUpdateSigning
   562  	ekuOIDs[OID_EKU_APPLE_CODE_SIGNING_THIRD_PARTY] = oidExtKeyUsageAppleCodeSigningThirdParty
   563  	ekuOIDs[OID_EKU_APPLE_RESOURCE_SIGNING] = oidExtKeyUsageAppleResourceSigning
   564  	ekuOIDs[OID_EKU_APPLE_ICHAT_SIGNING] = oidExtKeyUsageAppleIchatSigning
   565  	ekuOIDs[OID_EKU_APPLE_ICHAT_ENCRYPTION] = oidExtKeyUsageAppleIchatEncryption
   566  	ekuOIDs[OID_EKU_APPLE_SYSTEM_IDENTITY] = oidExtKeyUsageAppleSystemIdentity
   567  	ekuOIDs[OID_EKU_APPLE_CRYPTO_ENV] = oidExtKeyUsageAppleCryptoEnv
   568  	ekuOIDs[OID_EKU_APPLE_CRYPTO_PRODUCTION_ENV] = oidExtKeyUsageAppleCryptoProductionEnv
   569  	ekuOIDs[OID_EKU_APPLE_CRYPTO_MAINTENANCE_ENV] = oidExtKeyUsageAppleCryptoMaintenanceEnv
   570  	ekuOIDs[OID_EKU_APPLE_CRYPTO_TEST_ENV] = oidExtKeyUsageAppleCryptoTestEnv
   571  	ekuOIDs[OID_EKU_APPLE_CRYPTO_DEVELOPMENT_ENV] = oidExtKeyUsageAppleCryptoDevelopmentEnv
   572  	ekuOIDs[OID_EKU_APPLE_CRYPTO_QOS] = oidExtKeyUsageAppleCryptoQos
   573  	ekuOIDs[OID_EKU_APPLE_CRYPTO_TIER0_QOS] = oidExtKeyUsageAppleCryptoTier0Qos
   574  	ekuOIDs[OID_EKU_APPLE_CRYPTO_TIER1_QOS] = oidExtKeyUsageAppleCryptoTier1Qos
   575  	ekuOIDs[OID_EKU_APPLE_CRYPTO_TIER2_QOS] = oidExtKeyUsageAppleCryptoTier2Qos
   576  	ekuOIDs[OID_EKU_APPLE_CRYPTO_TIER3_QOS] = oidExtKeyUsageAppleCryptoTier3Qos
   577  	ekuOIDs[OID_EKU_ADOBE_AUTHENTIC_DOCUMENT_TRUST] = oidExtKeyUsageAdobeAuthenticDocumentTrust
   578  	ekuOIDs[OID_EKU_MICROSOFT_CERT_TRUST_LIST_SIGNING] = oidExtKeyUsageMicrosoftCertTrustListSigning
   579  	ekuOIDs[OID_EKU_MICROSOFT_QUALIFIED_SUBORDINATE] = oidExtKeyUsageMicrosoftQualifiedSubordinate
   580  	ekuOIDs[OID_EKU_MICROSOFT_KEY_RECOVERY_3] = oidExtKeyUsageMicrosoftKeyRecovery3
   581  	ekuOIDs[OID_EKU_MICROSOFT_DOCUMENT_SIGNING] = oidExtKeyUsageMicrosoftDocumentSigning
   582  	ekuOIDs[OID_EKU_MICROSOFT_LIFETIME_SIGNING] = oidExtKeyUsageMicrosoftLifetimeSigning
   583  	ekuOIDs[OID_EKU_MICROSOFT_MOBILE_DEVICE_SOFTWARE] = oidExtKeyUsageMicrosoftMobileDeviceSoftware
   584  	ekuOIDs[OID_EKU_MICROSOFT_SMART_DISPLAY] = oidExtKeyUsageMicrosoftSmartDisplay
   585  	ekuOIDs[OID_EKU_MICROSOFT_CSP_SIGNATURE] = oidExtKeyUsageMicrosoftCspSignature
   586  	ekuOIDs[OID_EKU_MICROSOFT_TIMESTAMP_SIGNING] = oidExtKeyUsageMicrosoftTimestampSigning
   587  	ekuOIDs[OID_EKU_MICROSOFT_SERVER_GATED_CRYPTO] = oidExtKeyUsageMicrosoftServerGatedCrypto
   588  	ekuOIDs[OID_EKU_MICROSOFT_SGC_SERIALIZED] = oidExtKeyUsageMicrosoftSgcSerialized
   589  	ekuOIDs[OID_EKU_MICROSOFT_ENCRYPTED_FILE_SYSTEM] = oidExtKeyUsageMicrosoftEncryptedFileSystem
   590  	ekuOIDs[OID_EKU_MICROSOFT_EFS_RECOVERY] = oidExtKeyUsageMicrosoftEfsRecovery
   591  	ekuOIDs[OID_EKU_MICROSOFT_WHQL_CRYPTO] = oidExtKeyUsageMicrosoftWhqlCrypto
   592  	ekuOIDs[OID_EKU_MICROSOFT_NT5_CRYPTO] = oidExtKeyUsageMicrosoftNt5Crypto
   593  	ekuOIDs[OID_EKU_MICROSOFT_OEM_WHQL_CRYPTO] = oidExtKeyUsageMicrosoftOemWhqlCrypto
   594  	ekuOIDs[OID_EKU_MICROSOFT_EMBEDDED_NT_CRYPTO] = oidExtKeyUsageMicrosoftEmbeddedNtCrypto
   595  	ekuOIDs[OID_EKU_MICROSOFT_ROOT_LIST_SIGNER] = oidExtKeyUsageMicrosoftRootListSigner
   596  	ekuOIDs[OID_EKU_MICROSOFT_DRM] = oidExtKeyUsageMicrosoftDrm
   597  	ekuOIDs[OID_EKU_MICROSOFT_DRM_INDIVIDUALIZATION] = oidExtKeyUsageMicrosoftDrmIndividualization
   598  	ekuOIDs[OID_EKU_MICROSOFT_LICENSES] = oidExtKeyUsageMicrosoftLicenses
   599  	ekuOIDs[OID_EKU_MICROSOFT_LICENSE_SERVER] = oidExtKeyUsageMicrosoftLicenseServer
   600  	ekuOIDs[OID_EKU_MICROSOFT_ENROLLMENT_AGENT] = oidExtKeyUsageMicrosoftEnrollmentAgent
   601  	ekuOIDs[OID_EKU_MICROSOFT_SMARTCARD_LOGON] = oidExtKeyUsageMicrosoftSmartcardLogon
   602  	ekuOIDs[OID_EKU_MICROSOFT_CA_EXCHANGE] = oidExtKeyUsageMicrosoftCaExchange
   603  	ekuOIDs[OID_EKU_MICROSOFT_KEY_RECOVERY_21] = oidExtKeyUsageMicrosoftKeyRecovery21
   604  	ekuOIDs[OID_EKU_MICROSOFT_SYSTEM_HEALTH] = oidExtKeyUsageMicrosoftSystemHealth
   605  	ekuOIDs[OID_EKU_MICROSOFT_SYSTEM_HEALTH_LOOPHOLE] = oidExtKeyUsageMicrosoftSystemHealthLoophole
   606  	ekuOIDs[OID_EKU_MICROSOFT_KERNEL_MODE_CODE_SIGNING] = oidExtKeyUsageMicrosoftKernelModeCodeSigning
   607  	ekuOIDs[OID_EKU_SERVER_AUTH] = oidExtKeyUsageServerAuth
   608  	ekuOIDs[OID_EKU_DVCS] = oidExtKeyUsageDvcs
   609  	ekuOIDs[OID_EKU_SBGP_CERT_AA_SERVICE_AUTH] = oidExtKeyUsageSbgpCertAaServiceAuth
   610  	ekuOIDs[OID_EKU_EAP_OVER_PPP] = oidExtKeyUsageEapOverPpp
   611  	ekuOIDs[OID_EKU_EAP_OVER_LAN] = oidExtKeyUsageEapOverLan
   612  	ekuOIDs[OID_EKU_CLIENT_AUTH] = oidExtKeyUsageClientAuth
   613  	ekuOIDs[OID_EKU_CODE_SIGNING] = oidExtKeyUsageCodeSigning
   614  	ekuOIDs[OID_EKU_EMAIL_PROTECTION] = oidExtKeyUsageEmailProtection
   615  	ekuOIDs[OID_EKU_IPSEC_END_SYSTEM] = oidExtKeyUsageIpsecEndSystem
   616  	ekuOIDs[OID_EKU_IPSEC_TUNNEL] = oidExtKeyUsageIpsecTunnel
   617  	ekuOIDs[OID_EKU_IPSEC_USER] = oidExtKeyUsageIpsecUser
   618  	ekuOIDs[OID_EKU_TIME_STAMPING] = oidExtKeyUsageTimeStamping
   619  	ekuOIDs[OID_EKU_OCSP_SIGNING] = oidExtKeyUsageOcspSigning
   620  	ekuOIDs[OID_EKU_IPSEC_INTERMEDIATE_SYSTEM_USAGE] = oidExtKeyUsageIpsecIntermediateSystemUsage
   621  	ekuOIDs[OID_EKU_NETSCAPE_SERVER_GATED_CRYPTO] = oidExtKeyUsageNetscapeServerGatedCrypto
   622  	ekuOIDs[OID_EKU_ANY] = oidExtKeyUsageAny
   623  
   624  	ekuConstants = make(map[string]ExtKeyUsage)
   625  	ekuConstants[OID_EKU_APPLE_CODE_SIGNING] = ExtKeyUsageAppleCodeSigning
   626  	ekuConstants[OID_EKU_APPLE_CODE_SIGNING_DEVELOPMENT] = ExtKeyUsageAppleCodeSigningDevelopment
   627  	ekuConstants[OID_EKU_APPLE_SOFTWARE_UPDATE_SIGNING] = ExtKeyUsageAppleSoftwareUpdateSigning
   628  	ekuConstants[OID_EKU_APPLE_CODE_SIGNING_THIRD_PARTY] = ExtKeyUsageAppleCodeSigningThirdParty
   629  	ekuConstants[OID_EKU_APPLE_RESOURCE_SIGNING] = ExtKeyUsageAppleResourceSigning
   630  	ekuConstants[OID_EKU_APPLE_ICHAT_SIGNING] = ExtKeyUsageAppleIchatSigning
   631  	ekuConstants[OID_EKU_APPLE_ICHAT_ENCRYPTION] = ExtKeyUsageAppleIchatEncryption
   632  	ekuConstants[OID_EKU_APPLE_SYSTEM_IDENTITY] = ExtKeyUsageAppleSystemIdentity
   633  	ekuConstants[OID_EKU_APPLE_CRYPTO_ENV] = ExtKeyUsageAppleCryptoEnv
   634  	ekuConstants[OID_EKU_APPLE_CRYPTO_PRODUCTION_ENV] = ExtKeyUsageAppleCryptoProductionEnv
   635  	ekuConstants[OID_EKU_APPLE_CRYPTO_MAINTENANCE_ENV] = ExtKeyUsageAppleCryptoMaintenanceEnv
   636  	ekuConstants[OID_EKU_APPLE_CRYPTO_TEST_ENV] = ExtKeyUsageAppleCryptoTestEnv
   637  	ekuConstants[OID_EKU_APPLE_CRYPTO_DEVELOPMENT_ENV] = ExtKeyUsageAppleCryptoDevelopmentEnv
   638  	ekuConstants[OID_EKU_APPLE_CRYPTO_QOS] = ExtKeyUsageAppleCryptoQos
   639  	ekuConstants[OID_EKU_APPLE_CRYPTO_TIER0_QOS] = ExtKeyUsageAppleCryptoTier0Qos
   640  	ekuConstants[OID_EKU_APPLE_CRYPTO_TIER1_QOS] = ExtKeyUsageAppleCryptoTier1Qos
   641  	ekuConstants[OID_EKU_APPLE_CRYPTO_TIER2_QOS] = ExtKeyUsageAppleCryptoTier2Qos
   642  	ekuConstants[OID_EKU_APPLE_CRYPTO_TIER3_QOS] = ExtKeyUsageAppleCryptoTier3Qos
   643  	ekuConstants[OID_EKU_ADOBE_AUTHENTIC_DOCUMENT_TRUST] = ExtKeyUsageAdobeAuthenticDocumentTrust
   644  	ekuConstants[OID_EKU_MICROSOFT_CERT_TRUST_LIST_SIGNING] = ExtKeyUsageMicrosoftCertTrustListSigning
   645  	ekuConstants[OID_EKU_MICROSOFT_QUALIFIED_SUBORDINATE] = ExtKeyUsageMicrosoftQualifiedSubordinate
   646  	ekuConstants[OID_EKU_MICROSOFT_KEY_RECOVERY_3] = ExtKeyUsageMicrosoftKeyRecovery3
   647  	ekuConstants[OID_EKU_MICROSOFT_DOCUMENT_SIGNING] = ExtKeyUsageMicrosoftDocumentSigning
   648  	ekuConstants[OID_EKU_MICROSOFT_LIFETIME_SIGNING] = ExtKeyUsageMicrosoftLifetimeSigning
   649  	ekuConstants[OID_EKU_MICROSOFT_MOBILE_DEVICE_SOFTWARE] = ExtKeyUsageMicrosoftMobileDeviceSoftware
   650  	ekuConstants[OID_EKU_MICROSOFT_SMART_DISPLAY] = ExtKeyUsageMicrosoftSmartDisplay
   651  	ekuConstants[OID_EKU_MICROSOFT_CSP_SIGNATURE] = ExtKeyUsageMicrosoftCspSignature
   652  	ekuConstants[OID_EKU_MICROSOFT_TIMESTAMP_SIGNING] = ExtKeyUsageMicrosoftTimestampSigning
   653  	ekuConstants[OID_EKU_MICROSOFT_SERVER_GATED_CRYPTO] = ExtKeyUsageMicrosoftServerGatedCrypto
   654  	ekuConstants[OID_EKU_MICROSOFT_SGC_SERIALIZED] = ExtKeyUsageMicrosoftSgcSerialized
   655  	ekuConstants[OID_EKU_MICROSOFT_ENCRYPTED_FILE_SYSTEM] = ExtKeyUsageMicrosoftEncryptedFileSystem
   656  	ekuConstants[OID_EKU_MICROSOFT_EFS_RECOVERY] = ExtKeyUsageMicrosoftEfsRecovery
   657  	ekuConstants[OID_EKU_MICROSOFT_WHQL_CRYPTO] = ExtKeyUsageMicrosoftWhqlCrypto
   658  	ekuConstants[OID_EKU_MICROSOFT_NT5_CRYPTO] = ExtKeyUsageMicrosoftNt5Crypto
   659  	ekuConstants[OID_EKU_MICROSOFT_OEM_WHQL_CRYPTO] = ExtKeyUsageMicrosoftOemWhqlCrypto
   660  	ekuConstants[OID_EKU_MICROSOFT_EMBEDDED_NT_CRYPTO] = ExtKeyUsageMicrosoftEmbeddedNtCrypto
   661  	ekuConstants[OID_EKU_MICROSOFT_ROOT_LIST_SIGNER] = ExtKeyUsageMicrosoftRootListSigner
   662  	ekuConstants[OID_EKU_MICROSOFT_DRM] = ExtKeyUsageMicrosoftDrm
   663  	ekuConstants[OID_EKU_MICROSOFT_DRM_INDIVIDUALIZATION] = ExtKeyUsageMicrosoftDrmIndividualization
   664  	ekuConstants[OID_EKU_MICROSOFT_LICENSES] = ExtKeyUsageMicrosoftLicenses
   665  	ekuConstants[OID_EKU_MICROSOFT_LICENSE_SERVER] = ExtKeyUsageMicrosoftLicenseServer
   666  	ekuConstants[OID_EKU_MICROSOFT_ENROLLMENT_AGENT] = ExtKeyUsageMicrosoftEnrollmentAgent
   667  	ekuConstants[OID_EKU_MICROSOFT_SMARTCARD_LOGON] = ExtKeyUsageMicrosoftSmartcardLogon
   668  	ekuConstants[OID_EKU_MICROSOFT_CA_EXCHANGE] = ExtKeyUsageMicrosoftCaExchange
   669  	ekuConstants[OID_EKU_MICROSOFT_KEY_RECOVERY_21] = ExtKeyUsageMicrosoftKeyRecovery21
   670  	ekuConstants[OID_EKU_MICROSOFT_SYSTEM_HEALTH] = ExtKeyUsageMicrosoftSystemHealth
   671  	ekuConstants[OID_EKU_MICROSOFT_SYSTEM_HEALTH_LOOPHOLE] = ExtKeyUsageMicrosoftSystemHealthLoophole
   672  	ekuConstants[OID_EKU_MICROSOFT_KERNEL_MODE_CODE_SIGNING] = ExtKeyUsageMicrosoftKernelModeCodeSigning
   673  	ekuConstants[OID_EKU_SERVER_AUTH] = ExtKeyUsageServerAuth
   674  	ekuConstants[OID_EKU_DVCS] = ExtKeyUsageDvcs
   675  	ekuConstants[OID_EKU_SBGP_CERT_AA_SERVICE_AUTH] = ExtKeyUsageSbgpCertAaServiceAuth
   676  	ekuConstants[OID_EKU_EAP_OVER_PPP] = ExtKeyUsageEapOverPpp
   677  	ekuConstants[OID_EKU_EAP_OVER_LAN] = ExtKeyUsageEapOverLan
   678  	ekuConstants[OID_EKU_CLIENT_AUTH] = ExtKeyUsageClientAuth
   679  	ekuConstants[OID_EKU_CODE_SIGNING] = ExtKeyUsageCodeSigning
   680  	ekuConstants[OID_EKU_EMAIL_PROTECTION] = ExtKeyUsageEmailProtection
   681  	ekuConstants[OID_EKU_IPSEC_END_SYSTEM] = ExtKeyUsageIpsecEndSystem
   682  	ekuConstants[OID_EKU_IPSEC_TUNNEL] = ExtKeyUsageIpsecTunnel
   683  	ekuConstants[OID_EKU_IPSEC_USER] = ExtKeyUsageIpsecUser
   684  	ekuConstants[OID_EKU_TIME_STAMPING] = ExtKeyUsageTimeStamping
   685  	ekuConstants[OID_EKU_OCSP_SIGNING] = ExtKeyUsageOcspSigning
   686  	ekuConstants[OID_EKU_IPSEC_INTERMEDIATE_SYSTEM_USAGE] = ExtKeyUsageIpsecIntermediateSystemUsage
   687  	ekuConstants[OID_EKU_NETSCAPE_SERVER_GATED_CRYPTO] = ExtKeyUsageNetscapeServerGatedCrypto
   688  	ekuConstants[OID_EKU_ANY] = ExtKeyUsageAny
   689  }