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.x509 import certificate_transparency, verification 
    8from cryptography.x509.base import ( 
    9    Attribute, 
    10    AttributeNotFound, 
    11    Attributes, 
    12    Certificate, 
    13    CertificateBuilder, 
    14    CertificateRevocationList, 
    15    CertificateRevocationListBuilder, 
    16    CertificateSigningRequest, 
    17    CertificateSigningRequestBuilder, 
    18    InvalidVersion, 
    19    RevokedCertificate, 
    20    RevokedCertificateBuilder, 
    21    Version, 
    22    load_der_x509_certificate, 
    23    load_der_x509_crl, 
    24    load_der_x509_csr, 
    25    load_pem_x509_certificate, 
    26    load_pem_x509_certificates, 
    27    load_pem_x509_crl, 
    28    load_pem_x509_csr, 
    29    random_serial_number, 
    30) 
    31from cryptography.x509.extensions import ( 
    32    AccessDescription, 
    33    Admission, 
    34    Admissions, 
    35    AuthorityInformationAccess, 
    36    AuthorityKeyIdentifier, 
    37    BasicConstraints, 
    38    CertificateIssuer, 
    39    CertificatePolicies, 
    40    CRLDistributionPoints, 
    41    CRLNumber, 
    42    CRLReason, 
    43    DeltaCRLIndicator, 
    44    DistributionPoint, 
    45    DuplicateExtension, 
    46    ExtendedKeyUsage, 
    47    Extension, 
    48    ExtensionNotFound, 
    49    Extensions, 
    50    ExtensionType, 
    51    FreshestCRL, 
    52    GeneralNames, 
    53    InhibitAnyPolicy, 
    54    InvalidityDate, 
    55    IssuerAlternativeName, 
    56    IssuingDistributionPoint, 
    57    KeyUsage, 
    58    MSCertificateTemplate, 
    59    NameConstraints, 
    60    NamingAuthority, 
    61    NoticeReference, 
    62    OCSPAcceptableResponses, 
    63    OCSPNoCheck, 
    64    OCSPNonce, 
    65    PolicyConstraints, 
    66    PolicyInformation, 
    67    PrecertificateSignedCertificateTimestamps, 
    68    PrecertPoison, 
    69    PrivateKeyUsagePeriod, 
    70    ProfessionInfo, 
    71    ReasonFlags, 
    72    SignedCertificateTimestamps, 
    73    SubjectAlternativeName, 
    74    SubjectInformationAccess, 
    75    SubjectKeyIdentifier, 
    76    TLSFeature, 
    77    TLSFeatureType, 
    78    UnrecognizedExtension, 
    79    UserNotice, 
    80) 
    81from cryptography.x509.general_name import ( 
    82    DirectoryName, 
    83    DNSName, 
    84    GeneralName, 
    85    IPAddress, 
    86    OtherName, 
    87    RegisteredID, 
    88    RFC822Name, 
    89    UniformResourceIdentifier, 
    90    UnsupportedGeneralNameType, 
    91) 
    92from cryptography.x509.name import ( 
    93    Name, 
    94    NameAttribute, 
    95    RelativeDistinguishedName, 
    96) 
    97from cryptography.x509.oid import ( 
    98    AuthorityInformationAccessOID, 
    99    CertificatePoliciesOID, 
    100    CRLEntryExtensionOID, 
    101    ExtendedKeyUsageOID, 
    102    ExtensionOID, 
    103    NameOID, 
    104    ObjectIdentifier, 
    105    PublicKeyAlgorithmOID, 
    106    SignatureAlgorithmOID, 
    107) 
    108 
    109OID_AUTHORITY_INFORMATION_ACCESS = ExtensionOID.AUTHORITY_INFORMATION_ACCESS 
    110OID_AUTHORITY_KEY_IDENTIFIER = ExtensionOID.AUTHORITY_KEY_IDENTIFIER 
    111OID_BASIC_CONSTRAINTS = ExtensionOID.BASIC_CONSTRAINTS 
    112OID_CERTIFICATE_POLICIES = ExtensionOID.CERTIFICATE_POLICIES 
    113OID_CRL_DISTRIBUTION_POINTS = ExtensionOID.CRL_DISTRIBUTION_POINTS 
    114OID_EXTENDED_KEY_USAGE = ExtensionOID.EXTENDED_KEY_USAGE 
    115OID_FRESHEST_CRL = ExtensionOID.FRESHEST_CRL 
    116OID_INHIBIT_ANY_POLICY = ExtensionOID.INHIBIT_ANY_POLICY 
    117OID_ISSUER_ALTERNATIVE_NAME = ExtensionOID.ISSUER_ALTERNATIVE_NAME 
    118OID_KEY_USAGE = ExtensionOID.KEY_USAGE 
    119OID_PRIVATE_KEY_USAGE_PERIOD = ExtensionOID.PRIVATE_KEY_USAGE_PERIOD 
    120OID_NAME_CONSTRAINTS = ExtensionOID.NAME_CONSTRAINTS 
    121OID_OCSP_NO_CHECK = ExtensionOID.OCSP_NO_CHECK 
    122OID_POLICY_CONSTRAINTS = ExtensionOID.POLICY_CONSTRAINTS 
    123OID_POLICY_MAPPINGS = ExtensionOID.POLICY_MAPPINGS 
    124OID_SUBJECT_ALTERNATIVE_NAME = ExtensionOID.SUBJECT_ALTERNATIVE_NAME 
    125OID_SUBJECT_DIRECTORY_ATTRIBUTES = ExtensionOID.SUBJECT_DIRECTORY_ATTRIBUTES 
    126OID_SUBJECT_INFORMATION_ACCESS = ExtensionOID.SUBJECT_INFORMATION_ACCESS 
    127OID_SUBJECT_KEY_IDENTIFIER = ExtensionOID.SUBJECT_KEY_IDENTIFIER 
    128 
    129OID_DSA_WITH_SHA1 = SignatureAlgorithmOID.DSA_WITH_SHA1 
    130OID_DSA_WITH_SHA224 = SignatureAlgorithmOID.DSA_WITH_SHA224 
    131OID_DSA_WITH_SHA256 = SignatureAlgorithmOID.DSA_WITH_SHA256 
    132OID_ECDSA_WITH_SHA1 = SignatureAlgorithmOID.ECDSA_WITH_SHA1 
    133OID_ECDSA_WITH_SHA224 = SignatureAlgorithmOID.ECDSA_WITH_SHA224 
    134OID_ECDSA_WITH_SHA256 = SignatureAlgorithmOID.ECDSA_WITH_SHA256 
    135OID_ECDSA_WITH_SHA384 = SignatureAlgorithmOID.ECDSA_WITH_SHA384 
    136OID_ECDSA_WITH_SHA512 = SignatureAlgorithmOID.ECDSA_WITH_SHA512 
    137OID_RSA_WITH_MD5 = SignatureAlgorithmOID.RSA_WITH_MD5 
    138OID_RSA_WITH_SHA1 = SignatureAlgorithmOID.RSA_WITH_SHA1 
    139OID_RSA_WITH_SHA224 = SignatureAlgorithmOID.RSA_WITH_SHA224 
    140OID_RSA_WITH_SHA256 = SignatureAlgorithmOID.RSA_WITH_SHA256 
    141OID_RSA_WITH_SHA384 = SignatureAlgorithmOID.RSA_WITH_SHA384 
    142OID_RSA_WITH_SHA512 = SignatureAlgorithmOID.RSA_WITH_SHA512 
    143OID_RSASSA_PSS = SignatureAlgorithmOID.RSASSA_PSS 
    144 
    145OID_COMMON_NAME = NameOID.COMMON_NAME 
    146OID_COUNTRY_NAME = NameOID.COUNTRY_NAME 
    147OID_DOMAIN_COMPONENT = NameOID.DOMAIN_COMPONENT 
    148OID_DN_QUALIFIER = NameOID.DN_QUALIFIER 
    149OID_EMAIL_ADDRESS = NameOID.EMAIL_ADDRESS 
    150OID_GENERATION_QUALIFIER = NameOID.GENERATION_QUALIFIER 
    151OID_GIVEN_NAME = NameOID.GIVEN_NAME 
    152OID_LOCALITY_NAME = NameOID.LOCALITY_NAME 
    153OID_ORGANIZATIONAL_UNIT_NAME = NameOID.ORGANIZATIONAL_UNIT_NAME 
    154OID_ORGANIZATION_NAME = NameOID.ORGANIZATION_NAME 
    155OID_PSEUDONYM = NameOID.PSEUDONYM 
    156OID_SERIAL_NUMBER = NameOID.SERIAL_NUMBER 
    157OID_STATE_OR_PROVINCE_NAME = NameOID.STATE_OR_PROVINCE_NAME 
    158OID_SURNAME = NameOID.SURNAME 
    159OID_TITLE = NameOID.TITLE 
    160 
    161OID_CLIENT_AUTH = ExtendedKeyUsageOID.CLIENT_AUTH 
    162OID_CODE_SIGNING = ExtendedKeyUsageOID.CODE_SIGNING 
    163OID_EMAIL_PROTECTION = ExtendedKeyUsageOID.EMAIL_PROTECTION 
    164OID_OCSP_SIGNING = ExtendedKeyUsageOID.OCSP_SIGNING 
    165OID_SERVER_AUTH = ExtendedKeyUsageOID.SERVER_AUTH 
    166OID_TIME_STAMPING = ExtendedKeyUsageOID.TIME_STAMPING 
    167 
    168OID_ANY_POLICY = CertificatePoliciesOID.ANY_POLICY 
    169OID_CPS_QUALIFIER = CertificatePoliciesOID.CPS_QUALIFIER 
    170OID_CPS_USER_NOTICE = CertificatePoliciesOID.CPS_USER_NOTICE 
    171 
    172OID_CERTIFICATE_ISSUER = CRLEntryExtensionOID.CERTIFICATE_ISSUER 
    173OID_CRL_REASON = CRLEntryExtensionOID.CRL_REASON 
    174OID_INVALIDITY_DATE = CRLEntryExtensionOID.INVALIDITY_DATE 
    175 
    176OID_CA_ISSUERS = AuthorityInformationAccessOID.CA_ISSUERS 
    177OID_OCSP = AuthorityInformationAccessOID.OCSP 
    178 
    179__all__ = [ 
    180    "OID_CA_ISSUERS", 
    181    "OID_OCSP", 
    182    "AccessDescription", 
    183    "Admission", 
    184    "Admissions", 
    185    "Attribute", 
    186    "AttributeNotFound", 
    187    "Attributes", 
    188    "AuthorityInformationAccess", 
    189    "AuthorityKeyIdentifier", 
    190    "BasicConstraints", 
    191    "CRLDistributionPoints", 
    192    "CRLNumber", 
    193    "CRLReason", 
    194    "Certificate", 
    195    "CertificateBuilder", 
    196    "CertificateIssuer", 
    197    "CertificatePolicies", 
    198    "CertificateRevocationList", 
    199    "CertificateRevocationListBuilder", 
    200    "CertificateSigningRequest", 
    201    "CertificateSigningRequestBuilder", 
    202    "DNSName", 
    203    "DeltaCRLIndicator", 
    204    "DirectoryName", 
    205    "DistributionPoint", 
    206    "DuplicateExtension", 
    207    "ExtendedKeyUsage", 
    208    "Extension", 
    209    "ExtensionNotFound", 
    210    "ExtensionType", 
    211    "Extensions", 
    212    "FreshestCRL", 
    213    "GeneralName", 
    214    "GeneralNames", 
    215    "IPAddress", 
    216    "InhibitAnyPolicy", 
    217    "InvalidVersion", 
    218    "InvalidityDate", 
    219    "IssuerAlternativeName", 
    220    "IssuingDistributionPoint", 
    221    "KeyUsage", 
    222    "MSCertificateTemplate", 
    223    "Name", 
    224    "NameAttribute", 
    225    "NameConstraints", 
    226    "NameOID", 
    227    "NamingAuthority", 
    228    "NoticeReference", 
    229    "OCSPAcceptableResponses", 
    230    "OCSPNoCheck", 
    231    "OCSPNonce", 
    232    "ObjectIdentifier", 
    233    "OtherName", 
    234    "PolicyConstraints", 
    235    "PolicyInformation", 
    236    "PrecertPoison", 
    237    "PrecertificateSignedCertificateTimestamps", 
    238    "PrivateKeyUsagePeriod", 
    239    "ProfessionInfo", 
    240    "PublicKeyAlgorithmOID", 
    241    "RFC822Name", 
    242    "ReasonFlags", 
    243    "RegisteredID", 
    244    "RelativeDistinguishedName", 
    245    "RevokedCertificate", 
    246    "RevokedCertificateBuilder", 
    247    "SignatureAlgorithmOID", 
    248    "SignedCertificateTimestamps", 
    249    "SubjectAlternativeName", 
    250    "SubjectInformationAccess", 
    251    "SubjectKeyIdentifier", 
    252    "TLSFeature", 
    253    "TLSFeatureType", 
    254    "UniformResourceIdentifier", 
    255    "UnrecognizedExtension", 
    256    "UnsupportedGeneralNameType", 
    257    "UserNotice", 
    258    "Version", 
    259    "certificate_transparency", 
    260    "load_der_x509_certificate", 
    261    "load_der_x509_crl", 
    262    "load_der_x509_csr", 
    263    "load_pem_x509_certificate", 
    264    "load_pem_x509_certificates", 
    265    "load_pem_x509_crl", 
    266    "load_pem_x509_csr", 
    267    "random_serial_number", 
    268    "verification", 
    269    "verification", 
    270]