| # coding: utf-8 |
| # |
| # This file is part of pyasn1-modules software. |
| # |
| # Created by Stanisław Pitucha with asn1ate tool. |
| # Updated by Russ Housley for ORAddress Extension Attribute opentype support. |
| # Updated by Russ Housley for AlgorithmIdentifier opentype support. |
| # |
| # Copyright (c) 2005-2019, Ilya Etingof <[email protected]> |
| # License: http://snmplabs.com/pyasn1/license.html |
| # |
| # Internet X.509 Public Key Infrastructure Certificate and Certificate |
| # Revocation List (CRL) Profile |
| # |
| # ASN.1 source from: |
| # https://www.rfc-editor.org/rfc/rfc5280.txt |
| # |
| from pyasn1.type import char |
| from pyasn1.type import constraint |
| from pyasn1.type import namedtype |
| from pyasn1.type import namedval |
| from pyasn1.type import opentype |
| from pyasn1.type import tag |
| from pyasn1.type import univ |
| from pyasn1.type import useful |
| |
| MAX = float('inf') |
| |
| |
| def _buildOid(*components): |
| output = [] |
| for x in tuple(components): |
| if isinstance(x, univ.ObjectIdentifier): |
| output.extend(list(x)) |
| else: |
| output.append(int(x)) |
| |
| return univ.ObjectIdentifier(output) |
| |
| |
| ub_e163_4_sub_address_length = univ.Integer(40) |
| |
| ub_e163_4_number_length = univ.Integer(15) |
| |
| unformatted_postal_address = univ.Integer(16) |
| |
| |
| class TerminalType(univ.Integer): |
| pass |
| |
| |
| TerminalType.namedValues = namedval.NamedValues( |
| ('telex', 3), |
| ('teletex', 4), |
| ('g3-facsimile', 5), |
| ('g4-facsimile', 6), |
| ('ia5-terminal', 7), |
| ('videotex', 8) |
| ) |
| |
| |
| class Extension(univ.Sequence): |
| pass |
| |
| |
| Extension.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('extnID', univ.ObjectIdentifier()), |
| namedtype.DefaultedNamedType('critical', univ.Boolean().subtype(value=0)), |
| namedtype.NamedType('extnValue', univ.OctetString()) |
| ) |
| |
| |
| class Extensions(univ.SequenceOf): |
| pass |
| |
| |
| Extensions.componentType = Extension() |
| Extensions.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| physical_delivery_personal_name = univ.Integer(13) |
| |
| ub_unformatted_address_length = univ.Integer(180) |
| |
| ub_pds_parameter_length = univ.Integer(30) |
| |
| ub_pds_physical_address_lines = univ.Integer(6) |
| |
| |
| class UnformattedPostalAddress(univ.Set): |
| pass |
| |
| |
| UnformattedPostalAddress.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('printable-address', univ.SequenceOf(componentType=char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length)))), |
| namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_unformatted_address_length))) |
| ) |
| |
| ub_organization_name = univ.Integer(64) |
| |
| |
| class X520OrganizationName(univ.Choice): |
| pass |
| |
| |
| X520OrganizationName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))), |
| namedtype.NamedType('printableString', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))), |
| namedtype.NamedType('universalString', char.UniversalString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))), |
| namedtype.NamedType('utf8String', |
| char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))), |
| namedtype.NamedType('bmpString', |
| char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))) |
| ) |
| |
| ub_x121_address_length = univ.Integer(16) |
| |
| pds_name = univ.Integer(7) |
| |
| id_pkix = _buildOid(1, 3, 6, 1, 5, 5, 7) |
| |
| id_kp = _buildOid(id_pkix, 3) |
| |
| ub_postal_code_length = univ.Integer(16) |
| |
| |
| class PostalCode(univ.Choice): |
| pass |
| |
| |
| PostalCode.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('numeric-code', char.NumericString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_postal_code_length))), |
| namedtype.NamedType('printable-code', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_postal_code_length))) |
| ) |
| |
| ub_generation_qualifier_length = univ.Integer(3) |
| |
| unique_postal_name = univ.Integer(20) |
| |
| |
| class DomainComponent(char.IA5String): |
| pass |
| |
| |
| ub_domain_defined_attribute_value_length = univ.Integer(128) |
| |
| ub_match = univ.Integer(128) |
| |
| id_at = _buildOid(2, 5, 4) |
| |
| |
| class AttributeType(univ.ObjectIdentifier): |
| pass |
| |
| |
| id_at_organizationalUnitName = _buildOid(id_at, 11) |
| |
| terminal_type = univ.Integer(23) |
| |
| |
| class PDSParameter(univ.Set): |
| pass |
| |
| |
| PDSParameter.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('printable-string', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length))), |
| namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length))) |
| ) |
| |
| |
| class PhysicalDeliveryPersonalName(PDSParameter): |
| pass |
| |
| |
| ub_surname_length = univ.Integer(40) |
| |
| id_ad = _buildOid(id_pkix, 48) |
| |
| ub_domain_defined_attribute_type_length = univ.Integer(8) |
| |
| |
| class TeletexDomainDefinedAttribute(univ.Sequence): |
| pass |
| |
| |
| TeletexDomainDefinedAttribute.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('type', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))), |
| namedtype.NamedType('value', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_value_length))) |
| ) |
| |
| ub_domain_defined_attributes = univ.Integer(4) |
| |
| |
| class TeletexDomainDefinedAttributes(univ.SequenceOf): |
| pass |
| |
| |
| TeletexDomainDefinedAttributes.componentType = TeletexDomainDefinedAttribute() |
| TeletexDomainDefinedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_domain_defined_attributes) |
| |
| extended_network_address = univ.Integer(22) |
| |
| ub_locality_name = univ.Integer(128) |
| |
| |
| class X520LocalityName(univ.Choice): |
| pass |
| |
| |
| X520LocalityName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', |
| char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))), |
| namedtype.NamedType('printableString', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))), |
| namedtype.NamedType('universalString', char.UniversalString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))), |
| namedtype.NamedType('utf8String', |
| char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))), |
| namedtype.NamedType('bmpString', |
| char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))) |
| ) |
| |
| teletex_organization_name = univ.Integer(3) |
| |
| ub_given_name_length = univ.Integer(16) |
| |
| ub_initials_length = univ.Integer(5) |
| |
| |
| class PersonalName(univ.Set): |
| pass |
| |
| |
| PersonalName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('surname', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length)).subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('given-name', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length)).subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
| namedtype.OptionalNamedType('initials', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length)).subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), |
| namedtype.OptionalNamedType('generation-qualifier', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length)).subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))) |
| ) |
| |
| ub_organizational_unit_name_length = univ.Integer(32) |
| |
| |
| class OrganizationalUnitName(char.PrintableString): |
| pass |
| |
| |
| OrganizationalUnitName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length) |
| |
| id_at_generationQualifier = _buildOid(id_at, 44) |
| |
| |
| class Version(univ.Integer): |
| pass |
| |
| |
| Version.namedValues = namedval.NamedValues( |
| ('v1', 0), |
| ('v2', 1), |
| ('v3', 2) |
| ) |
| |
| |
| class CertificateSerialNumber(univ.Integer): |
| pass |
| |
| |
| algorithmIdentifierMap = {} |
| |
| |
| class AlgorithmIdentifier(univ.Sequence): |
| componentType = namedtype.NamedTypes( |
| namedtype.NamedType('algorithm', univ.ObjectIdentifier()), |
| namedtype.OptionalNamedType('parameters', univ.Any(), |
| openType=opentype.OpenType('algorithm', algorithmIdentifierMap) |
| ) |
| ) |
| |
| |
| class Time(univ.Choice): |
| pass |
| |
| |
| Time.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('utcTime', useful.UTCTime()), |
| namedtype.NamedType('generalTime', useful.GeneralizedTime()) |
| ) |
| |
| |
| class AttributeValue(univ.Any): |
| pass |
| |
| |
| certificateAttributesMap = {} |
| |
| |
| class AttributeTypeAndValue(univ.Sequence): |
| componentType = namedtype.NamedTypes( |
| namedtype.NamedType('type', AttributeType()), |
| namedtype.NamedType( |
| 'value', AttributeValue(), |
| openType=opentype.OpenType('type', certificateAttributesMap) |
| ) |
| ) |
| |
| |
| class RelativeDistinguishedName(univ.SetOf): |
| pass |
| |
| |
| RelativeDistinguishedName.componentType = AttributeTypeAndValue() |
| RelativeDistinguishedName.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| |
| class RDNSequence(univ.SequenceOf): |
| pass |
| |
| |
| RDNSequence.componentType = RelativeDistinguishedName() |
| |
| |
| class Name(univ.Choice): |
| pass |
| |
| |
| Name.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('rdnSequence', RDNSequence()) |
| ) |
| |
| |
| class TBSCertList(univ.Sequence): |
| pass |
| |
| |
| TBSCertList.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('version', Version()), |
| namedtype.NamedType('signature', AlgorithmIdentifier()), |
| namedtype.NamedType('issuer', Name()), |
| namedtype.NamedType('thisUpdate', Time()), |
| namedtype.OptionalNamedType('nextUpdate', Time()), |
| namedtype.OptionalNamedType( |
| 'revokedCertificates', univ.SequenceOf( |
| componentType=univ.Sequence( |
| componentType=namedtype.NamedTypes( |
| namedtype.NamedType('userCertificate', CertificateSerialNumber()), |
| namedtype.NamedType('revocationDate', Time()), |
| namedtype.OptionalNamedType('crlEntryExtensions', Extensions()) |
| ) |
| ) |
| ) |
| ), |
| namedtype.OptionalNamedType( |
| 'crlExtensions', Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) |
| ) |
| |
| |
| class CertificateList(univ.Sequence): |
| pass |
| |
| |
| CertificateList.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('tbsCertList', TBSCertList()), |
| namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()), |
| namedtype.NamedType('signature', univ.BitString()) |
| ) |
| |
| |
| class PhysicalDeliveryOfficeName(PDSParameter): |
| pass |
| |
| |
| ub_extension_attributes = univ.Integer(256) |
| |
| certificateExtensionsMap = { |
| } |
| |
| oraddressExtensionAttributeMap = { |
| } |
| |
| |
| class ExtensionAttribute(univ.Sequence): |
| componentType = namedtype.NamedTypes( |
| namedtype.NamedType( |
| 'extension-attribute-type', |
| univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, ub_extension_attributes)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.NamedType( |
| 'extension-attribute-value', |
| univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)), |
| openType=opentype.OpenType('extension-attribute-type', oraddressExtensionAttributeMap)) |
| ) |
| |
| id_qt = _buildOid(id_pkix, 2) |
| |
| id_qt_cps = _buildOid(id_qt, 1) |
| |
| id_at_stateOrProvinceName = _buildOid(id_at, 8) |
| |
| id_at_title = _buildOid(id_at, 12) |
| |
| id_at_serialNumber = _buildOid(id_at, 5) |
| |
| |
| class X520dnQualifier(char.PrintableString): |
| pass |
| |
| |
| class PosteRestanteAddress(PDSParameter): |
| pass |
| |
| |
| poste_restante_address = univ.Integer(19) |
| |
| |
| class UniqueIdentifier(univ.BitString): |
| pass |
| |
| |
| class Validity(univ.Sequence): |
| pass |
| |
| |
| Validity.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('notBefore', Time()), |
| namedtype.NamedType('notAfter', Time()) |
| ) |
| |
| |
| class SubjectPublicKeyInfo(univ.Sequence): |
| pass |
| |
| |
| SubjectPublicKeyInfo.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('algorithm', AlgorithmIdentifier()), |
| namedtype.NamedType('subjectPublicKey', univ.BitString()) |
| ) |
| |
| |
| class TBSCertificate(univ.Sequence): |
| pass |
| |
| |
| TBSCertificate.componentType = namedtype.NamedTypes( |
| namedtype.DefaultedNamedType('version', |
| Version().subtype(explicitTag=tag.Tag(tag.tagClassContext, |
| tag.tagFormatSimple, 0)).subtype(value="v1")), |
| namedtype.NamedType('serialNumber', CertificateSerialNumber()), |
| namedtype.NamedType('signature', AlgorithmIdentifier()), |
| namedtype.NamedType('issuer', Name()), |
| namedtype.NamedType('validity', Validity()), |
| namedtype.NamedType('subject', Name()), |
| namedtype.NamedType('subjectPublicKeyInfo', SubjectPublicKeyInfo()), |
| namedtype.OptionalNamedType('issuerUniqueID', UniqueIdentifier().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
| namedtype.OptionalNamedType('subjectUniqueID', UniqueIdentifier().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), |
| namedtype.OptionalNamedType('extensions', |
| Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))) |
| ) |
| |
| physical_delivery_office_name = univ.Integer(10) |
| |
| ub_name = univ.Integer(32768) |
| |
| |
| class X520name(univ.Choice): |
| pass |
| |
| |
| X520name.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', |
| char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))), |
| namedtype.NamedType('printableString', |
| char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))), |
| namedtype.NamedType('universalString', |
| char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))), |
| namedtype.NamedType('utf8String', |
| char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))), |
| namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))) |
| ) |
| |
| id_at_dnQualifier = _buildOid(id_at, 46) |
| |
| ub_serial_number = univ.Integer(64) |
| |
| ub_pseudonym = univ.Integer(128) |
| |
| pkcs_9 = _buildOid(1, 2, 840, 113549, 1, 9) |
| |
| |
| class X121Address(char.NumericString): |
| pass |
| |
| |
| X121Address.subtypeSpec = constraint.ValueSizeConstraint(1, ub_x121_address_length) |
| |
| |
| class NetworkAddress(X121Address): |
| pass |
| |
| |
| ub_integer_options = univ.Integer(256) |
| |
| id_at_commonName = _buildOid(id_at, 3) |
| |
| ub_organization_name_length = univ.Integer(64) |
| |
| id_ad_ocsp = _buildOid(id_ad, 1) |
| |
| ub_country_name_numeric_length = univ.Integer(3) |
| |
| ub_country_name_alpha_length = univ.Integer(2) |
| |
| |
| class PhysicalDeliveryCountryName(univ.Choice): |
| pass |
| |
| |
| PhysicalDeliveryCountryName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('x121-dcc-code', char.NumericString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_numeric_length, ub_country_name_numeric_length))), |
| namedtype.NamedType('iso-3166-alpha2-code', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_alpha_length, ub_country_name_alpha_length))) |
| ) |
| |
| id_emailAddress = _buildOid(pkcs_9, 1) |
| |
| common_name = univ.Integer(1) |
| |
| |
| class X520Pseudonym(univ.Choice): |
| pass |
| |
| |
| X520Pseudonym.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', |
| char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))), |
| namedtype.NamedType('printableString', |
| char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))), |
| namedtype.NamedType('universalString', |
| char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))), |
| namedtype.NamedType('utf8String', |
| char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))), |
| namedtype.NamedType('bmpString', |
| char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))) |
| ) |
| |
| ub_domain_name_length = univ.Integer(16) |
| |
| |
| class AdministrationDomainName(univ.Choice): |
| pass |
| |
| |
| AdministrationDomainName.tagSet = univ.Choice.tagSet.tagExplicitly( |
| tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 2)) |
| AdministrationDomainName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('numeric', char.NumericString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(0, ub_domain_name_length))), |
| namedtype.NamedType('printable', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(0, ub_domain_name_length))) |
| ) |
| |
| |
| class PresentationAddress(univ.Sequence): |
| pass |
| |
| |
| PresentationAddress.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('pSelector', univ.OctetString().subtype( |
| explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('sSelector', univ.OctetString().subtype( |
| explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
| namedtype.OptionalNamedType('tSelector', univ.OctetString().subtype( |
| explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), |
| namedtype.NamedType('nAddresses', univ.SetOf(componentType=univ.OctetString()).subtype( |
| explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))) |
| ) |
| |
| |
| class ExtendedNetworkAddress(univ.Choice): |
| pass |
| |
| |
| ExtendedNetworkAddress.componentType = namedtype.NamedTypes( |
| namedtype.NamedType( |
| 'e163-4-address', univ.Sequence( |
| componentType=namedtype.NamedTypes( |
| namedtype.NamedType('number', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_number_length)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('sub-address', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_sub_address_length)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
| ) |
| ) |
| ), |
| namedtype.NamedType('psap-address', PresentationAddress().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))) |
| ) |
| |
| |
| class TeletexOrganizationName(char.TeletexString): |
| pass |
| |
| |
| TeletexOrganizationName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organization_name_length) |
| |
| ub_terminal_id_length = univ.Integer(24) |
| |
| |
| class TerminalIdentifier(char.PrintableString): |
| pass |
| |
| |
| TerminalIdentifier.subtypeSpec = constraint.ValueSizeConstraint(1, ub_terminal_id_length) |
| |
| id_ad_caIssuers = _buildOid(id_ad, 2) |
| |
| id_at_countryName = _buildOid(id_at, 6) |
| |
| |
| class StreetAddress(PDSParameter): |
| pass |
| |
| |
| postal_code = univ.Integer(9) |
| |
| id_at_givenName = _buildOid(id_at, 42) |
| |
| ub_title = univ.Integer(64) |
| |
| |
| class ExtensionAttributes(univ.SetOf): |
| pass |
| |
| |
| ExtensionAttributes.componentType = ExtensionAttribute() |
| ExtensionAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_extension_attributes) |
| |
| ub_emailaddress_length = univ.Integer(255) |
| |
| id_ad_caRepository = _buildOid(id_ad, 5) |
| |
| |
| class ExtensionORAddressComponents(PDSParameter): |
| pass |
| |
| |
| ub_organizational_unit_name = univ.Integer(64) |
| |
| |
| class X520OrganizationalUnitName(univ.Choice): |
| pass |
| |
| |
| X520OrganizationalUnitName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))), |
| namedtype.NamedType('printableString', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))), |
| namedtype.NamedType('universalString', char.UniversalString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))), |
| namedtype.NamedType('utf8String', char.UTF8String().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))), |
| namedtype.NamedType('bmpString', char.BMPString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))) |
| ) |
| |
| |
| class LocalPostalAttributes(PDSParameter): |
| pass |
| |
| |
| teletex_organizational_unit_names = univ.Integer(5) |
| |
| |
| class X520Title(univ.Choice): |
| pass |
| |
| |
| X520Title.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', |
| char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))), |
| namedtype.NamedType('printableString', |
| char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))), |
| namedtype.NamedType('universalString', |
| char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))), |
| namedtype.NamedType('utf8String', |
| char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))), |
| namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))) |
| ) |
| |
| id_at_localityName = _buildOid(id_at, 7) |
| |
| id_at_initials = _buildOid(id_at, 43) |
| |
| ub_state_name = univ.Integer(128) |
| |
| |
| class X520StateOrProvinceName(univ.Choice): |
| pass |
| |
| |
| X520StateOrProvinceName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', |
| char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))), |
| namedtype.NamedType('printableString', |
| char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))), |
| namedtype.NamedType('universalString', |
| char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))), |
| namedtype.NamedType('utf8String', |
| char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))), |
| namedtype.NamedType('bmpString', |
| char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))) |
| ) |
| |
| physical_delivery_organization_name = univ.Integer(14) |
| |
| id_at_surname = _buildOid(id_at, 4) |
| |
| |
| class X520countryName(char.PrintableString): |
| pass |
| |
| |
| X520countryName.subtypeSpec = constraint.ValueSizeConstraint(2, 2) |
| |
| physical_delivery_office_number = univ.Integer(11) |
| |
| id_qt_unotice = _buildOid(id_qt, 2) |
| |
| |
| class X520SerialNumber(char.PrintableString): |
| pass |
| |
| |
| X520SerialNumber.subtypeSpec = constraint.ValueSizeConstraint(1, ub_serial_number) |
| |
| |
| class Attribute(univ.Sequence): |
| componentType = namedtype.NamedTypes( |
| namedtype.NamedType('type', AttributeType()), |
| namedtype.NamedType('values', |
| univ.SetOf(componentType=AttributeValue()), |
| openType=opentype.OpenType('type', certificateAttributesMap)) |
| ) |
| |
| ub_common_name = univ.Integer(64) |
| |
| id_pe = _buildOid(id_pkix, 1) |
| |
| |
| class ExtensionPhysicalDeliveryAddressComponents(PDSParameter): |
| pass |
| |
| |
| class EmailAddress(char.IA5String): |
| pass |
| |
| |
| EmailAddress.subtypeSpec = constraint.ValueSizeConstraint(1, ub_emailaddress_length) |
| |
| id_at_organizationName = _buildOid(id_at, 10) |
| |
| post_office_box_address = univ.Integer(18) |
| |
| |
| class BuiltInDomainDefinedAttribute(univ.Sequence): |
| pass |
| |
| |
| BuiltInDomainDefinedAttribute.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('type', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))), |
| namedtype.NamedType('value', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_value_length))) |
| ) |
| |
| |
| class BuiltInDomainDefinedAttributes(univ.SequenceOf): |
| pass |
| |
| |
| BuiltInDomainDefinedAttributes.componentType = BuiltInDomainDefinedAttribute() |
| BuiltInDomainDefinedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_domain_defined_attributes) |
| |
| id_at_pseudonym = _buildOid(id_at, 65) |
| |
| id_domainComponent = _buildOid(0, 9, 2342, 19200300, 100, 1, 25) |
| |
| |
| class X520CommonName(univ.Choice): |
| pass |
| |
| |
| X520CommonName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', |
| char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))), |
| namedtype.NamedType('printableString', |
| char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))), |
| namedtype.NamedType('universalString', |
| char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))), |
| namedtype.NamedType('utf8String', |
| char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))), |
| namedtype.NamedType('bmpString', |
| char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))) |
| ) |
| |
| extension_OR_address_components = univ.Integer(12) |
| |
| ub_organizational_units = univ.Integer(4) |
| |
| teletex_personal_name = univ.Integer(4) |
| |
| ub_numeric_user_id_length = univ.Integer(32) |
| |
| ub_common_name_length = univ.Integer(64) |
| |
| |
| class TeletexCommonName(char.TeletexString): |
| pass |
| |
| |
| TeletexCommonName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_common_name_length) |
| |
| |
| class PhysicalDeliveryOrganizationName(PDSParameter): |
| pass |
| |
| |
| extension_physical_delivery_address_components = univ.Integer(15) |
| |
| |
| class NumericUserIdentifier(char.NumericString): |
| pass |
| |
| |
| NumericUserIdentifier.subtypeSpec = constraint.ValueSizeConstraint(1, ub_numeric_user_id_length) |
| |
| |
| class CountryName(univ.Choice): |
| pass |
| |
| |
| CountryName.tagSet = univ.Choice.tagSet.tagExplicitly(tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 1)) |
| CountryName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('x121-dcc-code', char.NumericString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_numeric_length, ub_country_name_numeric_length))), |
| namedtype.NamedType('iso-3166-alpha2-code', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_alpha_length, ub_country_name_alpha_length))) |
| ) |
| |
| |
| class OrganizationName(char.PrintableString): |
| pass |
| |
| |
| OrganizationName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organization_name_length) |
| |
| |
| class OrganizationalUnitNames(univ.SequenceOf): |
| pass |
| |
| |
| OrganizationalUnitNames.componentType = OrganizationalUnitName() |
| OrganizationalUnitNames.sizeSpec = constraint.ValueSizeConstraint(1, ub_organizational_units) |
| |
| |
| class PrivateDomainName(univ.Choice): |
| pass |
| |
| |
| PrivateDomainName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('numeric', char.NumericString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_name_length))), |
| namedtype.NamedType('printable', char.PrintableString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_name_length))) |
| ) |
| |
| |
| class BuiltInStandardAttributes(univ.Sequence): |
| pass |
| |
| |
| BuiltInStandardAttributes.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('country-name', CountryName()), |
| namedtype.OptionalNamedType('administration-domain-name', AdministrationDomainName()), |
| namedtype.OptionalNamedType('network-address', NetworkAddress().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('terminal-identifier', TerminalIdentifier().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
| namedtype.OptionalNamedType('private-domain-name', PrivateDomainName().subtype( |
| explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2))), |
| namedtype.OptionalNamedType('organization-name', OrganizationName().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), |
| namedtype.OptionalNamedType('numeric-user-identifier', NumericUserIdentifier().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))), |
| namedtype.OptionalNamedType('personal-name', PersonalName().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))), |
| namedtype.OptionalNamedType('organizational-unit-names', OrganizationalUnitNames().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))) |
| ) |
| |
| |
| class ORAddress(univ.Sequence): |
| pass |
| |
| |
| ORAddress.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('built-in-standard-attributes', BuiltInStandardAttributes()), |
| namedtype.OptionalNamedType('built-in-domain-defined-attributes', BuiltInDomainDefinedAttributes()), |
| namedtype.OptionalNamedType('extension-attributes', ExtensionAttributes()) |
| ) |
| |
| |
| class DistinguishedName(RDNSequence): |
| pass |
| |
| |
| id_ad_timeStamping = _buildOid(id_ad, 3) |
| |
| |
| class PhysicalDeliveryOfficeNumber(PDSParameter): |
| pass |
| |
| |
| teletex_domain_defined_attributes = univ.Integer(6) |
| |
| |
| class UniquePostalName(PDSParameter): |
| pass |
| |
| |
| physical_delivery_country_name = univ.Integer(8) |
| |
| ub_pds_name_length = univ.Integer(16) |
| |
| |
| class PDSName(char.PrintableString): |
| pass |
| |
| |
| PDSName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_pds_name_length) |
| |
| |
| class TeletexPersonalName(univ.Set): |
| pass |
| |
| |
| TeletexPersonalName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('surname', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length)).subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('given-name', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length)).subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
| namedtype.OptionalNamedType('initials', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length)).subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), |
| namedtype.OptionalNamedType('generation-qualifier', char.TeletexString().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length)).subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))) |
| ) |
| |
| street_address = univ.Integer(17) |
| |
| |
| class PostOfficeBoxAddress(PDSParameter): |
| pass |
| |
| |
| local_postal_attributes = univ.Integer(21) |
| |
| |
| class DirectoryString(univ.Choice): |
| pass |
| |
| |
| DirectoryString.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('teletexString', |
| char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), |
| namedtype.NamedType('printableString', |
| char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), |
| namedtype.NamedType('universalString', |
| char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), |
| namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), |
| namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))) |
| ) |
| |
| teletex_common_name = univ.Integer(2) |
| |
| |
| class CommonName(char.PrintableString): |
| pass |
| |
| |
| CommonName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_common_name_length) |
| |
| |
| class Certificate(univ.Sequence): |
| pass |
| |
| |
| Certificate.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('tbsCertificate', TBSCertificate()), |
| namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()), |
| namedtype.NamedType('signature', univ.BitString()) |
| ) |
| |
| |
| class TeletexOrganizationalUnitName(char.TeletexString): |
| pass |
| |
| |
| TeletexOrganizationalUnitName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length) |
| |
| id_at_name = _buildOid(id_at, 41) |
| |
| |
| class TeletexOrganizationalUnitNames(univ.SequenceOf): |
| pass |
| |
| |
| TeletexOrganizationalUnitNames.componentType = TeletexOrganizationalUnitName() |
| TeletexOrganizationalUnitNames.sizeSpec = constraint.ValueSizeConstraint(1, ub_organizational_units) |
| |
| id_ce = _buildOid(2, 5, 29) |
| |
| id_ce_issuerAltName = _buildOid(id_ce, 18) |
| |
| |
| class SkipCerts(univ.Integer): |
| pass |
| |
| |
| SkipCerts.subtypeSpec = constraint.ValueRangeConstraint(0, MAX) |
| |
| |
| class CRLReason(univ.Enumerated): |
| pass |
| |
| |
| CRLReason.namedValues = namedval.NamedValues( |
| ('unspecified', 0), |
| ('keyCompromise', 1), |
| ('cACompromise', 2), |
| ('affiliationChanged', 3), |
| ('superseded', 4), |
| ('cessationOfOperation', 5), |
| ('certificateHold', 6), |
| ('removeFromCRL', 8), |
| ('privilegeWithdrawn', 9), |
| ('aACompromise', 10) |
| ) |
| |
| |
| class PrivateKeyUsagePeriod(univ.Sequence): |
| pass |
| |
| |
| PrivateKeyUsagePeriod.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('notBefore', useful.GeneralizedTime().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('notAfter', useful.GeneralizedTime().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
| ) |
| |
| |
| anotherNameMap = { |
| |
| } |
| |
| |
| class AnotherName(univ.Sequence): |
| componentType = namedtype.NamedTypes( |
| namedtype.NamedType('type-id', univ.ObjectIdentifier()), |
| namedtype.NamedType( |
| 'value', |
| univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)), |
| openType=opentype.OpenType('type-id', anotherNameMap) |
| ) |
| ) |
| |
| |
| class EDIPartyName(univ.Sequence): |
| pass |
| |
| |
| EDIPartyName.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('nameAssigner', DirectoryString().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), |
| namedtype.NamedType('partyName', DirectoryString().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))) |
| ) |
| |
| |
| class GeneralName(univ.Choice): |
| pass |
| |
| |
| GeneralName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('otherName', |
| AnotherName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), |
| namedtype.NamedType('rfc822Name', |
| char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
| namedtype.NamedType('dNSName', |
| char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), |
| namedtype.NamedType('x400Address', |
| ORAddress().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), |
| namedtype.NamedType('directoryName', |
| Name().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4))), |
| namedtype.NamedType('ediPartyName', |
| EDIPartyName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))), |
| namedtype.NamedType('uniformResourceIdentifier', |
| char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))), |
| namedtype.NamedType('iPAddress', |
| univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))), |
| namedtype.NamedType('registeredID', univ.ObjectIdentifier().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8))) |
| ) |
| |
| |
| class BaseDistance(univ.Integer): |
| pass |
| |
| |
| BaseDistance.subtypeSpec = constraint.ValueRangeConstraint(0, MAX) |
| |
| |
| class GeneralSubtree(univ.Sequence): |
| pass |
| |
| |
| GeneralSubtree.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('base', GeneralName()), |
| namedtype.DefaultedNamedType('minimum', BaseDistance().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)).subtype(value=0)), |
| namedtype.OptionalNamedType('maximum', BaseDistance().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
| ) |
| |
| |
| class GeneralNames(univ.SequenceOf): |
| pass |
| |
| |
| GeneralNames.componentType = GeneralName() |
| GeneralNames.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| |
| class DistributionPointName(univ.Choice): |
| pass |
| |
| |
| DistributionPointName.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('fullName', |
| GeneralNames().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.NamedType('nameRelativeToCRLIssuer', RelativeDistinguishedName().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
| ) |
| |
| |
| class ReasonFlags(univ.BitString): |
| pass |
| |
| |
| ReasonFlags.namedValues = namedval.NamedValues( |
| ('unused', 0), |
| ('keyCompromise', 1), |
| ('cACompromise', 2), |
| ('affiliationChanged', 3), |
| ('superseded', 4), |
| ('cessationOfOperation', 5), |
| ('certificateHold', 6), |
| ('privilegeWithdrawn', 7), |
| ('aACompromise', 8) |
| ) |
| |
| |
| class IssuingDistributionPoint(univ.Sequence): |
| pass |
| |
| |
| IssuingDistributionPoint.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), |
| namedtype.DefaultedNamedType('onlyContainsUserCerts', univ.Boolean().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)).subtype(value=0)), |
| namedtype.DefaultedNamedType('onlyContainsCACerts', univ.Boolean().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)).subtype(value=0)), |
| namedtype.OptionalNamedType('onlySomeReasons', ReasonFlags().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), |
| namedtype.DefaultedNamedType('indirectCRL', univ.Boolean().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)).subtype(value=0)), |
| namedtype.DefaultedNamedType('onlyContainsAttributeCerts', univ.Boolean().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5)).subtype(value=0)) |
| ) |
| |
| id_ce_certificatePolicies = _buildOid(id_ce, 32) |
| |
| id_kp_emailProtection = _buildOid(id_kp, 4) |
| |
| |
| class AccessDescription(univ.Sequence): |
| pass |
| |
| |
| AccessDescription.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('accessMethod', univ.ObjectIdentifier()), |
| namedtype.NamedType('accessLocation', GeneralName()) |
| ) |
| |
| |
| class IssuerAltName(GeneralNames): |
| pass |
| |
| |
| id_ce_cRLDistributionPoints = _buildOid(id_ce, 31) |
| |
| holdInstruction = _buildOid(2, 2, 840, 10040, 2) |
| |
| id_holdinstruction_callissuer = _buildOid(holdInstruction, 2) |
| |
| id_ce_subjectDirectoryAttributes = _buildOid(id_ce, 9) |
| |
| id_ce_issuingDistributionPoint = _buildOid(id_ce, 28) |
| |
| |
| class DistributionPoint(univ.Sequence): |
| pass |
| |
| |
| DistributionPoint.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), |
| namedtype.OptionalNamedType('reasons', ReasonFlags().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
| namedtype.OptionalNamedType('cRLIssuer', GeneralNames().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))) |
| ) |
| |
| |
| class CRLDistributionPoints(univ.SequenceOf): |
| pass |
| |
| |
| CRLDistributionPoints.componentType = DistributionPoint() |
| CRLDistributionPoints.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| |
| class GeneralSubtrees(univ.SequenceOf): |
| pass |
| |
| |
| GeneralSubtrees.componentType = GeneralSubtree() |
| GeneralSubtrees.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| |
| class NameConstraints(univ.Sequence): |
| pass |
| |
| |
| NameConstraints.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('permittedSubtrees', GeneralSubtrees().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
| ) |
| |
| |
| class SubjectDirectoryAttributes(univ.SequenceOf): |
| pass |
| |
| |
| SubjectDirectoryAttributes.componentType = Attribute() |
| SubjectDirectoryAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| id_kp_OCSPSigning = _buildOid(id_kp, 9) |
| |
| id_kp_timeStamping = _buildOid(id_kp, 8) |
| |
| |
| class DisplayText(univ.Choice): |
| pass |
| |
| |
| DisplayText.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('ia5String', char.IA5String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))), |
| namedtype.NamedType('visibleString', |
| char.VisibleString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))), |
| namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))), |
| namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))) |
| ) |
| |
| |
| class NoticeReference(univ.Sequence): |
| pass |
| |
| |
| NoticeReference.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('organization', DisplayText()), |
| namedtype.NamedType('noticeNumbers', univ.SequenceOf(componentType=univ.Integer())) |
| ) |
| |
| |
| class UserNotice(univ.Sequence): |
| pass |
| |
| |
| UserNotice.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('noticeRef', NoticeReference()), |
| namedtype.OptionalNamedType('explicitText', DisplayText()) |
| ) |
| |
| |
| class PolicyQualifierId(univ.ObjectIdentifier): |
| pass |
| |
| |
| policyQualifierInfoMap = { |
| |
| } |
| |
| |
| class PolicyQualifierInfo(univ.Sequence): |
| componentType = namedtype.NamedTypes( |
| namedtype.NamedType('policyQualifierId', PolicyQualifierId()), |
| namedtype.NamedType( |
| 'qualifier', univ.Any(), |
| openType=opentype.OpenType('policyQualifierId', policyQualifierInfoMap) |
| ) |
| ) |
| |
| |
| class CertPolicyId(univ.ObjectIdentifier): |
| pass |
| |
| |
| class PolicyInformation(univ.Sequence): |
| pass |
| |
| |
| PolicyInformation.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('policyIdentifier', CertPolicyId()), |
| namedtype.OptionalNamedType('policyQualifiers', univ.SequenceOf(componentType=PolicyQualifierInfo())) |
| ) |
| |
| |
| class CertificatePolicies(univ.SequenceOf): |
| pass |
| |
| |
| CertificatePolicies.componentType = PolicyInformation() |
| CertificatePolicies.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| |
| class SubjectAltName(GeneralNames): |
| pass |
| |
| |
| id_ce_basicConstraints = _buildOid(id_ce, 19) |
| |
| id_ce_authorityKeyIdentifier = _buildOid(id_ce, 35) |
| |
| id_kp_codeSigning = _buildOid(id_kp, 3) |
| |
| |
| class BasicConstraints(univ.Sequence): |
| pass |
| |
| |
| BasicConstraints.componentType = namedtype.NamedTypes( |
| namedtype.DefaultedNamedType('cA', univ.Boolean().subtype(value=0)), |
| namedtype.OptionalNamedType('pathLenConstraint', |
| univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, MAX))) |
| ) |
| |
| id_ce_certificateIssuer = _buildOid(id_ce, 29) |
| |
| |
| class PolicyMappings(univ.SequenceOf): |
| pass |
| |
| |
| PolicyMappings.componentType = univ.Sequence( |
| componentType=namedtype.NamedTypes( |
| namedtype.NamedType('issuerDomainPolicy', CertPolicyId()), |
| namedtype.NamedType('subjectDomainPolicy', CertPolicyId()) |
| ) |
| ) |
| |
| PolicyMappings.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| |
| class InhibitAnyPolicy(SkipCerts): |
| pass |
| |
| |
| anyPolicy = _buildOid(id_ce_certificatePolicies, 0) |
| |
| |
| class CRLNumber(univ.Integer): |
| pass |
| |
| |
| CRLNumber.subtypeSpec = constraint.ValueRangeConstraint(0, MAX) |
| |
| |
| class BaseCRLNumber(CRLNumber): |
| pass |
| |
| |
| id_ce_nameConstraints = _buildOid(id_ce, 30) |
| |
| id_kp_serverAuth = _buildOid(id_kp, 1) |
| |
| id_ce_freshestCRL = _buildOid(id_ce, 46) |
| |
| id_ce_cRLReasons = _buildOid(id_ce, 21) |
| |
| id_ce_extKeyUsage = _buildOid(id_ce, 37) |
| |
| |
| class KeyIdentifier(univ.OctetString): |
| pass |
| |
| |
| class AuthorityKeyIdentifier(univ.Sequence): |
| pass |
| |
| |
| AuthorityKeyIdentifier.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('keyIdentifier', KeyIdentifier().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('authorityCertIssuer', GeneralNames().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
| namedtype.OptionalNamedType('authorityCertSerialNumber', CertificateSerialNumber().subtype( |
| implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))) |
| ) |
| |
| |
| class FreshestCRL(CRLDistributionPoints): |
| pass |
| |
| |
| id_ce_policyConstraints = _buildOid(id_ce, 36) |
| |
| id_pe_authorityInfoAccess = _buildOid(id_pe, 1) |
| |
| |
| class AuthorityInfoAccessSyntax(univ.SequenceOf): |
| pass |
| |
| |
| AuthorityInfoAccessSyntax.componentType = AccessDescription() |
| AuthorityInfoAccessSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| id_holdinstruction_none = _buildOid(holdInstruction, 1) |
| |
| |
| class CPSuri(char.IA5String): |
| pass |
| |
| |
| id_pe_subjectInfoAccess = _buildOid(id_pe, 11) |
| |
| |
| class SubjectKeyIdentifier(KeyIdentifier): |
| pass |
| |
| |
| id_ce_subjectAltName = _buildOid(id_ce, 17) |
| |
| |
| class KeyPurposeId(univ.ObjectIdentifier): |
| pass |
| |
| |
| class ExtKeyUsageSyntax(univ.SequenceOf): |
| pass |
| |
| |
| ExtKeyUsageSyntax.componentType = KeyPurposeId() |
| ExtKeyUsageSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| |
| class HoldInstructionCode(univ.ObjectIdentifier): |
| pass |
| |
| |
| id_ce_deltaCRLIndicator = _buildOid(id_ce, 27) |
| |
| id_ce_keyUsage = _buildOid(id_ce, 15) |
| |
| id_ce_holdInstructionCode = _buildOid(id_ce, 23) |
| |
| |
| class SubjectInfoAccessSyntax(univ.SequenceOf): |
| pass |
| |
| |
| SubjectInfoAccessSyntax.componentType = AccessDescription() |
| SubjectInfoAccessSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX) |
| |
| |
| class InvalidityDate(useful.GeneralizedTime): |
| pass |
| |
| |
| class KeyUsage(univ.BitString): |
| pass |
| |
| |
| KeyUsage.namedValues = namedval.NamedValues( |
| ('digitalSignature', 0), |
| ('nonRepudiation', 1), |
| ('keyEncipherment', 2), |
| ('dataEncipherment', 3), |
| ('keyAgreement', 4), |
| ('keyCertSign', 5), |
| ('cRLSign', 6), |
| ('encipherOnly', 7), |
| ('decipherOnly', 8) |
| ) |
| |
| id_ce_invalidityDate = _buildOid(id_ce, 24) |
| |
| id_ce_policyMappings = _buildOid(id_ce, 33) |
| |
| anyExtendedKeyUsage = _buildOid(id_ce_extKeyUsage, 0) |
| |
| id_ce_privateKeyUsagePeriod = _buildOid(id_ce, 16) |
| |
| id_ce_cRLNumber = _buildOid(id_ce, 20) |
| |
| |
| class CertificateIssuer(GeneralNames): |
| pass |
| |
| |
| id_holdinstruction_reject = _buildOid(holdInstruction, 3) |
| |
| |
| class PolicyConstraints(univ.Sequence): |
| pass |
| |
| |
| PolicyConstraints.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('requireExplicitPolicy', |
| SkipCerts().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('inhibitPolicyMapping', |
| SkipCerts().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
| ) |
| |
| id_kp_clientAuth = _buildOid(id_kp, 2) |
| |
| id_ce_subjectKeyIdentifier = _buildOid(id_ce, 14) |
| |
| id_ce_inhibitAnyPolicy = _buildOid(id_ce, 54) |
| |
| # map of ORAddress ExtensionAttribute type to ExtensionAttribute value |
| |
| _oraddressExtensionAttributeMapUpdate = { |
| common_name: CommonName(), |
| teletex_common_name: TeletexCommonName(), |
| teletex_organization_name: TeletexOrganizationName(), |
| teletex_personal_name: TeletexPersonalName(), |
| teletex_organizational_unit_names: TeletexOrganizationalUnitNames(), |
| pds_name: PDSName(), |
| physical_delivery_country_name: PhysicalDeliveryCountryName(), |
| postal_code: PostalCode(), |
| physical_delivery_office_name: PhysicalDeliveryOfficeName(), |
| physical_delivery_office_number: PhysicalDeliveryOfficeNumber(), |
| extension_OR_address_components: ExtensionORAddressComponents(), |
| physical_delivery_personal_name: PhysicalDeliveryPersonalName(), |
| physical_delivery_organization_name: PhysicalDeliveryOrganizationName(), |
| extension_physical_delivery_address_components: ExtensionPhysicalDeliveryAddressComponents(), |
| unformatted_postal_address: UnformattedPostalAddress(), |
| street_address: StreetAddress(), |
| post_office_box_address: PostOfficeBoxAddress(), |
| poste_restante_address: PosteRestanteAddress(), |
| unique_postal_name: UniquePostalName(), |
| local_postal_attributes: LocalPostalAttributes(), |
| extended_network_address: ExtendedNetworkAddress(), |
| terminal_type: TerminalType(), |
| teletex_domain_defined_attributes: TeletexDomainDefinedAttributes(), |
| } |
| |
| oraddressExtensionAttributeMap.update(_oraddressExtensionAttributeMapUpdate) |
| |
| |
| # map of AttributeType -> AttributeValue |
| |
| _certificateAttributesMapUpdate = { |
| id_at_name: X520name(), |
| id_at_surname: X520name(), |
| id_at_givenName: X520name(), |
| id_at_initials: X520name(), |
| id_at_generationQualifier: X520name(), |
| id_at_commonName: X520CommonName(), |
| id_at_localityName: X520LocalityName(), |
| id_at_stateOrProvinceName: X520StateOrProvinceName(), |
| id_at_organizationName: X520OrganizationName(), |
| id_at_organizationalUnitName: X520OrganizationalUnitName(), |
| id_at_title: X520Title(), |
| id_at_dnQualifier: X520dnQualifier(), |
| id_at_countryName: X520countryName(), |
| id_at_serialNumber: X520SerialNumber(), |
| id_at_pseudonym: X520Pseudonym(), |
| id_domainComponent: DomainComponent(), |
| id_emailAddress: EmailAddress(), |
| } |
| |
| certificateAttributesMap.update(_certificateAttributesMapUpdate) |
| |
| |
| # map of Certificate Extension OIDs to Extensions |
| |
| _certificateExtensionsMap = { |
| id_ce_authorityKeyIdentifier: AuthorityKeyIdentifier(), |
| id_ce_subjectKeyIdentifier: SubjectKeyIdentifier(), |
| id_ce_keyUsage: KeyUsage(), |
| id_ce_privateKeyUsagePeriod: PrivateKeyUsagePeriod(), |
| id_ce_certificatePolicies: CertificatePolicies(), |
| id_ce_policyMappings: PolicyMappings(), |
| id_ce_subjectAltName: SubjectAltName(), |
| id_ce_issuerAltName: IssuerAltName(), |
| id_ce_subjectDirectoryAttributes: SubjectDirectoryAttributes(), |
| id_ce_basicConstraints: BasicConstraints(), |
| id_ce_nameConstraints: NameConstraints(), |
| id_ce_policyConstraints: PolicyConstraints(), |
| id_ce_extKeyUsage: ExtKeyUsageSyntax(), |
| id_ce_cRLDistributionPoints: CRLDistributionPoints(), |
| id_pe_authorityInfoAccess: AuthorityInfoAccessSyntax(), |
| id_ce_cRLNumber: univ.Integer(), |
| id_ce_deltaCRLIndicator: BaseCRLNumber(), |
| id_ce_issuingDistributionPoint: IssuingDistributionPoint(), |
| id_ce_cRLReasons: CRLReason(), |
| id_ce_holdInstructionCode: univ.ObjectIdentifier(), |
| id_ce_invalidityDate: useful.GeneralizedTime(), |
| id_ce_certificateIssuer: GeneralNames(), |
| } |
| |
| certificateExtensionsMap.update(_certificateExtensionsMap) |