NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

rfc2459.py (42214B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\pyasn1_modules\rfc2459.py
      2 from pyasn1.type import tag, namedtype, namedval, univ, constraint, char, useful
      3 MAX = 64
      4 ub_name = univ.Integer(32768)
      5 ub_common_name = univ.Integer(64)
      6 ub_locality_name = univ.Integer(128)
      7 ub_state_name = univ.Integer(128)
      8 ub_organization_name = univ.Integer(64)
      9 ub_organizational_unit_name = univ.Integer(64)
     10 ub_title = univ.Integer(64)
     11 ub_match = univ.Integer(128)
     12 ub_emailaddress_length = univ.Integer(128)
     13 ub_common_name_length = univ.Integer(64)
     14 ub_country_name_alpha_length = univ.Integer(2)
     15 ub_country_name_numeric_length = univ.Integer(3)
     16 ub_domain_defined_attributes = univ.Integer(4)
     17 ub_domain_defined_attribute_type_length = univ.Integer(8)
     18 ub_domain_defined_attribute_value_length = univ.Integer(128)
     19 ub_domain_name_length = univ.Integer(16)
     20 ub_extension_attributes = univ.Integer(256)
     21 ub_e163_4_number_length = univ.Integer(15)
     22 ub_e163_4_sub_address_length = univ.Integer(40)
     23 ub_generation_qualifier_length = univ.Integer(3)
     24 ub_given_name_length = univ.Integer(16)
     25 ub_initials_length = univ.Integer(5)
     26 ub_integer_options = univ.Integer(256)
     27 ub_numeric_user_id_length = univ.Integer(32)
     28 ub_organization_name_length = univ.Integer(64)
     29 ub_organizational_unit_name_length = univ.Integer(32)
     30 ub_organizational_units = univ.Integer(4)
     31 ub_pds_name_length = univ.Integer(16)
     32 ub_pds_parameter_length = univ.Integer(30)
     33 ub_pds_physical_address_lines = univ.Integer(6)
     34 ub_postal_code_length = univ.Integer(16)
     35 ub_surname_length = univ.Integer(40)
     36 ub_terminal_id_length = univ.Integer(24)
     37 ub_unformatted_address_length = univ.Integer(180)
     38 ub_x121_address_length = univ.Integer(16)
     39 
     40 class UniversalString(char.UniversalString):
     41     pass
     42 
     43 
     44 class BMPString(char.BMPString):
     45     pass
     46 
     47 
     48 class UTF8String(char.UTF8String):
     49     pass
     50 
     51 
     52 id_pkix = univ.ObjectIdentifier('1.3.6.1.5.5.7')
     53 id_pe = univ.ObjectIdentifier('1.3.6.1.5.5.7.1')
     54 id_qt = univ.ObjectIdentifier('1.3.6.1.5.5.7.2')
     55 id_kp = univ.ObjectIdentifier('1.3.6.1.5.5.7.3')
     56 id_ad = univ.ObjectIdentifier('1.3.6.1.5.5.7.48')
     57 id_qt_cps = univ.ObjectIdentifier('1.3.6.1.5.5.7.2.1')
     58 id_qt_unotice = univ.ObjectIdentifier('1.3.6.1.5.5.7.2.2')
     59 id_ad_ocsp = univ.ObjectIdentifier('1.3.6.1.5.5.7.48.1')
     60 id_ad_caIssuers = univ.ObjectIdentifier('1.3.6.1.5.5.7.48.2')
     61 
     62 class AttributeValue(univ.Any):
     63     pass
     64 
     65 
     66 class AttributeType(univ.ObjectIdentifier):
     67     pass
     68 
     69 
     70 class AttributeTypeAndValue(univ.Sequence):
     71     componentType = namedtype.NamedTypes(namedtype.NamedType('type', AttributeType()), namedtype.NamedType('value', AttributeValue()))
     72 
     73 
     74 class Attribute(univ.Sequence):
     75     componentType = namedtype.NamedTypes(namedtype.NamedType('type', AttributeType()), namedtype.NamedType('vals', univ.SetOf(componentType=AttributeValue())))
     76 
     77 
     78 id_at = univ.ObjectIdentifier('2.5.4')
     79 id_at_name = univ.ObjectIdentifier('2.5.4.41')
     80 id_at_sutname = id_at_surname = univ.ObjectIdentifier('2.5.4.4')
     81 id_at_givenName = univ.ObjectIdentifier('2.5.4.42')
     82 id_at_initials = univ.ObjectIdentifier('2.5.4.43')
     83 id_at_generationQualifier = univ.ObjectIdentifier('2.5.4.44')
     84 
     85 class X520name(univ.Choice):
     86     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))))
     87 
     88 
     89 id_at_commonName = univ.ObjectIdentifier('2.5.4.3')
     90 
     91 class X520CommonName(univ.Choice):
     92     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))))
     93 
     94 
     95 id_at_localityName = univ.ObjectIdentifier('2.5.4.7')
     96 
     97 class X520LocalityName(univ.Choice):
     98     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))))
     99 
    100 
    101 id_at_stateOrProvinceName = univ.ObjectIdentifier('2.5.4.8')
    102 
    103 class X520StateOrProvinceName(univ.Choice):
    104     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))))
    105 
    106 
    107 id_at_organizationName = univ.ObjectIdentifier('2.5.4.10')
    108 
    109 class X520OrganizationName(univ.Choice):
    110     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))))
    111 
    112 
    113 id_at_organizationalUnitName = univ.ObjectIdentifier('2.5.4.11')
    114 
    115 class X520OrganizationalUnitName(univ.Choice):
    116     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))))
    117 
    118 
    119 id_at_title = univ.ObjectIdentifier('2.5.4.12')
    120 
    121 class X520Title(univ.Choice):
    122     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))))
    123 
    124 
    125 id_at_dnQualifier = univ.ObjectIdentifier('2.5.4.46')
    126 
    127 class X520dnQualifier(char.PrintableString):
    128     pass
    129 
    130 
    131 id_at_countryName = univ.ObjectIdentifier('2.5.4.6')
    132 
    133 class X520countryName(char.PrintableString):
    134     subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(2, 2)
    135 
    136 
    137 pkcs_9 = univ.ObjectIdentifier('1.2.840.113549.1.9')
    138 emailAddress = univ.ObjectIdentifier('1.2.840.113549.1.9.1')
    139 
    140 class Pkcs9email(char.IA5String):
    141     subtypeSpec = char.IA5String.subtypeSpec + constraint.ValueSizeConstraint(1, ub_emailaddress_length)
    142 
    143 
    144 class DSAPrivateKey(univ.Sequence):
    145     componentType = namedtype.NamedTypes(namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 0)))), namedtype.NamedType('p', univ.Integer()), namedtype.NamedType('q', univ.Integer()), namedtype.NamedType('g', univ.Integer()), namedtype.NamedType('public', univ.Integer()), namedtype.NamedType('private', univ.Integer()))
    146 
    147 
    148 class RelativeDistinguishedName(univ.SetOf):
    149     componentType = AttributeTypeAndValue()
    150 
    151 
    152 class RDNSequence(univ.SequenceOf):
    153     componentType = RelativeDistinguishedName()
    154 
    155 
    156 class Name(univ.Choice):
    157     componentType = namedtype.NamedTypes(namedtype.NamedType('', RDNSequence()))
    158 
    159 
    160 class DirectoryString(univ.Choice):
    161     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))), namedtype.NamedType('ia5String', char.IA5String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))))
    162 
    163 
    164 class AlgorithmIdentifier(univ.Sequence):
    165     componentType = namedtype.NamedTypes(namedtype.NamedType('algorithm', univ.ObjectIdentifier()), namedtype.OptionalNamedType('parameters', univ.Any()))
    166 
    167 
    168 class Extension(univ.Sequence):
    169     componentType = namedtype.NamedTypes(namedtype.NamedType('extnID', univ.ObjectIdentifier()), namedtype.DefaultedNamedType('critical', univ.Boolean('False')), namedtype.NamedType('extnValue', univ.Any()))
    170 
    171 
    172 class Extensions(univ.SequenceOf):
    173     componentType = Extension()
    174     sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX)
    175 
    176 
    177 class SubjectPublicKeyInfo(univ.Sequence):
    178     componentType = namedtype.NamedTypes(namedtype.NamedType('algorithm', AlgorithmIdentifier()), namedtype.NamedType('subjectPublicKey', univ.BitString()))
    179 
    180 
    181 class UniqueIdentifier(univ.BitString):
    182     pass
    183 
    184 
    185 class Time(univ.Choice):
    186     componentType = namedtype.NamedTypes(namedtype.NamedType('utcTime', useful.UTCTime()), namedtype.NamedType('generalTime', useful.GeneralizedTime()))
    187 
    188 
    189 class Validity(univ.Sequence):
    190     componentType = namedtype.NamedTypes(namedtype.NamedType('notBefore', Time()), namedtype.NamedType('notAfter', Time()))
    191 
    192 
    193 class CertificateSerialNumber(univ.Integer):
    194     pass
    195 
    196 
    197 class Version(univ.Integer):
    198     namedValues = namedval.NamedValues(('v1', 0), ('v2', 1), ('v3', 2))
    199 
    200 
    201 class TBSCertificate(univ.Sequence):
    202     componentType = namedtype.NamedTypes(namedtype.DefaultedNamedType('version', Version('v1').subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), 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))))
    203 
    204 
    205 class Certificate(univ.Sequence):
    206     componentType = namedtype.NamedTypes(namedtype.NamedType('tbsCertificate', TBSCertificate()), namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()), namedtype.NamedType('signatureValue', univ.BitString()))
    207 
    208 
    209 class RevokedCertificate(univ.Sequence):
    210     componentType = namedtype.NamedTypes(namedtype.NamedType('userCertificate', CertificateSerialNumber()), namedtype.NamedType('revocationDate', Time()), namedtype.OptionalNamedType('crlEntryExtensions', Extensions()))
    211 
    212 
    213 class TBSCertList(univ.Sequence):
    214     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=RevokedCertificate())), namedtype.OptionalNamedType('crlExtensions', Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))))
    215 
    216 
    217 class CertificateList(univ.Sequence):
    218     componentType = namedtype.NamedTypes(namedtype.NamedType('tbsCertList', TBSCertList()), namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()), namedtype.NamedType('signature', univ.BitString()))
    219 
    220 
    221 pkcs_1 = univ.ObjectIdentifier('1.2.840.113549.1.1')
    222 rsaEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.1')
    223 md2WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.2')
    224 md5WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.4')
    225 sha1WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.5')
    226 id_dsa_with_sha1 = univ.ObjectIdentifier('1.2.840.10040.4.3')
    227 
    228 class Dss_Sig_Value(univ.Sequence):
    229     componentType = namedtype.NamedTypes(namedtype.NamedType('r', univ.Integer()), namedtype.NamedType('s', univ.Integer()))
    230 
    231 
    232 dhpublicnumber = univ.ObjectIdentifier('1.2.840.10046.2.1')
    233 
    234 class ValidationParms(univ.Sequence):
    235     componentType = namedtype.NamedTypes(namedtype.NamedType('seed', univ.BitString()), namedtype.NamedType('pgenCounter', univ.Integer()))
    236 
    237 
    238 class DomainParameters(univ.Sequence):
    239     componentType = namedtype.NamedTypes(namedtype.NamedType('p', univ.Integer()), namedtype.NamedType('g', univ.Integer()), namedtype.NamedType('q', univ.Integer()), namedtype.NamedType('j', univ.Integer()), namedtype.OptionalNamedType('validationParms', ValidationParms()))
    240 
    241 
    242 id_dsa = univ.ObjectIdentifier('1.2.840.10040.4.1')
    243 
    244 class Dss_Parms(univ.Sequence):
    245     componentType = namedtype.NamedTypes(namedtype.NamedType('p', univ.Integer()), namedtype.NamedType('q', univ.Integer()), namedtype.NamedType('g', univ.Integer()))
    246 
    247 
    248 teletex_domain_defined_attributes = univ.Integer(6)
    249 
    250 class TeletexDomainDefinedAttribute(univ.Sequence):
    251     componentType = namedtype.NamedTypes(namedtype.NamedType('type', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))), namedtype.NamedType('value', char.TeletexString()))
    252 
    253 
    254 class TeletexDomainDefinedAttributes(univ.SequenceOf):
    255     componentType = TeletexDomainDefinedAttribute()
    256     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_domain_defined_attributes)
    257 
    258 
    259 terminal_type = univ.Integer(23)
    260 
    261 class TerminalType(univ.Integer):
    262     subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint(0, ub_integer_options)
    263     namedValues = namedval.NamedValues(('telex', 3), ('teletelex', 4), ('g3-facsimile', 5), ('g4-facsimile', 6), ('ia5-terminal', 7), ('videotex', 8))
    264 
    265 
    266 class PresentationAddress(univ.Sequence):
    267     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.OptionalNamedType('nAddresses', univ.SetOf(componentType=univ.OctetString()).subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3), subtypeSpec=constraint.ValueSizeConstraint(1, MAX))))
    268 
    269 
    270 extended_network_address = univ.Integer(22)
    271 
    272 class E163_4_address(univ.Sequence):
    273     componentType = namedtype.NamedTypes(namedtype.NamedType('number', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_number_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('sub-address', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_sub_address_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))))
    274 
    275 
    276 class ExtendedNetworkAddress(univ.Choice):
    277     componentType = namedtype.NamedTypes(namedtype.NamedType('e163-4-address', E163_4_address()), namedtype.NamedType('psap-address', PresentationAddress().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))))
    278 
    279 
    280 class PDSParameter(univ.Set):
    281     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))))
    282 
    283 
    284 local_postal_attributes = univ.Integer(21)
    285 
    286 class LocalPostalAttributes(PDSParameter):
    287     pass
    288 
    289 
    290 class UniquePostalName(PDSParameter):
    291     pass
    292 
    293 
    294 unique_postal_name = univ.Integer(20)
    295 poste_restante_address = univ.Integer(19)
    296 
    297 class PosteRestanteAddress(PDSParameter):
    298     pass
    299 
    300 
    301 post_office_box_address = univ.Integer(18)
    302 
    303 class PostOfficeBoxAddress(PDSParameter):
    304     pass
    305 
    306 
    307 street_address = univ.Integer(17)
    308 
    309 class StreetAddress(PDSParameter):
    310     pass
    311 
    312 
    313 class UnformattedPostalAddress(univ.Set):
    314     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('printable-address', univ.SequenceOf(componentType=char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length)).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_physical_address_lines)))), namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_unformatted_address_length))))
    315 
    316 
    317 physical_delivery_office_name = univ.Integer(10)
    318 
    319 class PhysicalDeliveryOfficeName(PDSParameter):
    320     pass
    321 
    322 
    323 physical_delivery_office_number = univ.Integer(11)
    324 
    325 class PhysicalDeliveryOfficeNumber(PDSParameter):
    326     pass
    327 
    328 
    329 extension_OR_address_components = univ.Integer(12)
    330 
    331 class ExtensionORAddressComponents(PDSParameter):
    332     pass
    333 
    334 
    335 physical_delivery_personal_name = univ.Integer(13)
    336 
    337 class PhysicalDeliveryPersonalName(PDSParameter):
    338     pass
    339 
    340 
    341 physical_delivery_organization_name = univ.Integer(14)
    342 
    343 class PhysicalDeliveryOrganizationName(PDSParameter):
    344     pass
    345 
    346 
    347 extension_physical_delivery_address_components = univ.Integer(15)
    348 
    349 class ExtensionPhysicalDeliveryAddressComponents(PDSParameter):
    350     pass
    351 
    352 
    353 unformatted_postal_address = univ.Integer(16)
    354 postal_code = univ.Integer(9)
    355 
    356 class PostalCode(univ.Choice):
    357     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))))
    358 
    359 
    360 class PhysicalDeliveryCountryName(univ.Choice):
    361     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))))
    362 
    363 
    364 class PDSName(char.PrintableString):
    365     subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_pds_name_length)
    366 
    367 
    368 physical_delivery_country_name = univ.Integer(8)
    369 
    370 class TeletexOrganizationalUnitName(char.TeletexString):
    371     subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length)
    372 
    373 
    374 pds_name = univ.Integer(7)
    375 teletex_organizational_unit_names = univ.Integer(5)
    376 
    377 class TeletexOrganizationalUnitNames(univ.SequenceOf):
    378     componentType = TeletexOrganizationalUnitName()
    379     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_units)
    380 
    381 
    382 teletex_personal_name = univ.Integer(4)
    383 
    384 class TeletexPersonalName(univ.Set):
    385     componentType = namedtype.NamedTypes(namedtype.NamedType('surname', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('given-name', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('initials', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('generation-qualifier', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))))
    386 
    387 
    388 teletex_organization_name = univ.Integer(3)
    389 
    390 class TeletexOrganizationName(char.TeletexString):
    391     subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organization_name_length)
    392 
    393 
    394 teletex_common_name = univ.Integer(2)
    395 
    396 class TeletexCommonName(char.TeletexString):
    397     subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_common_name_length)
    398 
    399 
    400 class CommonName(char.PrintableString):
    401     subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_common_name_length)
    402 
    403 
    404 common_name = univ.Integer(1)
    405 
    406 class ExtensionAttribute(univ.Sequence):
    407     componentType = namedtype.NamedTypes(namedtype.NamedType('extension-attribute-type', univ.Integer().subtype(subtypeSpec=constraint.ValueSizeConstraint(0, ub_extension_attributes), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('extension-attribute-value', univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))))
    408 
    409 
    410 class ExtensionAttributes(univ.SetOf):
    411     componentType = ExtensionAttribute()
    412     subtypeSpec = univ.SetOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_extension_attributes)
    413 
    414 
    415 class BuiltInDomainDefinedAttribute(univ.Sequence):
    416     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))))
    417 
    418 
    419 class BuiltInDomainDefinedAttributes(univ.SequenceOf):
    420     componentType = BuiltInDomainDefinedAttribute()
    421     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_domain_defined_attributes)
    422 
    423 
    424 class OrganizationalUnitName(char.PrintableString):
    425     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length)
    426 
    427 
    428 class OrganizationalUnitNames(univ.SequenceOf):
    429     componentType = OrganizationalUnitName()
    430     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_units)
    431 
    432 
    433 class PersonalName(univ.Set):
    434     componentType = namedtype.NamedTypes(namedtype.NamedType('surname', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('given-name', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('initials', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('generation-qualifier', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))))
    435 
    436 
    437 class NumericUserIdentifier(char.NumericString):
    438     subtypeSpec = char.NumericString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_numeric_user_id_length)
    439 
    440 
    441 class OrganizationName(char.PrintableString):
    442     subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organization_name_length)
    443 
    444 
    445 class PrivateDomainName(univ.Choice):
    446     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))))
    447 
    448 
    449 class TerminalIdentifier(char.PrintableString):
    450     subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_terminal_id_length)
    451 
    452 
    453 class X121Address(char.NumericString):
    454     subtypeSpec = char.NumericString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_x121_address_length)
    455 
    456 
    457 class NetworkAddress(X121Address):
    458     pass
    459 
    460 
    461 class AdministrationDomainName(univ.Choice):
    462     tagSet = univ.Choice.tagSet.tagExplicitly(tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 2))
    463     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))))
    464 
    465 
    466 class CountryName(univ.Choice):
    467     tagSet = univ.Choice.tagSet.tagExplicitly(tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 1))
    468     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))))
    469 
    470 
    471 class BuiltInStandardAttributes(univ.Sequence):
    472     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('country-name', CountryName()), namedtype.OptionalNamedType('administration-domain-name', AdministrationDomainName()), namedtype.OptionalNamedType('network-address', NetworkAddress().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('terminal-identifier', TerminalIdentifier().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('private-domain-name', PrivateDomainName().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('organization-name', OrganizationName().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), namedtype.OptionalNamedType('numeric-user-identifier', NumericUserIdentifier().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))), namedtype.OptionalNamedType('personal-name', PersonalName().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))), namedtype.OptionalNamedType('organizational-unit-names', OrganizationalUnitNames().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))))
    473 
    474 
    475 class ORAddress(univ.Sequence):
    476     componentType = namedtype.NamedTypes(namedtype.NamedType('built-in-standard-attributes', BuiltInStandardAttributes()), namedtype.OptionalNamedType('built-in-domain-defined-attributes', BuiltInDomainDefinedAttributes()), namedtype.OptionalNamedType('extension-attributes', ExtensionAttributes()))
    477 
    478 
    479 id_ce_invalidityDate = univ.ObjectIdentifier('2.5.29.24')
    480 
    481 class InvalidityDate(useful.GeneralizedTime):
    482     pass
    483 
    484 
    485 id_holdinstruction_none = univ.ObjectIdentifier('2.2.840.10040.2.1')
    486 id_holdinstruction_callissuer = univ.ObjectIdentifier('2.2.840.10040.2.2')
    487 id_holdinstruction_reject = univ.ObjectIdentifier('2.2.840.10040.2.3')
    488 holdInstruction = univ.ObjectIdentifier('2.2.840.10040.2')
    489 id_ce_holdInstructionCode = univ.ObjectIdentifier('2.5.29.23')
    490 
    491 class HoldInstructionCode(univ.ObjectIdentifier):
    492     pass
    493 
    494 
    495 id_ce_cRLReasons = univ.ObjectIdentifier('2.5.29.21')
    496 
    497 class CRLReason(univ.Enumerated):
    498     namedValues = namedval.NamedValues(('unspecified', 0), ('keyCompromise', 1), ('cACompromise', 2), ('affiliationChanged', 3), ('superseded', 4), ('cessationOfOperation', 5), ('certificateHold', 6), ('removeFromCRL', 8))
    499 
    500 
    501 id_ce_cRLNumber = univ.ObjectIdentifier('2.5.29.20')
    502 
    503 class CRLNumber(univ.Integer):
    504     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(0, MAX)
    505 
    506 
    507 class BaseCRLNumber(CRLNumber):
    508     pass
    509 
    510 
    511 id_kp_serverAuth = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.1')
    512 id_kp_clientAuth = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.2')
    513 id_kp_codeSigning = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.3')
    514 id_kp_emailProtection = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.4')
    515 id_kp_ipsecEndSystem = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.5')
    516 id_kp_ipsecTunnel = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.6')
    517 id_kp_ipsecUser = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.7')
    518 id_kp_timeStamping = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.8')
    519 id_pe_authorityInfoAccess = univ.ObjectIdentifier('1.3.6.1.5.5.7.1.1')
    520 id_ce_extKeyUsage = univ.ObjectIdentifier('2.5.29.37')
    521 
    522 class KeyPurposeId(univ.ObjectIdentifier):
    523     pass
    524 
    525 
    526 class ExtKeyUsageSyntax(univ.SequenceOf):
    527     componentType = KeyPurposeId()
    528     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    529 
    530 
    531 class ReasonFlags(univ.BitString):
    532     namedValues = namedval.NamedValues(('unused', 0), ('keyCompromise', 1), ('cACompromise', 2), ('affiliationChanged', 3), ('superseded', 4), ('cessationOfOperation', 5), ('certificateHold', 6))
    533 
    534 
    535 class SkipCerts(univ.Integer):
    536     subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint(0, MAX)
    537 
    538 
    539 id_ce_policyConstraints = univ.ObjectIdentifier('2.5.29.36')
    540 
    541 class PolicyConstraints(univ.Sequence):
    542     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('requireExplicitPolicy', SkipCerts().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('inhibitPolicyMapping', SkipCerts().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))))
    543 
    544 
    545 id_ce_basicConstraints = univ.ObjectIdentifier('2.5.29.19')
    546 
    547 class BasicConstraints(univ.Sequence):
    548     componentType = namedtype.NamedTypes(namedtype.DefaultedNamedType('cA', univ.Boolean(False)), namedtype.OptionalNamedType('pathLenConstraint', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, MAX))))
    549 
    550 
    551 id_ce_subjectDirectoryAttributes = univ.ObjectIdentifier('2.5.29.9')
    552 
    553 class SubjectDirectoryAttributes(univ.SequenceOf):
    554     componentType = Attribute()
    555     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    556 
    557 
    558 class EDIPartyName(univ.Sequence):
    559     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('nameAssigner', DirectoryString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('partyName', DirectoryString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))))
    560 
    561 
    562 class AnotherName(univ.Sequence):
    563     componentType = namedtype.NamedTypes(namedtype.NamedType('type-id', univ.ObjectIdentifier()), namedtype.NamedType('value', univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))))
    564 
    565 
    566 class GeneralName(univ.Choice):
    567     componentType = namedtype.NamedTypes(namedtype.NamedType('otherName', AnotherName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 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.tagFormatSimple, 4))), namedtype.NamedType('ediPartyName', EDIPartyName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 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))))
    568 
    569 
    570 class GeneralNames(univ.SequenceOf):
    571     componentType = GeneralName()
    572     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    573 
    574 
    575 class AccessDescription(univ.Sequence):
    576     componentType = namedtype.NamedTypes(namedtype.NamedType('accessMethod', univ.ObjectIdentifier()), namedtype.NamedType('accessLocation', GeneralName()))
    577 
    578 
    579 class AuthorityInfoAccessSyntax(univ.SequenceOf):
    580     componentType = AccessDescription()
    581     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    582 
    583 
    584 id_ce_deltaCRLIndicator = univ.ObjectIdentifier('2.5.29.27')
    585 
    586 class DistributionPointName(univ.Choice):
    587     componentType = namedtype.NamedTypes(namedtype.NamedType('fullName', GeneralNames().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('nameRelativeToCRLIssuer', RelativeDistinguishedName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))))
    588 
    589 
    590 class DistributionPoint(univ.Sequence):
    591     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.tagFormatConstructed, 2))))
    592 
    593 
    594 class BaseDistance(univ.Integer):
    595     subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint(0, MAX)
    596 
    597 
    598 id_ce_cRLDistributionPoints = univ.ObjectIdentifier('2.5.29.31')
    599 
    600 class CRLDistPointsSyntax(univ.SequenceOf):
    601     componentType = DistributionPoint()
    602     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    603 
    604 
    605 id_ce_issuingDistributionPoint = univ.ObjectIdentifier('2.5.29.28')
    606 
    607 class IssuingDistributionPoint(univ.Sequence):
    608     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('onlyContainsUserCerts', univ.Boolean(False).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.NamedType('onlyContainsCACerts', univ.Boolean(False).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('onlySomeReasons', ReasonFlags().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), namedtype.NamedType('indirectCRL', univ.Boolean(False).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))))
    609 
    610 
    611 class GeneralSubtree(univ.Sequence):
    612     componentType = namedtype.NamedTypes(namedtype.NamedType('base', GeneralName()), namedtype.DefaultedNamedType('minimum', BaseDistance(0).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('maximum', BaseDistance().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))))
    613 
    614 
    615 class GeneralSubtrees(univ.SequenceOf):
    616     componentType = GeneralSubtree()
    617     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    618 
    619 
    620 id_ce_nameConstraints = univ.ObjectIdentifier('2.5.29.30')
    621 
    622 class NameConstraints(univ.Sequence):
    623     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('permittedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))))
    624 
    625 
    626 class DisplayText(univ.Choice):
    627     componentType = namedtype.NamedTypes(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))))
    628 
    629 
    630 class NoticeReference(univ.Sequence):
    631     componentType = namedtype.NamedTypes(namedtype.NamedType('organization', DisplayText()), namedtype.NamedType('noticeNumbers', univ.SequenceOf(componentType=univ.Integer())))
    632 
    633 
    634 class UserNotice(univ.Sequence):
    635     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('noticeRef', NoticeReference()), namedtype.OptionalNamedType('explicitText', DisplayText()))
    636 
    637 
    638 class CPSuri(char.IA5String):
    639     pass
    640 
    641 
    642 class PolicyQualifierId(univ.ObjectIdentifier):
    643     subtypeSpec = univ.ObjectIdentifier.subtypeSpec + constraint.SingleValueConstraint(id_qt_cps, id_qt_unotice)
    644 
    645 
    646 class CertPolicyId(univ.ObjectIdentifier):
    647     pass
    648 
    649 
    650 class PolicyQualifierInfo(univ.Sequence):
    651     componentType = namedtype.NamedTypes(namedtype.NamedType('policyQualifierId', PolicyQualifierId()), namedtype.NamedType('qualifier', univ.Any()))
    652 
    653 
    654 id_ce_certificatePolicies = univ.ObjectIdentifier('2.5.29.32')
    655 
    656 class PolicyInformation(univ.Sequence):
    657     componentType = namedtype.NamedTypes(namedtype.NamedType('policyIdentifier', CertPolicyId()), namedtype.OptionalNamedType('policyQualifiers', univ.SequenceOf(componentType=PolicyQualifierInfo()).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))))
    658 
    659 
    660 class CertificatePolicies(univ.SequenceOf):
    661     componentType = PolicyInformation()
    662     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    663 
    664 
    665 id_ce_policyMappings = univ.ObjectIdentifier('2.5.29.33')
    666 
    667 class PolicyMapping(univ.Sequence):
    668     componentType = namedtype.NamedTypes(namedtype.NamedType('issuerDomainPolicy', CertPolicyId()), namedtype.NamedType('subjectDomainPolicy', CertPolicyId()))
    669 
    670 
    671 class PolicyMappings(univ.SequenceOf):
    672     componentType = PolicyMapping()
    673     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    674 
    675 
    676 id_ce_privateKeyUsagePeriod = univ.ObjectIdentifier('2.5.29.16')
    677 
    678 class PrivateKeyUsagePeriod(univ.Sequence):
    679     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))))
    680 
    681 
    682 id_ce_keyUsage = univ.ObjectIdentifier('2.5.29.15')
    683 
    684 class KeyUsage(univ.BitString):
    685     namedValues = namedval.NamedValues(('digitalSignature', 0), ('nonRepudiation', 1), ('keyEncipherment', 2), ('dataEncipherment', 3), ('keyAgreement', 4), ('keyCertSign', 5), ('cRLSign', 6), ('encipherOnly', 7), ('decipherOnly', 8))
    686 
    687 
    688 id_ce = univ.ObjectIdentifier('2.5.29')
    689 id_ce_authorityKeyIdentifier = univ.ObjectIdentifier('2.5.29.35')
    690 
    691 class KeyIdentifier(univ.OctetString):
    692     pass
    693 
    694 
    695 id_ce_subjectKeyIdentifier = univ.ObjectIdentifier('2.5.29.14')
    696 
    697 class SubjectKeyIdentifier(KeyIdentifier):
    698     pass
    699 
    700 
    701 class AuthorityKeyIdentifier(univ.Sequence):
    702     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))))
    703 
    704 
    705 id_ce_certificateIssuer = univ.ObjectIdentifier('2.5.29.29')
    706 
    707 class CertificateIssuer(GeneralNames):
    708     pass
    709 
    710 
    711 id_ce_subjectAltName = univ.ObjectIdentifier('2.5.29.17')
    712 
    713 class SubjectAltName(GeneralNames):
    714     pass
    715 
    716 
    717 id_ce_issuerAltName = univ.ObjectIdentifier('2.5.29.18')
    718 
    719 class IssuerAltName(GeneralNames):
    720     pass