1# This file is dual licensed under the terms of the Apache License, Version 
    2# 2.0, and the BSD License. See the LICENSE file in the root of this repository 
    3# for complete details. 
    4 
    5from __future__ import annotations 
    6 
    7from cryptography.hazmat.bindings._rust import ( 
    8    ObjectIdentifier as ObjectIdentifier, 
    9) 
    10from cryptography.hazmat.primitives import hashes 
    11 
    12 
    13class ExtensionOID: 
    14    SUBJECT_DIRECTORY_ATTRIBUTES = ObjectIdentifier("2.5.29.9") 
    15    SUBJECT_KEY_IDENTIFIER = ObjectIdentifier("2.5.29.14") 
    16    KEY_USAGE = ObjectIdentifier("2.5.29.15") 
    17    PRIVATE_KEY_USAGE_PERIOD = ObjectIdentifier("2.5.29.16") 
    18    SUBJECT_ALTERNATIVE_NAME = ObjectIdentifier("2.5.29.17") 
    19    ISSUER_ALTERNATIVE_NAME = ObjectIdentifier("2.5.29.18") 
    20    BASIC_CONSTRAINTS = ObjectIdentifier("2.5.29.19") 
    21    NAME_CONSTRAINTS = ObjectIdentifier("2.5.29.30") 
    22    CRL_DISTRIBUTION_POINTS = ObjectIdentifier("2.5.29.31") 
    23    CERTIFICATE_POLICIES = ObjectIdentifier("2.5.29.32") 
    24    POLICY_MAPPINGS = ObjectIdentifier("2.5.29.33") 
    25    AUTHORITY_KEY_IDENTIFIER = ObjectIdentifier("2.5.29.35") 
    26    POLICY_CONSTRAINTS = ObjectIdentifier("2.5.29.36") 
    27    EXTENDED_KEY_USAGE = ObjectIdentifier("2.5.29.37") 
    28    FRESHEST_CRL = ObjectIdentifier("2.5.29.46") 
    29    INHIBIT_ANY_POLICY = ObjectIdentifier("2.5.29.54") 
    30    ISSUING_DISTRIBUTION_POINT = ObjectIdentifier("2.5.29.28") 
    31    AUTHORITY_INFORMATION_ACCESS = ObjectIdentifier("1.3.6.1.5.5.7.1.1") 
    32    SUBJECT_INFORMATION_ACCESS = ObjectIdentifier("1.3.6.1.5.5.7.1.11") 
    33    OCSP_NO_CHECK = ObjectIdentifier("1.3.6.1.5.5.7.48.1.5") 
    34    TLS_FEATURE = ObjectIdentifier("1.3.6.1.5.5.7.1.24") 
    35    CRL_NUMBER = ObjectIdentifier("2.5.29.20") 
    36    DELTA_CRL_INDICATOR = ObjectIdentifier("2.5.29.27") 
    37    PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS = ObjectIdentifier( 
    38        "1.3.6.1.4.1.11129.2.4.2" 
    39    ) 
    40    PRECERT_POISON = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.3") 
    41    SIGNED_CERTIFICATE_TIMESTAMPS = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.5") 
    42    MS_CERTIFICATE_TEMPLATE = ObjectIdentifier("1.3.6.1.4.1.311.21.7") 
    43    ADMISSIONS = ObjectIdentifier("1.3.36.8.3.3") 
    44 
    45 
    46class OCSPExtensionOID: 
    47    NONCE = ObjectIdentifier("1.3.6.1.5.5.7.48.1.2") 
    48    ACCEPTABLE_RESPONSES = ObjectIdentifier("1.3.6.1.5.5.7.48.1.4") 
    49 
    50 
    51class CRLEntryExtensionOID: 
    52    CERTIFICATE_ISSUER = ObjectIdentifier("2.5.29.29") 
    53    CRL_REASON = ObjectIdentifier("2.5.29.21") 
    54    INVALIDITY_DATE = ObjectIdentifier("2.5.29.24") 
    55 
    56 
    57class NameOID: 
    58    COMMON_NAME = ObjectIdentifier("2.5.4.3") 
    59    COUNTRY_NAME = ObjectIdentifier("2.5.4.6") 
    60    LOCALITY_NAME = ObjectIdentifier("2.5.4.7") 
    61    STATE_OR_PROVINCE_NAME = ObjectIdentifier("2.5.4.8") 
    62    STREET_ADDRESS = ObjectIdentifier("2.5.4.9") 
    63    ORGANIZATION_IDENTIFIER = ObjectIdentifier("2.5.4.97") 
    64    ORGANIZATION_NAME = ObjectIdentifier("2.5.4.10") 
    65    ORGANIZATIONAL_UNIT_NAME = ObjectIdentifier("2.5.4.11") 
    66    SERIAL_NUMBER = ObjectIdentifier("2.5.4.5") 
    67    SURNAME = ObjectIdentifier("2.5.4.4") 
    68    GIVEN_NAME = ObjectIdentifier("2.5.4.42") 
    69    TITLE = ObjectIdentifier("2.5.4.12") 
    70    INITIALS = ObjectIdentifier("2.5.4.43") 
    71    GENERATION_QUALIFIER = ObjectIdentifier("2.5.4.44") 
    72    X500_UNIQUE_IDENTIFIER = ObjectIdentifier("2.5.4.45") 
    73    DN_QUALIFIER = ObjectIdentifier("2.5.4.46") 
    74    PSEUDONYM = ObjectIdentifier("2.5.4.65") 
    75    USER_ID = ObjectIdentifier("0.9.2342.19200300.100.1.1") 
    76    DOMAIN_COMPONENT = ObjectIdentifier("0.9.2342.19200300.100.1.25") 
    77    EMAIL_ADDRESS = ObjectIdentifier("1.2.840.113549.1.9.1") 
    78    JURISDICTION_COUNTRY_NAME = ObjectIdentifier("1.3.6.1.4.1.311.60.2.1.3") 
    79    JURISDICTION_LOCALITY_NAME = ObjectIdentifier("1.3.6.1.4.1.311.60.2.1.1") 
    80    JURISDICTION_STATE_OR_PROVINCE_NAME = ObjectIdentifier( 
    81        "1.3.6.1.4.1.311.60.2.1.2" 
    82    ) 
    83    BUSINESS_CATEGORY = ObjectIdentifier("2.5.4.15") 
    84    POSTAL_ADDRESS = ObjectIdentifier("2.5.4.16") 
    85    POSTAL_CODE = ObjectIdentifier("2.5.4.17") 
    86    INN = ObjectIdentifier("1.2.643.3.131.1.1") 
    87    OGRN = ObjectIdentifier("1.2.643.100.1") 
    88    SNILS = ObjectIdentifier("1.2.643.100.3") 
    89    UNSTRUCTURED_NAME = ObjectIdentifier("1.2.840.113549.1.9.2") 
    90 
    91 
    92class SignatureAlgorithmOID: 
    93    RSA_WITH_MD5 = ObjectIdentifier("1.2.840.113549.1.1.4") 
    94    RSA_WITH_SHA1 = ObjectIdentifier("1.2.840.113549.1.1.5") 
    95    # This is an alternate OID for RSA with SHA1 that is occasionally seen 
    96    _RSA_WITH_SHA1 = ObjectIdentifier("1.3.14.3.2.29") 
    97    RSA_WITH_SHA224 = ObjectIdentifier("1.2.840.113549.1.1.14") 
    98    RSA_WITH_SHA256 = ObjectIdentifier("1.2.840.113549.1.1.11") 
    99    RSA_WITH_SHA384 = ObjectIdentifier("1.2.840.113549.1.1.12") 
    100    RSA_WITH_SHA512 = ObjectIdentifier("1.2.840.113549.1.1.13") 
    101    RSA_WITH_SHA3_224 = ObjectIdentifier("2.16.840.1.101.3.4.3.13") 
    102    RSA_WITH_SHA3_256 = ObjectIdentifier("2.16.840.1.101.3.4.3.14") 
    103    RSA_WITH_SHA3_384 = ObjectIdentifier("2.16.840.1.101.3.4.3.15") 
    104    RSA_WITH_SHA3_512 = ObjectIdentifier("2.16.840.1.101.3.4.3.16") 
    105    RSASSA_PSS = ObjectIdentifier("1.2.840.113549.1.1.10") 
    106    ECDSA_WITH_SHA1 = ObjectIdentifier("1.2.840.10045.4.1") 
    107    ECDSA_WITH_SHA224 = ObjectIdentifier("1.2.840.10045.4.3.1") 
    108    ECDSA_WITH_SHA256 = ObjectIdentifier("1.2.840.10045.4.3.2") 
    109    ECDSA_WITH_SHA384 = ObjectIdentifier("1.2.840.10045.4.3.3") 
    110    ECDSA_WITH_SHA512 = ObjectIdentifier("1.2.840.10045.4.3.4") 
    111    ECDSA_WITH_SHA3_224 = ObjectIdentifier("2.16.840.1.101.3.4.3.9") 
    112    ECDSA_WITH_SHA3_256 = ObjectIdentifier("2.16.840.1.101.3.4.3.10") 
    113    ECDSA_WITH_SHA3_384 = ObjectIdentifier("2.16.840.1.101.3.4.3.11") 
    114    ECDSA_WITH_SHA3_512 = ObjectIdentifier("2.16.840.1.101.3.4.3.12") 
    115    DSA_WITH_SHA1 = ObjectIdentifier("1.2.840.10040.4.3") 
    116    DSA_WITH_SHA224 = ObjectIdentifier("2.16.840.1.101.3.4.3.1") 
    117    DSA_WITH_SHA256 = ObjectIdentifier("2.16.840.1.101.3.4.3.2") 
    118    DSA_WITH_SHA384 = ObjectIdentifier("2.16.840.1.101.3.4.3.3") 
    119    DSA_WITH_SHA512 = ObjectIdentifier("2.16.840.1.101.3.4.3.4") 
    120    ED25519 = ObjectIdentifier("1.3.101.112") 
    121    ED448 = ObjectIdentifier("1.3.101.113") 
    122    GOSTR3411_94_WITH_3410_2001 = ObjectIdentifier("1.2.643.2.2.3") 
    123    GOSTR3410_2012_WITH_3411_2012_256 = ObjectIdentifier("1.2.643.7.1.1.3.2") 
    124    GOSTR3410_2012_WITH_3411_2012_512 = ObjectIdentifier("1.2.643.7.1.1.3.3") 
    125 
    126 
    127_SIG_OIDS_TO_HASH: dict[ObjectIdentifier, hashes.HashAlgorithm | None] = { 
    128    SignatureAlgorithmOID.RSA_WITH_MD5: hashes.MD5(), 
    129    SignatureAlgorithmOID.RSA_WITH_SHA1: hashes.SHA1(), 
    130    SignatureAlgorithmOID._RSA_WITH_SHA1: hashes.SHA1(), 
    131    SignatureAlgorithmOID.RSA_WITH_SHA224: hashes.SHA224(), 
    132    SignatureAlgorithmOID.RSA_WITH_SHA256: hashes.SHA256(), 
    133    SignatureAlgorithmOID.RSA_WITH_SHA384: hashes.SHA384(), 
    134    SignatureAlgorithmOID.RSA_WITH_SHA512: hashes.SHA512(), 
    135    SignatureAlgorithmOID.RSA_WITH_SHA3_224: hashes.SHA3_224(), 
    136    SignatureAlgorithmOID.RSA_WITH_SHA3_256: hashes.SHA3_256(), 
    137    SignatureAlgorithmOID.RSA_WITH_SHA3_384: hashes.SHA3_384(), 
    138    SignatureAlgorithmOID.RSA_WITH_SHA3_512: hashes.SHA3_512(), 
    139    SignatureAlgorithmOID.ECDSA_WITH_SHA1: hashes.SHA1(), 
    140    SignatureAlgorithmOID.ECDSA_WITH_SHA224: hashes.SHA224(), 
    141    SignatureAlgorithmOID.ECDSA_WITH_SHA256: hashes.SHA256(), 
    142    SignatureAlgorithmOID.ECDSA_WITH_SHA384: hashes.SHA384(), 
    143    SignatureAlgorithmOID.ECDSA_WITH_SHA512: hashes.SHA512(), 
    144    SignatureAlgorithmOID.ECDSA_WITH_SHA3_224: hashes.SHA3_224(), 
    145    SignatureAlgorithmOID.ECDSA_WITH_SHA3_256: hashes.SHA3_256(), 
    146    SignatureAlgorithmOID.ECDSA_WITH_SHA3_384: hashes.SHA3_384(), 
    147    SignatureAlgorithmOID.ECDSA_WITH_SHA3_512: hashes.SHA3_512(), 
    148    SignatureAlgorithmOID.DSA_WITH_SHA1: hashes.SHA1(), 
    149    SignatureAlgorithmOID.DSA_WITH_SHA224: hashes.SHA224(), 
    150    SignatureAlgorithmOID.DSA_WITH_SHA256: hashes.SHA256(), 
    151    SignatureAlgorithmOID.ED25519: None, 
    152    SignatureAlgorithmOID.ED448: None, 
    153    SignatureAlgorithmOID.GOSTR3411_94_WITH_3410_2001: None, 
    154    SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_256: None, 
    155    SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_512: None, 
    156} 
    157 
    158 
    159class HashAlgorithmOID: 
    160    SHA1 = ObjectIdentifier("1.3.14.3.2.26") 
    161    SHA224 = ObjectIdentifier("2.16.840.1.101.3.4.2.4") 
    162    SHA256 = ObjectIdentifier("2.16.840.1.101.3.4.2.1") 
    163    SHA384 = ObjectIdentifier("2.16.840.1.101.3.4.2.2") 
    164    SHA512 = ObjectIdentifier("2.16.840.1.101.3.4.2.3") 
    165    SHA3_224 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.224") 
    166    SHA3_256 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.256") 
    167    SHA3_384 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.384") 
    168    SHA3_512 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.512") 
    169    SHA3_224_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.7") 
    170    SHA3_256_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.8") 
    171    SHA3_384_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.9") 
    172    SHA3_512_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.10") 
    173 
    174 
    175class PublicKeyAlgorithmOID: 
    176    DSA = ObjectIdentifier("1.2.840.10040.4.1") 
    177    EC_PUBLIC_KEY = ObjectIdentifier("1.2.840.10045.2.1") 
    178    RSAES_PKCS1_v1_5 = ObjectIdentifier("1.2.840.113549.1.1.1") 
    179    RSASSA_PSS = ObjectIdentifier("1.2.840.113549.1.1.10") 
    180    X25519 = ObjectIdentifier("1.3.101.110") 
    181    X448 = ObjectIdentifier("1.3.101.111") 
    182    ED25519 = ObjectIdentifier("1.3.101.112") 
    183    ED448 = ObjectIdentifier("1.3.101.113") 
    184 
    185 
    186class ExtendedKeyUsageOID: 
    187    SERVER_AUTH = ObjectIdentifier("1.3.6.1.5.5.7.3.1") 
    188    CLIENT_AUTH = ObjectIdentifier("1.3.6.1.5.5.7.3.2") 
    189    CODE_SIGNING = ObjectIdentifier("1.3.6.1.5.5.7.3.3") 
    190    EMAIL_PROTECTION = ObjectIdentifier("1.3.6.1.5.5.7.3.4") 
    191    TIME_STAMPING = ObjectIdentifier("1.3.6.1.5.5.7.3.8") 
    192    OCSP_SIGNING = ObjectIdentifier("1.3.6.1.5.5.7.3.9") 
    193    ANY_EXTENDED_KEY_USAGE = ObjectIdentifier("2.5.29.37.0") 
    194    SMARTCARD_LOGON = ObjectIdentifier("1.3.6.1.4.1.311.20.2.2") 
    195    KERBEROS_PKINIT_KDC = ObjectIdentifier("1.3.6.1.5.2.3.5") 
    196    IPSEC_IKE = ObjectIdentifier("1.3.6.1.5.5.7.3.17") 
    197    BUNDLE_SECURITY = ObjectIdentifier("1.3.6.1.5.5.7.3.35") 
    198    CERTIFICATE_TRANSPARENCY = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.4") 
    199 
    200 
    201class OtherNameFormOID: 
    202    PERMANENT_IDENTIFIER = ObjectIdentifier("1.3.6.1.5.5.7.8.3") 
    203    HW_MODULE_NAME = ObjectIdentifier("1.3.6.1.5.5.7.8.4") 
    204    DNS_SRV = ObjectIdentifier("1.3.6.1.5.5.7.8.7") 
    205    NAI_REALM = ObjectIdentifier("1.3.6.1.5.5.7.8.8") 
    206    SMTP_UTF8_MAILBOX = ObjectIdentifier("1.3.6.1.5.5.7.8.9") 
    207    ACP_NODE_NAME = ObjectIdentifier("1.3.6.1.5.5.7.8.10") 
    208    BUNDLE_EID = ObjectIdentifier("1.3.6.1.5.5.7.8.11") 
    209 
    210 
    211class AuthorityInformationAccessOID: 
    212    CA_ISSUERS = ObjectIdentifier("1.3.6.1.5.5.7.48.2") 
    213    OCSP = ObjectIdentifier("1.3.6.1.5.5.7.48.1") 
    214 
    215 
    216class SubjectInformationAccessOID: 
    217    CA_REPOSITORY = ObjectIdentifier("1.3.6.1.5.5.7.48.5") 
    218 
    219 
    220class CertificatePoliciesOID: 
    221    CPS_QUALIFIER = ObjectIdentifier("1.3.6.1.5.5.7.2.1") 
    222    CPS_USER_NOTICE = ObjectIdentifier("1.3.6.1.5.5.7.2.2") 
    223    ANY_POLICY = ObjectIdentifier("2.5.29.32.0") 
    224 
    225 
    226class AttributeOID: 
    227    CHALLENGE_PASSWORD = ObjectIdentifier("1.2.840.113549.1.9.7") 
    228    UNSTRUCTURED_NAME = ObjectIdentifier("1.2.840.113549.1.9.2") 
    229 
    230 
    231_OID_NAMES = { 
    232    NameOID.COMMON_NAME: "commonName", 
    233    NameOID.COUNTRY_NAME: "countryName", 
    234    NameOID.LOCALITY_NAME: "localityName", 
    235    NameOID.STATE_OR_PROVINCE_NAME: "stateOrProvinceName", 
    236    NameOID.STREET_ADDRESS: "streetAddress", 
    237    NameOID.ORGANIZATION_NAME: "organizationName", 
    238    NameOID.ORGANIZATIONAL_UNIT_NAME: "organizationalUnitName", 
    239    NameOID.SERIAL_NUMBER: "serialNumber", 
    240    NameOID.SURNAME: "surname", 
    241    NameOID.GIVEN_NAME: "givenName", 
    242    NameOID.TITLE: "title", 
    243    NameOID.GENERATION_QUALIFIER: "generationQualifier", 
    244    NameOID.X500_UNIQUE_IDENTIFIER: "x500UniqueIdentifier", 
    245    NameOID.DN_QUALIFIER: "dnQualifier", 
    246    NameOID.PSEUDONYM: "pseudonym", 
    247    NameOID.USER_ID: "userID", 
    248    NameOID.DOMAIN_COMPONENT: "domainComponent", 
    249    NameOID.EMAIL_ADDRESS: "emailAddress", 
    250    NameOID.JURISDICTION_COUNTRY_NAME: "jurisdictionCountryName", 
    251    NameOID.JURISDICTION_LOCALITY_NAME: "jurisdictionLocalityName", 
    252    NameOID.JURISDICTION_STATE_OR_PROVINCE_NAME: ( 
    253        "jurisdictionStateOrProvinceName" 
    254    ), 
    255    NameOID.BUSINESS_CATEGORY: "businessCategory", 
    256    NameOID.POSTAL_ADDRESS: "postalAddress", 
    257    NameOID.POSTAL_CODE: "postalCode", 
    258    NameOID.INN: "INN", 
    259    NameOID.OGRN: "OGRN", 
    260    NameOID.SNILS: "SNILS", 
    261    NameOID.UNSTRUCTURED_NAME: "unstructuredName", 
    262    SignatureAlgorithmOID.RSA_WITH_MD5: "md5WithRSAEncryption", 
    263    SignatureAlgorithmOID.RSA_WITH_SHA1: "sha1WithRSAEncryption", 
    264    SignatureAlgorithmOID.RSA_WITH_SHA224: "sha224WithRSAEncryption", 
    265    SignatureAlgorithmOID.RSA_WITH_SHA256: "sha256WithRSAEncryption", 
    266    SignatureAlgorithmOID.RSA_WITH_SHA384: "sha384WithRSAEncryption", 
    267    SignatureAlgorithmOID.RSA_WITH_SHA512: "sha512WithRSAEncryption", 
    268    SignatureAlgorithmOID.RSASSA_PSS: "rsassaPss", 
    269    SignatureAlgorithmOID.ECDSA_WITH_SHA1: "ecdsa-with-SHA1", 
    270    SignatureAlgorithmOID.ECDSA_WITH_SHA224: "ecdsa-with-SHA224", 
    271    SignatureAlgorithmOID.ECDSA_WITH_SHA256: "ecdsa-with-SHA256", 
    272    SignatureAlgorithmOID.ECDSA_WITH_SHA384: "ecdsa-with-SHA384", 
    273    SignatureAlgorithmOID.ECDSA_WITH_SHA512: "ecdsa-with-SHA512", 
    274    SignatureAlgorithmOID.DSA_WITH_SHA1: "dsa-with-sha1", 
    275    SignatureAlgorithmOID.DSA_WITH_SHA224: "dsa-with-sha224", 
    276    SignatureAlgorithmOID.DSA_WITH_SHA256: "dsa-with-sha256", 
    277    SignatureAlgorithmOID.ED25519: "ed25519", 
    278    SignatureAlgorithmOID.ED448: "ed448", 
    279    SignatureAlgorithmOID.GOSTR3411_94_WITH_3410_2001: ( 
    280        "GOST R 34.11-94 with GOST R 34.10-2001" 
    281    ), 
    282    SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_256: ( 
    283        "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" 
    284    ), 
    285    SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_512: ( 
    286        "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" 
    287    ), 
    288    HashAlgorithmOID.SHA1: "sha1", 
    289    HashAlgorithmOID.SHA224: "sha224", 
    290    HashAlgorithmOID.SHA256: "sha256", 
    291    HashAlgorithmOID.SHA384: "sha384", 
    292    HashAlgorithmOID.SHA512: "sha512", 
    293    HashAlgorithmOID.SHA3_224: "sha3_224", 
    294    HashAlgorithmOID.SHA3_256: "sha3_256", 
    295    HashAlgorithmOID.SHA3_384: "sha3_384", 
    296    HashAlgorithmOID.SHA3_512: "sha3_512", 
    297    HashAlgorithmOID.SHA3_224_NIST: "sha3_224", 
    298    HashAlgorithmOID.SHA3_256_NIST: "sha3_256", 
    299    HashAlgorithmOID.SHA3_384_NIST: "sha3_384", 
    300    HashAlgorithmOID.SHA3_512_NIST: "sha3_512", 
    301    PublicKeyAlgorithmOID.DSA: "dsaEncryption", 
    302    PublicKeyAlgorithmOID.EC_PUBLIC_KEY: "id-ecPublicKey", 
    303    PublicKeyAlgorithmOID.RSAES_PKCS1_v1_5: "rsaEncryption", 
    304    PublicKeyAlgorithmOID.X25519: "X25519", 
    305    PublicKeyAlgorithmOID.X448: "X448", 
    306    ExtendedKeyUsageOID.SERVER_AUTH: "serverAuth", 
    307    ExtendedKeyUsageOID.CLIENT_AUTH: "clientAuth", 
    308    ExtendedKeyUsageOID.CODE_SIGNING: "codeSigning", 
    309    ExtendedKeyUsageOID.EMAIL_PROTECTION: "emailProtection", 
    310    ExtendedKeyUsageOID.TIME_STAMPING: "timeStamping", 
    311    ExtendedKeyUsageOID.OCSP_SIGNING: "OCSPSigning", 
    312    ExtendedKeyUsageOID.SMARTCARD_LOGON: "msSmartcardLogin", 
    313    ExtendedKeyUsageOID.KERBEROS_PKINIT_KDC: "pkInitKDC", 
    314    ExtensionOID.SUBJECT_DIRECTORY_ATTRIBUTES: "subjectDirectoryAttributes", 
    315    ExtensionOID.SUBJECT_KEY_IDENTIFIER: "subjectKeyIdentifier", 
    316    ExtensionOID.KEY_USAGE: "keyUsage", 
    317    ExtensionOID.PRIVATE_KEY_USAGE_PERIOD: "privateKeyUsagePeriod", 
    318    ExtensionOID.SUBJECT_ALTERNATIVE_NAME: "subjectAltName", 
    319    ExtensionOID.ISSUER_ALTERNATIVE_NAME: "issuerAltName", 
    320    ExtensionOID.BASIC_CONSTRAINTS: "basicConstraints", 
    321    ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS: ( 
    322        "signedCertificateTimestampList" 
    323    ), 
    324    ExtensionOID.SIGNED_CERTIFICATE_TIMESTAMPS: ( 
    325        "signedCertificateTimestampList" 
    326    ), 
    327    ExtensionOID.PRECERT_POISON: "ctPoison", 
    328    ExtensionOID.MS_CERTIFICATE_TEMPLATE: "msCertificateTemplate", 
    329    ExtensionOID.ADMISSIONS: "Admissions", 
    330    CRLEntryExtensionOID.CRL_REASON: "cRLReason", 
    331    CRLEntryExtensionOID.INVALIDITY_DATE: "invalidityDate", 
    332    CRLEntryExtensionOID.CERTIFICATE_ISSUER: "certificateIssuer", 
    333    ExtensionOID.NAME_CONSTRAINTS: "nameConstraints", 
    334    ExtensionOID.CRL_DISTRIBUTION_POINTS: "cRLDistributionPoints", 
    335    ExtensionOID.CERTIFICATE_POLICIES: "certificatePolicies", 
    336    ExtensionOID.POLICY_MAPPINGS: "policyMappings", 
    337    ExtensionOID.AUTHORITY_KEY_IDENTIFIER: "authorityKeyIdentifier", 
    338    ExtensionOID.POLICY_CONSTRAINTS: "policyConstraints", 
    339    ExtensionOID.EXTENDED_KEY_USAGE: "extendedKeyUsage", 
    340    ExtensionOID.FRESHEST_CRL: "freshestCRL", 
    341    ExtensionOID.INHIBIT_ANY_POLICY: "inhibitAnyPolicy", 
    342    ExtensionOID.ISSUING_DISTRIBUTION_POINT: "issuingDistributionPoint", 
    343    ExtensionOID.AUTHORITY_INFORMATION_ACCESS: "authorityInfoAccess", 
    344    ExtensionOID.SUBJECT_INFORMATION_ACCESS: "subjectInfoAccess", 
    345    ExtensionOID.OCSP_NO_CHECK: "OCSPNoCheck", 
    346    ExtensionOID.CRL_NUMBER: "cRLNumber", 
    347    ExtensionOID.DELTA_CRL_INDICATOR: "deltaCRLIndicator", 
    348    ExtensionOID.TLS_FEATURE: "TLSFeature", 
    349    AuthorityInformationAccessOID.OCSP: "OCSP", 
    350    AuthorityInformationAccessOID.CA_ISSUERS: "caIssuers", 
    351    SubjectInformationAccessOID.CA_REPOSITORY: "caRepository", 
    352    CertificatePoliciesOID.CPS_QUALIFIER: "id-qt-cps", 
    353    CertificatePoliciesOID.CPS_USER_NOTICE: "id-qt-unotice", 
    354    OCSPExtensionOID.NONCE: "OCSPNonce", 
    355    AttributeOID.CHALLENGE_PASSWORD: "challengePassword", 
    356}