Source code for pki.util.ext_oids

"""To be added to trustpoint_core as trustpoint_core.oid.CertificateExtensionOid."""

import enum
from dataclasses import dataclass


@dataclass(frozen=True)
[docs] class CertificateExtensionOidData: """The Certificate Extension OID Data class holding all of the information."""
[docs] dotted_string: str
[docs] abbreviation: str | None
[docs] full_name: str
[docs] verbose_name: str
[docs] class CertificateExtensionOid(enum.Enum): """Certificate Extension OID Enum holding extension metadata as dataclass instances and lookup helpers."""
[docs] SUBJECT_DIRECTORY_ATTRIBUTES = CertificateExtensionOidData( '2.5.29.9', None, 'subjectDirectoryAttributes', 'Subject Directory Attributes')
[docs] SUBJECT_KEY_IDENTIFIER = CertificateExtensionOidData( '2.5.29.14', 'ski', 'subjectKeyIdentifier', 'Subject Key Identifier')
[docs] KEY_USAGE = CertificateExtensionOidData('2.5.29.15', 'ku', 'keyUsage', 'Key Usage')
[docs] SUBJECT_ALTERNATIVE_NAME = CertificateExtensionOidData( '2.5.29.17', 'san', 'subjectAlternativeName', 'Subject Alternative Name')
[docs] ISSUER_ALTERNATIVE_NAME = CertificateExtensionOidData( '2.5.29.18', 'ian', 'issuerAlternativeName', 'Issuer Alternative Name')
[docs] BASIC_CONSTRAINTS = CertificateExtensionOidData('2.5.29.19', 'bc', 'basicConstraints', 'Basic Constraints')
[docs] NAME_CONSTRAINTS = CertificateExtensionOidData('2.5.29.30', 'nc', 'nameConstraints', 'Name Constraints')
[docs] CRL_DISTRIBUTION_POINTS = CertificateExtensionOidData( '2.5.29.31', 'crl', 'crlDistributionPoints', 'CRL Distribution Points')
[docs] CERTIFICATE_POLICIES = CertificateExtensionOidData('2.5.29.32', 'cp', 'certificatePolicies', 'Certificate Policies')
[docs] POLICY_MAPPINGS = CertificateExtensionOidData('2.5.29.33', 'pm', 'policyMappings', 'Policy Mappings')
[docs] AUTHORITY_KEY_IDENTIFIER = CertificateExtensionOidData( '2.5.29.35', 'aki', 'authorityKeyIdentifier', 'Authority Key Identifier')
[docs] POLICY_CONSTRAINTS = CertificateExtensionOidData('2.5.29.36', 'pc', 'policyConstraints', 'Policy Constraints')
[docs] EXTENDED_KEY_USAGE = CertificateExtensionOidData('2.5.29.37', 'eku', 'extendedKeyUsage', 'Extended Key Usage')
[docs] FRESHEST_CRL = CertificateExtensionOidData('2.5.29.46', None, 'freshestCRL', 'Freshest CRL')
[docs] INHIBIT_ANY_POLICY = CertificateExtensionOidData('2.5.29.54', 'iap', 'inhibitAnyPolicy','Inhibit Any Policy')
[docs] ISSUING_DISTRIBUTION_POINT = CertificateExtensionOidData( '2.5.29.28', None, 'issuingDistributionPoint', 'Issuing Distribution Point')
[docs] AUTHORITY_INFORMATION_ACCESS = CertificateExtensionOidData( '1.3.6.1.5.5.7.1.1', 'aia', 'authorityInformationAccess','Authority Information Access')
[docs] SUBJECT_INFORMATION_ACCESS = CertificateExtensionOidData( '1.3.6.1.5.5.7.1.11', 'sia', 'subjectInformationAccess','Subject Information Access')
[docs] OCSP_NO_CHECK = CertificateExtensionOidData('1.3.6.1.5.5.7.48.1.5', None, 'ocspNoCheck','OCSP No Check')
[docs] TLS_FEATURE = CertificateExtensionOidData('1.3.6.1.5.5.7.1.24', None, 'tlsFeature','TLS Feature')
[docs] CRL_NUMBER = CertificateExtensionOidData('2.5.29.20', None, 'crlNumber','CRL Number')
[docs] DELTA_CRL_INDICATOR = CertificateExtensionOidData('2.5.29.27', None, 'deltaCrlIndicator','Delta CRL Indicator')
[docs] PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS = CertificateExtensionOidData( '1.3.6.1.4.1.11129.2.4.2', None, 'precertSignedCertificateTimestamps', 'Precert Signed Certificate Timestamps', )
[docs] PRECERT_POISON = CertificateExtensionOidData('1.3.6.1.4.1.11129.2.4.3', None, 'precertPoison', 'Precert Poison')
[docs] SIGNED_CERTIFICATE_TIMESTAMPS = CertificateExtensionOidData( '1.3.6.1.4.1.11129.2.4.5', None, 'signedCertificateTimestamps', 'Signed Certificate Timestamps', )
[docs] MS_CERTIFICATE_TEMPLATE = CertificateExtensionOidData( '1.3.6.1.4.1.311.21.7', None, 'microsoftCertificateTemplate','Microsoft Certificate Template')
@property
[docs] def dotted_string(self) -> str: """Return the dotted string OID. Returns: The dotted string OID. """ return self.value.dotted_string
@property
[docs] def abbreviation(self) -> str | None: """Return the abbreviation for the NameOid, if any. Returns: The abbreviation, or None if not defined. """ return self.value.abbreviation
@property
[docs] def full_name(self) -> str: """Return the full name for the NameOid. Returns: The full name. """ return self.value.full_name
@property
[docs] def verbose_name(self) -> str: """Return the verbose name for display. Returns: The verbose name. """ return self.value.verbose_name
[docs] class ExtendedKeyUsageOid(enum.Enum): """OIDs for Extended Key Usage values."""
[docs] SERVER_AUTH = '1.3.6.1.5.5.7.3.1'
[docs] CLIENT_AUTH = '1.3.6.1.5.5.7.3.2'
[docs] CODE_SIGNING = '1.3.6.1.5.5.7.3.3'
[docs] EMAIL_PROTECTION = '1.3.6.1.5.5.7.3.4'
[docs] TIME_STAMPING = '1.3.6.1.5.5.7.3.8'
[docs] OCSP_SIGNING = '1.3.6.1.5.5.7.3.9'
[docs] ANY_EXTENDED_KEY_USAGE = '2.5.29.37.0'
[docs] SMARTCARD_LOGON = '1.3.6.1.4.1.311.20.2.2'
[docs] KERBEROS_PKINIT_KDC = '1.3.6.1.5.2.3.5'
[docs] IPSEC_IKE = '1.3.6.1.5.5.7.3.17'
[docs] BUNDLE_SECURITY = '1.3.6.1.5.5.7.3.35'
[docs] CERTIFICATE_TRANSPARENCY = '1.3.6.1.4.1.11129.2.4.4'