Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rfc2459.py1340 linesDownload Raw Back to pyasn1_modules
1#2# This file is part of pyasn1-modules software.3#4# Updated by Russ Housley to resolve the TODO regarding the Certificate5#   Policies Certificate Extension.6#7# Copyright (c) 2005-2020, Ilya Etingof <etingof@gmail.com>8# License: http://snmplabs.com/pyasn1/license.html9#10# X.509 message syntax11#12# ASN.1 source from:13# http://www.trl.ibm.com/projects/xml/xss4j/data/asn1/grammars/x509.asn14# http://www.ietf.org/rfc/rfc2459.txt15#16# Sample captures from:17# http://wiki.wireshark.org/SampleCaptures/18#19from pyasn1.type import char20from pyasn1.type import constraint21from pyasn1.type import namedtype22from pyasn1.type import namedval23from pyasn1.type import opentype24from pyasn1.type import tag25from pyasn1.type import univ26from pyasn1.type import useful27 28MAX = float('inf')29 30#31# PKIX1Explicit8832#33 34# Upper Bounds35ub_name = univ.Integer(32768)36ub_common_name = univ.Integer(64)37ub_locality_name = univ.Integer(128)38ub_state_name = univ.Integer(128)39ub_organization_name = univ.Integer(64)40ub_organizational_unit_name = univ.Integer(64)41ub_title = univ.Integer(64)42ub_match = univ.Integer(128)43ub_emailaddress_length = univ.Integer(128)44ub_common_name_length = univ.Integer(64)45ub_country_name_alpha_length = univ.Integer(2)46ub_country_name_numeric_length = univ.Integer(3)47ub_domain_defined_attributes = univ.Integer(4)48ub_domain_defined_attribute_type_length = univ.Integer(8)49ub_domain_defined_attribute_value_length = univ.Integer(128)50ub_domain_name_length = univ.Integer(16)51ub_extension_attributes = univ.Integer(256)52ub_e163_4_number_length = univ.Integer(15)53ub_e163_4_sub_address_length = univ.Integer(40)54ub_generation_qualifier_length = univ.Integer(3)55ub_given_name_length = univ.Integer(16)56ub_initials_length = univ.Integer(5)57ub_integer_options = univ.Integer(256)58ub_numeric_user_id_length = univ.Integer(32)59ub_organization_name_length = univ.Integer(64)60ub_organizational_unit_name_length = univ.Integer(32)61ub_organizational_units = univ.Integer(4)62ub_pds_name_length = univ.Integer(16)63ub_pds_parameter_length = univ.Integer(30)64ub_pds_physical_address_lines = univ.Integer(6)65ub_postal_code_length = univ.Integer(16)66ub_surname_length = univ.Integer(40)67ub_terminal_id_length = univ.Integer(24)68ub_unformatted_address_length = univ.Integer(180)69ub_x121_address_length = univ.Integer(16)70 71 72class UniversalString(char.UniversalString):73    pass74 75 76class BMPString(char.BMPString):77    pass78 79 80class UTF8String(char.UTF8String):81    pass82 83 84id_pkix = univ.ObjectIdentifier('1.3.6.1.5.5.7')85id_pe = univ.ObjectIdentifier('1.3.6.1.5.5.7.1')86id_qt = univ.ObjectIdentifier('1.3.6.1.5.5.7.2')87id_kp = univ.ObjectIdentifier('1.3.6.1.5.5.7.3')88id_ad = univ.ObjectIdentifier('1.3.6.1.5.5.7.48')89 90id_qt_cps = univ.ObjectIdentifier('1.3.6.1.5.5.7.2.1')91id_qt_unotice = univ.ObjectIdentifier('1.3.6.1.5.5.7.2.2')92 93id_ad_ocsp = univ.ObjectIdentifier('1.3.6.1.5.5.7.48.1')94id_ad_caIssuers = univ.ObjectIdentifier('1.3.6.1.5.5.7.48.2')95 96 97 98 99id_at = univ.ObjectIdentifier('2.5.4')100id_at_name = univ.ObjectIdentifier('2.5.4.41')101# preserve misspelled variable for compatibility102id_at_sutname = id_at_surname = univ.ObjectIdentifier('2.5.4.4')103id_at_givenName = univ.ObjectIdentifier('2.5.4.42')104id_at_initials = univ.ObjectIdentifier('2.5.4.43')105id_at_generationQualifier = univ.ObjectIdentifier('2.5.4.44')106 107 108class X520name(univ.Choice):109    componentType = namedtype.NamedTypes(110        namedtype.NamedType('teletexString',111                            char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))),112        namedtype.NamedType('printableString',113                            char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))),114        namedtype.NamedType('universalString',115                            char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))),116        namedtype.NamedType('utf8String',117                            char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))),118        namedtype.NamedType('bmpString',119                            char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name)))120    )121 122 123id_at_commonName = univ.ObjectIdentifier('2.5.4.3')124 125 126class X520CommonName(univ.Choice):127    componentType = namedtype.NamedTypes(128        namedtype.NamedType('teletexString', char.TeletexString().subtype(129            subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))),130        namedtype.NamedType('printableString', char.PrintableString().subtype(131            subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))),132        namedtype.NamedType('universalString', char.UniversalString().subtype(133            subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))),134        namedtype.NamedType('utf8String',135                            char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))),136        namedtype.NamedType('bmpString',137                            char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name)))138    )139 140 141id_at_localityName = univ.ObjectIdentifier('2.5.4.7')142 143 144class X520LocalityName(univ.Choice):145    componentType = namedtype.NamedTypes(146        namedtype.NamedType('teletexString', char.TeletexString().subtype(147            subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))),148        namedtype.NamedType('printableString', char.PrintableString().subtype(149            subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))),150        namedtype.NamedType('universalString', char.UniversalString().subtype(151            subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))),152        namedtype.NamedType('utf8String',153                            char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))),154        namedtype.NamedType('bmpString',155                            char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name)))156    )157 158 159id_at_stateOrProvinceName = univ.ObjectIdentifier('2.5.4.8')160 161 162class X520StateOrProvinceName(univ.Choice):163    componentType = namedtype.NamedTypes(164        namedtype.NamedType('teletexString',165                            char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))),166        namedtype.NamedType('printableString', char.PrintableString().subtype(167            subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))),168        namedtype.NamedType('universalString', char.UniversalString().subtype(169            subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))),170        namedtype.NamedType('utf8String',171                            char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))),172        namedtype.NamedType('bmpString',173                            char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name)))174    )175 176 177id_at_organizationName = univ.ObjectIdentifier('2.5.4.10')178 179 180class X520OrganizationName(univ.Choice):181    componentType = namedtype.NamedTypes(182        namedtype.NamedType('teletexString', char.TeletexString().subtype(183            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))),184        namedtype.NamedType('printableString', char.PrintableString().subtype(185            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))),186        namedtype.NamedType('universalString', char.UniversalString().subtype(187            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))),188        namedtype.NamedType('utf8String', char.UTF8String().subtype(189            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))),190        namedtype.NamedType('bmpString', char.BMPString().subtype(191            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name)))192    )193 194 195id_at_organizationalUnitName = univ.ObjectIdentifier('2.5.4.11')196 197 198class X520OrganizationalUnitName(univ.Choice):199    componentType = namedtype.NamedTypes(200        namedtype.NamedType('teletexString', char.TeletexString().subtype(201            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))),202        namedtype.NamedType('printableString', char.PrintableString().subtype(203            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))),204        namedtype.NamedType('universalString', char.UniversalString().subtype(205            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))),206        namedtype.NamedType('utf8String', char.UTF8String().subtype(207            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))),208        namedtype.NamedType('bmpString', char.BMPString().subtype(209            subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name)))210    )211 212 213id_at_title = univ.ObjectIdentifier('2.5.4.12')214 215 216class X520Title(univ.Choice):217    componentType = namedtype.NamedTypes(218        namedtype.NamedType('teletexString',219                            char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))),220        namedtype.NamedType('printableString',221                            char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))),222        namedtype.NamedType('universalString',223                            char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))),224        namedtype.NamedType('utf8String',225                            char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))),226        namedtype.NamedType('bmpString',227                            char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title)))228    )229 230 231id_at_dnQualifier = univ.ObjectIdentifier('2.5.4.46')232 233 234class X520dnQualifier(char.PrintableString):235    pass236 237 238id_at_countryName = univ.ObjectIdentifier('2.5.4.6')239 240 241class X520countryName(char.PrintableString):242    subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(2, 2)243 244 245pkcs_9 = univ.ObjectIdentifier('1.2.840.113549.1.9')246 247emailAddress = univ.ObjectIdentifier('1.2.840.113549.1.9.1')248 249 250class Pkcs9email(char.IA5String):251    subtypeSpec = char.IA5String.subtypeSpec + constraint.ValueSizeConstraint(1, ub_emailaddress_length)252 253 254# ----255 256class DSAPrivateKey(univ.Sequence):257    """PKIX compliant DSA private key structure"""258    componentType = namedtype.NamedTypes(259        namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 0)))),260        namedtype.NamedType('p', univ.Integer()),261        namedtype.NamedType('q', univ.Integer()),262        namedtype.NamedType('g', univ.Integer()),263        namedtype.NamedType('public', univ.Integer()),264        namedtype.NamedType('private', univ.Integer())265    )266 267 268# ----269 270 271class DirectoryString(univ.Choice):272    componentType = namedtype.NamedTypes(273        namedtype.NamedType('teletexString',274                            char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),275        namedtype.NamedType('printableString',276                            char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),277        namedtype.NamedType('universalString',278                            char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),279        namedtype.NamedType('utf8String',280                            char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),281        namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),282        namedtype.NamedType('ia5String', char.IA5String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX)))283        # hm, this should not be here!? XXX284    )285 286 287# certificate and CRL specific structures begin here288 289class AlgorithmIdentifier(univ.Sequence):290    componentType = namedtype.NamedTypes(291        namedtype.NamedType('algorithm', univ.ObjectIdentifier()),292        namedtype.OptionalNamedType('parameters', univ.Any())293    )294 295 296 297# Algorithm OIDs and parameter structures298 299pkcs_1 = univ.ObjectIdentifier('1.2.840.113549.1.1')300rsaEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.1')301md2WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.2')302md5WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.4')303sha1WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.5')304id_dsa_with_sha1 = univ.ObjectIdentifier('1.2.840.10040.4.3')305 306 307class Dss_Sig_Value(univ.Sequence):308    componentType = namedtype.NamedTypes(309        namedtype.NamedType('r', univ.Integer()),310        namedtype.NamedType('s', univ.Integer())311    )312 313 314dhpublicnumber = univ.ObjectIdentifier('1.2.840.10046.2.1')315 316 317class ValidationParms(univ.Sequence):318    componentType = namedtype.NamedTypes(319        namedtype.NamedType('seed', univ.BitString()),320        namedtype.NamedType('pgenCounter', univ.Integer())321    )322 323 324class DomainParameters(univ.Sequence):325    componentType = namedtype.NamedTypes(326        namedtype.NamedType('p', univ.Integer()),327        namedtype.NamedType('g', univ.Integer()),328        namedtype.NamedType('q', univ.Integer()),329        namedtype.NamedType('j', univ.Integer()),330        namedtype.OptionalNamedType('validationParms', ValidationParms())331    )332 333 334id_dsa = univ.ObjectIdentifier('1.2.840.10040.4.1')335 336 337class Dss_Parms(univ.Sequence):338    componentType = namedtype.NamedTypes(339        namedtype.NamedType('p', univ.Integer()),340        namedtype.NamedType('q', univ.Integer()),341        namedtype.NamedType('g', univ.Integer())342    )343 344 345# x400 address syntax starts here346 347teletex_domain_defined_attributes = univ.Integer(6)348 349 350class TeletexDomainDefinedAttribute(univ.Sequence):351    componentType = namedtype.NamedTypes(352        namedtype.NamedType('type', char.TeletexString().subtype(353            subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))),354        namedtype.NamedType('value', char.TeletexString())355    )356 357 358class TeletexDomainDefinedAttributes(univ.SequenceOf):359    componentType = TeletexDomainDefinedAttribute()360    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, ub_domain_defined_attributes)361 362 363terminal_type = univ.Integer(23)364 365 366class TerminalType(univ.Integer):367    subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint(0, ub_integer_options)368    namedValues = namedval.NamedValues(369        ('telex', 3),370        ('teletelex', 4),371        ('g3-facsimile', 5),372        ('g4-facsimile', 6),373        ('ia5-terminal', 7),374        ('videotex', 8)375    )376 377 378class PresentationAddress(univ.Sequence):379    componentType = namedtype.NamedTypes(380        namedtype.OptionalNamedType('pSelector', univ.OctetString().subtype(381            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),382        namedtype.OptionalNamedType('sSelector', univ.OctetString().subtype(383            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),384        namedtype.OptionalNamedType('tSelector', univ.OctetString().subtype(385            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),386        namedtype.OptionalNamedType('nAddresses', univ.SetOf(componentType=univ.OctetString()).subtype(387            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3),388            subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),389    )390 391 392extended_network_address = univ.Integer(22)393 394 395class E163_4_address(univ.Sequence):396    componentType = namedtype.NamedTypes(397        namedtype.NamedType('number', char.NumericString().subtype(398            subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_number_length),399            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),400        namedtype.OptionalNamedType('sub-address', char.NumericString().subtype(401            subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_sub_address_length),402            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))403    )404 405 406class ExtendedNetworkAddress(univ.Choice):407    componentType = namedtype.NamedTypes(408        namedtype.NamedType('e163-4-address', E163_4_address()),409        namedtype.NamedType('psap-address', PresentationAddress().subtype(410            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))411    )412 413 414class PDSParameter(univ.Set):415    componentType = namedtype.NamedTypes(416        namedtype.OptionalNamedType('printable-string', char.PrintableString().subtype(417            subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length))),418        namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype(419            subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length)))420    )421 422 423local_postal_attributes = univ.Integer(21)424 425 426class LocalPostalAttributes(PDSParameter):427    pass428 429 430class UniquePostalName(PDSParameter):431    pass432 433 434unique_postal_name = univ.Integer(20)435 436poste_restante_address = univ.Integer(19)437 438 439class PosteRestanteAddress(PDSParameter):440    pass441 442 443post_office_box_address = univ.Integer(18)444 445 446class PostOfficeBoxAddress(PDSParameter):447    pass448 449 450street_address = univ.Integer(17)451 452 453class StreetAddress(PDSParameter):454    pass455 456 457class UnformattedPostalAddress(univ.Set):458    componentType = namedtype.NamedTypes(459        namedtype.OptionalNamedType('printable-address', univ.SequenceOf(componentType=char.PrintableString().subtype(460            subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length)).subtype(461            subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_physical_address_lines)))),462        namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype(463            subtypeSpec=constraint.ValueSizeConstraint(1, ub_unformatted_address_length)))464    )465 466 467physical_delivery_office_name = univ.Integer(10)468 469 470class PhysicalDeliveryOfficeName(PDSParameter):471    pass472 473 474physical_delivery_office_number = univ.Integer(11)475 476 477class PhysicalDeliveryOfficeNumber(PDSParameter):478    pass479 480 481extension_OR_address_components = univ.Integer(12)482 483 484class ExtensionORAddressComponents(PDSParameter):485    pass486 487 488physical_delivery_personal_name = univ.Integer(13)489 490 491class PhysicalDeliveryPersonalName(PDSParameter):492    pass493 494 495physical_delivery_organization_name = univ.Integer(14)496 497 498class PhysicalDeliveryOrganizationName(PDSParameter):499    pass500 501 502extension_physical_delivery_address_components = univ.Integer(15)503 504 505class ExtensionPhysicalDeliveryAddressComponents(PDSParameter):506    pass507 508 509unformatted_postal_address = univ.Integer(16)510 511postal_code = univ.Integer(9)512 513 514class PostalCode(univ.Choice):515    componentType = namedtype.NamedTypes(516        namedtype.NamedType('numeric-code', char.NumericString().subtype(517            subtypeSpec=constraint.ValueSizeConstraint(1, ub_postal_code_length))),518        namedtype.NamedType('printable-code', char.PrintableString().subtype(519            subtypeSpec=constraint.ValueSizeConstraint(1, ub_postal_code_length)))520    )521 522 523class PhysicalDeliveryCountryName(univ.Choice):524    componentType = namedtype.NamedTypes(525        namedtype.NamedType('x121-dcc-code', char.NumericString().subtype(526            subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_numeric_length,527                                                       ub_country_name_numeric_length))),528        namedtype.NamedType('iso-3166-alpha2-code', char.PrintableString().subtype(529            subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_alpha_length, ub_country_name_alpha_length)))530    )531 532 533class PDSName(char.PrintableString):534    subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_pds_name_length)535 536 537physical_delivery_country_name = univ.Integer(8)538 539 540class TeletexOrganizationalUnitName(char.TeletexString):541    subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length)542 543 544pds_name = univ.Integer(7)545 546teletex_organizational_unit_names = univ.Integer(5)547 548 549class TeletexOrganizationalUnitNames(univ.SequenceOf):550    componentType = TeletexOrganizationalUnitName()551    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, ub_organizational_units)552 553 554teletex_personal_name = univ.Integer(4)555 556 557class TeletexPersonalName(univ.Set):558    componentType = namedtype.NamedTypes(559        namedtype.NamedType('surname', char.TeletexString().subtype(560            subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length),561            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),562        namedtype.OptionalNamedType('given-name', char.TeletexString().subtype(563            subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length),564            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),565        namedtype.OptionalNamedType('initials', char.TeletexString().subtype(566            subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length),567            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),568        namedtype.OptionalNamedType('generation-qualifier', char.TeletexString().subtype(569            subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length),570            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))571    )572 573 574teletex_organization_name = univ.Integer(3)575 576 577class TeletexOrganizationName(char.TeletexString):578    subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organization_name_length)579 580 581teletex_common_name = univ.Integer(2)582 583 584class TeletexCommonName(char.TeletexString):585    subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_common_name_length)586 587 588class CommonName(char.PrintableString):589    subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_common_name_length)590 591 592common_name = univ.Integer(1)593 594 595class ExtensionAttribute(univ.Sequence):596    componentType = namedtype.NamedTypes(597        namedtype.NamedType('extension-attribute-type', univ.Integer().subtype(598            subtypeSpec=constraint.ValueSizeConstraint(0, ub_extension_attributes),599            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),600        namedtype.NamedType('extension-attribute-value',601                            univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))602    )603 604 605class ExtensionAttributes(univ.SetOf):606    componentType = ExtensionAttribute()607    sizeSpec = univ.SetOf.sizeSpec + constraint.ValueSizeConstraint(1, ub_extension_attributes)608 609 610class BuiltInDomainDefinedAttribute(univ.Sequence):611    componentType = namedtype.NamedTypes(612        namedtype.NamedType('type', char.PrintableString().subtype(613            subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))),614        namedtype.NamedType('value', char.PrintableString().subtype(615            subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_value_length)))616    )617 618 619class BuiltInDomainDefinedAttributes(univ.SequenceOf):620    componentType = BuiltInDomainDefinedAttribute()621    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, ub_domain_defined_attributes)622 623 624class OrganizationalUnitName(char.PrintableString):625    subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length)626 627 628class OrganizationalUnitNames(univ.SequenceOf):629    componentType = OrganizationalUnitName()630    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, ub_organizational_units)631 632 633class PersonalName(univ.Set):634    componentType = namedtype.NamedTypes(635        namedtype.NamedType('surname', char.PrintableString().subtype(636            subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length),637            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),638        namedtype.OptionalNamedType('given-name', char.PrintableString().subtype(639            subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length),640            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),641        namedtype.OptionalNamedType('initials', char.PrintableString().subtype(642            subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length),643            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),644        namedtype.OptionalNamedType('generation-qualifier', char.PrintableString().subtype(645            subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length),646            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))647    )648 649 650class NumericUserIdentifier(char.NumericString):651    subtypeSpec = char.NumericString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_numeric_user_id_length)652 653 654class OrganizationName(char.PrintableString):655    subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organization_name_length)656 657 658class PrivateDomainName(univ.Choice):659    componentType = namedtype.NamedTypes(660        namedtype.NamedType('numeric', char.NumericString().subtype(661            subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_name_length))),662        namedtype.NamedType('printable', char.PrintableString().subtype(663            subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_name_length)))664    )665 666 667class TerminalIdentifier(char.PrintableString):668    subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_terminal_id_length)669 670 671class X121Address(char.NumericString):672    subtypeSpec = char.NumericString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_x121_address_length)673 674 675class NetworkAddress(X121Address):676    pass677 678 679class AdministrationDomainName(univ.Choice):680    tagSet = univ.Choice.tagSet.tagExplicitly(681        tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 2)682    )683    componentType = namedtype.NamedTypes(684        namedtype.NamedType('numeric', char.NumericString().subtype(685            subtypeSpec=constraint.ValueSizeConstraint(0, ub_domain_name_length))),686        namedtype.NamedType('printable', char.PrintableString().subtype(687            subtypeSpec=constraint.ValueSizeConstraint(0, ub_domain_name_length)))688    )689 690 691class CountryName(univ.Choice):692    tagSet = univ.Choice.tagSet.tagExplicitly(693        tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 1)694    )695    componentType = namedtype.NamedTypes(696        namedtype.NamedType('x121-dcc-code', char.NumericString().subtype(697            subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_numeric_length,698                                                       ub_country_name_numeric_length))),699        namedtype.NamedType('iso-3166-alpha2-code', char.PrintableString().subtype(700            subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_alpha_length, ub_country_name_alpha_length)))701    )702 703 704class BuiltInStandardAttributes(univ.Sequence):705    componentType = namedtype.NamedTypes(706        namedtype.OptionalNamedType('country-name', CountryName()),707        namedtype.OptionalNamedType('administration-domain-name', AdministrationDomainName()),708        namedtype.OptionalNamedType('network-address', NetworkAddress().subtype(709            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),710        namedtype.OptionalNamedType('terminal-identifier', TerminalIdentifier().subtype(711            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),712        namedtype.OptionalNamedType('private-domain-name', PrivateDomainName().subtype(713            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),714        namedtype.OptionalNamedType('organization-name', OrganizationName().subtype(715            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),716        namedtype.OptionalNamedType('numeric-user-identifier', NumericUserIdentifier().subtype(717            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),718        namedtype.OptionalNamedType('personal-name', PersonalName().subtype(719            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),720        namedtype.OptionalNamedType('organizational-unit-names', OrganizationalUnitNames().subtype(721            explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6)))722    )723 724 725class ORAddress(univ.Sequence):726    componentType = namedtype.NamedTypes(727        namedtype.NamedType('built-in-standard-attributes', BuiltInStandardAttributes()),728        namedtype.OptionalNamedType('built-in-domain-defined-attributes', BuiltInDomainDefinedAttributes()),729        namedtype.OptionalNamedType('extension-attributes', ExtensionAttributes())730    )731 732 733#734# PKIX1Implicit88735#736 737id_ce_invalidityDate = univ.ObjectIdentifier('2.5.29.24')738 739 740class InvalidityDate(useful.GeneralizedTime):741    pass742 743 744id_holdinstruction_none = univ.ObjectIdentifier('2.2.840.10040.2.1')745id_holdinstruction_callissuer = univ.ObjectIdentifier('2.2.840.10040.2.2')746id_holdinstruction_reject = univ.ObjectIdentifier('2.2.840.10040.2.3')747 748holdInstruction = univ.ObjectIdentifier('2.2.840.10040.2')749 750id_ce_holdInstructionCode = univ.ObjectIdentifier('2.5.29.23')751 752 753class HoldInstructionCode(univ.ObjectIdentifier):754    pass755 756 757id_ce_cRLReasons = univ.ObjectIdentifier('2.5.29.21')758 759 760class CRLReason(univ.Enumerated):761    namedValues = namedval.NamedValues(762        ('unspecified', 0),763        ('keyCompromise', 1),764        ('cACompromise', 2),765        ('affiliationChanged', 3),766        ('superseded', 4),767        ('cessationOfOperation', 5),768        ('certificateHold', 6),769        ('removeFromCRL', 8)770    )771 772 773id_ce_cRLNumber = univ.ObjectIdentifier('2.5.29.20')774 775 776class CRLNumber(univ.Integer):777    subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint(0, MAX)778 779 780class BaseCRLNumber(CRLNumber):781    pass782 783 784id_kp_serverAuth = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.1')785id_kp_clientAuth = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.2')786id_kp_codeSigning = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.3')787id_kp_emailProtection = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.4')788id_kp_ipsecEndSystem = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.5')789id_kp_ipsecTunnel = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.6')790id_kp_ipsecUser = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.7')791id_kp_timeStamping = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.8')792id_pe_authorityInfoAccess = univ.ObjectIdentifier('1.3.6.1.5.5.7.1.1')793id_ce_extKeyUsage = univ.ObjectIdentifier('2.5.29.37')794 795 796class KeyPurposeId(univ.ObjectIdentifier):797    pass798 799 800class ExtKeyUsageSyntax(univ.SequenceOf):801    componentType = KeyPurposeId()802    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)803 804 805class ReasonFlags(univ.BitString):806    namedValues = namedval.NamedValues(807        ('unused', 0),808        ('keyCompromise', 1),809        ('cACompromise', 2),810        ('affiliationChanged', 3),811        ('superseded', 4),812        ('cessationOfOperation', 5),813        ('certificateHold', 6)814    )815 816 817class SkipCerts(univ.Integer):818    subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint(0, MAX)819 820 821id_ce_policyConstraints = univ.ObjectIdentifier('2.5.29.36')822 823 824class PolicyConstraints(univ.Sequence):825    componentType = namedtype.NamedTypes(826        namedtype.OptionalNamedType('requireExplicitPolicy', SkipCerts().subtype(827            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),828        namedtype.OptionalNamedType('inhibitPolicyMapping', SkipCerts().subtype(829            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))830    )831 832 833id_ce_basicConstraints = univ.ObjectIdentifier('2.5.29.19')834 835 836class BasicConstraints(univ.Sequence):837    componentType = namedtype.NamedTypes(838        namedtype.DefaultedNamedType('cA', univ.Boolean(False)),839        namedtype.OptionalNamedType('pathLenConstraint',840                                    univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, MAX)))841    )842 843 844id_ce_subjectDirectoryAttributes = univ.ObjectIdentifier('2.5.29.9')845 846 847class EDIPartyName(univ.Sequence):848    componentType = namedtype.NamedTypes(849        namedtype.OptionalNamedType('nameAssigner', DirectoryString().subtype(850            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),851        namedtype.NamedType('partyName',852                            DirectoryString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))853    )854 855 856 857id_ce_deltaCRLIndicator = univ.ObjectIdentifier('2.5.29.27')858 859 860 861class BaseDistance(univ.Integer):862    subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint(0, MAX)863 864 865id_ce_cRLDistributionPoints = univ.ObjectIdentifier('2.5.29.31')866 867 868id_ce_issuingDistributionPoint = univ.ObjectIdentifier('2.5.29.28')869 870 871 872 873id_ce_nameConstraints = univ.ObjectIdentifier('2.5.29.30')874 875 876class DisplayText(univ.Choice):877    componentType = namedtype.NamedTypes(878        namedtype.NamedType('visibleString',879                            char.VisibleString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))),880        namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))),881        namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200)))882    )883 884 885class NoticeReference(univ.Sequence):886    componentType = namedtype.NamedTypes(887        namedtype.NamedType('organization', DisplayText()),888        namedtype.NamedType('noticeNumbers', univ.SequenceOf(componentType=univ.Integer()))889    )890 891 892class UserNotice(univ.Sequence):893    componentType = namedtype.NamedTypes(894        namedtype.OptionalNamedType('noticeRef', NoticeReference()),895        namedtype.OptionalNamedType('explicitText', DisplayText())896    )897 898 899class CPSuri(char.IA5String):900    pass901 902 903class PolicyQualifierId(univ.ObjectIdentifier):904    subtypeSpec = univ.ObjectIdentifier.subtypeSpec + constraint.SingleValueConstraint(id_qt_cps, id_qt_unotice)905 906 907class CertPolicyId(univ.ObjectIdentifier):908    pass909 910 911class PolicyQualifierInfo(univ.Sequence):912    componentType = namedtype.NamedTypes(913        namedtype.NamedType('policyQualifierId', PolicyQualifierId()),914        namedtype.NamedType('qualifier', univ.Any())915    )916 917 918id_ce_certificatePolicies = univ.ObjectIdentifier('2.5.29.32')919 920 921class PolicyInformation(univ.Sequence):922    componentType = namedtype.NamedTypes(923        namedtype.NamedType('policyIdentifier', CertPolicyId()),924        namedtype.OptionalNamedType('policyQualifiers', univ.SequenceOf(componentType=PolicyQualifierInfo()).subtype(925            subtypeSpec=constraint.ValueSizeConstraint(1, MAX)))926    )927 928 929class CertificatePolicies(univ.SequenceOf):930    componentType = PolicyInformation()931    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)932 933 934id_ce_policyMappings = univ.ObjectIdentifier('2.5.29.33')935 936 937class PolicyMapping(univ.Sequence):938    componentType = namedtype.NamedTypes(939        namedtype.NamedType('issuerDomainPolicy', CertPolicyId()),940        namedtype.NamedType('subjectDomainPolicy', CertPolicyId())941    )942 943 944class PolicyMappings(univ.SequenceOf):945    componentType = PolicyMapping()946    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)947 948 949id_ce_privateKeyUsagePeriod = univ.ObjectIdentifier('2.5.29.16')950 951 952class PrivateKeyUsagePeriod(univ.Sequence):953    componentType = namedtype.NamedTypes(954        namedtype.OptionalNamedType('notBefore', useful.GeneralizedTime().subtype(955            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),956        namedtype.OptionalNamedType('notAfter', useful.GeneralizedTime().subtype(957            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))958    )959 960 961id_ce_keyUsage = univ.ObjectIdentifier('2.5.29.15')962 963 964class KeyUsage(univ.BitString):965    namedValues = namedval.NamedValues(966        ('digitalSignature', 0),967        ('nonRepudiation', 1),968        ('keyEncipherment', 2),969        ('dataEncipherment', 3),970        ('keyAgreement', 4),971        ('keyCertSign', 5),972        ('cRLSign', 6),973        ('encipherOnly', 7),974        ('decipherOnly', 8)975    )976 977 978id_ce = univ.ObjectIdentifier('2.5.29')979 980id_ce_authorityKeyIdentifier = univ.ObjectIdentifier('2.5.29.35')981 982 983class KeyIdentifier(univ.OctetString):984    pass985 986 987id_ce_subjectKeyIdentifier = univ.ObjectIdentifier('2.5.29.14')988 989 990class SubjectKeyIdentifier(KeyIdentifier):991    pass992 993 994id_ce_certificateIssuer = univ.ObjectIdentifier('2.5.29.29')995 996 997id_ce_subjectAltName = univ.ObjectIdentifier('2.5.29.17')998 999 1000id_ce_issuerAltName = univ.ObjectIdentifier('2.5.29.18')1001 1002 1003class AttributeValue(univ.Any):1004    pass1005 1006 1007class AttributeType(univ.ObjectIdentifier):1008    pass1009 1010certificateAttributesMap = {}1011 1012 1013class AttributeTypeAndValue(univ.Sequence):1014    componentType = namedtype.NamedTypes(1015        namedtype.NamedType('type', AttributeType()),1016        namedtype.NamedType('value', AttributeValue(),1017                            openType=opentype.OpenType('type', certificateAttributesMap))1018    )1019 1020 1021class Attribute(univ.Sequence):1022    componentType = namedtype.NamedTypes(1023        namedtype.NamedType('type', AttributeType()),1024        namedtype.NamedType('vals', univ.SetOf(componentType=AttributeValue()))1025    )1026 1027 1028class SubjectDirectoryAttributes(univ.SequenceOf):1029    componentType = Attribute()1030    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)1031 1032 1033class RelativeDistinguishedName(univ.SetOf):1034    componentType = AttributeTypeAndValue()1035 1036 1037class RDNSequence(univ.SequenceOf):1038    componentType = RelativeDistinguishedName()1039 1040 1041class Name(univ.Choice):1042    componentType = namedtype.NamedTypes(1043        namedtype.NamedType('', RDNSequence())1044    )1045 1046class CertificateSerialNumber(univ.Integer):1047    pass1048 1049 1050class AnotherName(univ.Sequence):1051    componentType = namedtype.NamedTypes(1052        namedtype.NamedType('type-id', univ.ObjectIdentifier()),1053        namedtype.NamedType('value',1054                            univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))1055    )1056 1057 1058class GeneralName(univ.Choice):1059    componentType = namedtype.NamedTypes(1060        namedtype.NamedType('otherName',1061                            AnotherName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),1062        namedtype.NamedType('rfc822Name',1063                            char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),1064        namedtype.NamedType('dNSName',1065                            char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),1066        namedtype.NamedType('x400Address',1067                            ORAddress().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),1068        namedtype.NamedType('directoryName',1069                            Name().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),1070        namedtype.NamedType('ediPartyName',1071                            EDIPartyName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),1072        namedtype.NamedType('uniformResourceIdentifier',1073                            char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),1074        namedtype.NamedType('iPAddress', univ.OctetString().subtype(1075            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),1076        namedtype.NamedType('registeredID', univ.ObjectIdentifier().subtype(1077            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))1078    )1079 1080 1081class GeneralNames(univ.SequenceOf):1082    componentType = GeneralName()1083    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)1084 1085 1086class AccessDescription(univ.Sequence):1087    componentType = namedtype.NamedTypes(1088        namedtype.NamedType('accessMethod', univ.ObjectIdentifier()),1089        namedtype.NamedType('accessLocation', GeneralName())1090    )1091 1092 1093class AuthorityInfoAccessSyntax(univ.SequenceOf):1094    componentType = AccessDescription()1095    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)1096 1097 1098class AuthorityKeyIdentifier(univ.Sequence):1099    componentType = namedtype.NamedTypes(1100        namedtype.OptionalNamedType('keyIdentifier', KeyIdentifier().subtype(1101            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),1102        namedtype.OptionalNamedType('authorityCertIssuer', GeneralNames().subtype(1103            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),1104        namedtype.OptionalNamedType('authorityCertSerialNumber', CertificateSerialNumber().subtype(1105            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))1106    )1107 1108 1109class DistributionPointName(univ.Choice):1110    componentType = namedtype.NamedTypes(1111        namedtype.NamedType('fullName', GeneralNames().subtype(1112            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),1113        namedtype.NamedType('nameRelativeToCRLIssuer', RelativeDistinguishedName().subtype(1114            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))1115    )1116 1117 1118class DistributionPoint(univ.Sequence):1119    componentType = namedtype.NamedTypes(1120        namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype(1121            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),1122        namedtype.OptionalNamedType('reasons', ReasonFlags().subtype(1123            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),1124        namedtype.OptionalNamedType('cRLIssuer', GeneralNames().subtype(1125            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2)))1126    )1127 1128 1129class CRLDistPointsSyntax(univ.SequenceOf):1130    componentType = DistributionPoint()1131    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)1132 1133 1134class IssuingDistributionPoint(univ.Sequence):1135    componentType = namedtype.NamedTypes(1136        namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype(1137            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),1138        namedtype.NamedType('onlyContainsUserCerts', univ.Boolean(False).subtype(1139            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),1140        namedtype.NamedType('onlyContainsCACerts', univ.Boolean(False).subtype(1141            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),1142        namedtype.OptionalNamedType('onlySomeReasons', ReasonFlags().subtype(1143            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),1144        namedtype.NamedType('indirectCRL', univ.Boolean(False).subtype(1145            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)))1146    )1147 1148 1149class GeneralSubtree(univ.Sequence):1150    componentType = namedtype.NamedTypes(1151        namedtype.NamedType('base', GeneralName()),1152        namedtype.DefaultedNamedType('minimum', BaseDistance(0).subtype(1153            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),1154        namedtype.OptionalNamedType('maximum', BaseDistance().subtype(1155            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))1156    )1157 1158 1159class GeneralSubtrees(univ.SequenceOf):1160    componentType = GeneralSubtree()1161    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)1162 1163 1164class NameConstraints(univ.Sequence):1165    componentType = namedtype.NamedTypes(1166        namedtype.OptionalNamedType('permittedSubtrees', GeneralSubtrees().subtype(1167            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),1168        namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype(1169            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))1170    )1171 1172 1173class CertificateIssuer(GeneralNames):1174    pass1175 1176 1177class SubjectAltName(GeneralNames):1178    pass1179 1180 1181class IssuerAltName(GeneralNames):1182    pass1183 1184 1185certificateExtensionsMap = {}1186 1187 1188class Extension(univ.Sequence):1189    componentType = namedtype.NamedTypes(1190        namedtype.NamedType('extnID', univ.ObjectIdentifier()),1191        namedtype.DefaultedNamedType('critical', univ.Boolean('False')),1192        namedtype.NamedType('extnValue', univ.OctetString(),1193                            openType=opentype.OpenType('extnID', certificateExtensionsMap))1194    )1195 1196 1197class Extensions(univ.SequenceOf):1198    componentType = Extension()1199    sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)1200 

Showing the first 1,200 of 1340 lines. Download the file for the rest.

codekingpro/portable-devtools · Team Ai