Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/pyasn1_modules/rfc5280.py: 100%
513 statements
« prev ^ index » next coverage.py v7.2.2, created at 2023-03-26 06:04 +0000
« prev ^ index » next coverage.py v7.2.2, created at 2023-03-26 06:04 +0000
1# coding: utf-8
2#
3# This file is part of pyasn1-modules software.
4#
5# Created by Stanisław Pitucha with asn1ate tool.
6# Updated by Russ Housley for ORAddress Extension Attribute opentype support.
7# Updated by Russ Housley for AlgorithmIdentifier opentype support.
8#
9# Copyright (c) 2005-2020, Ilya Etingof <etingof@gmail.com>
10# License: http://snmplabs.com/pyasn1/license.html
11#
12# Internet X.509 Public Key Infrastructure Certificate and Certificate
13# Revocation List (CRL) Profile
14#
15# ASN.1 source from:
16# https://www.rfc-editor.org/rfc/rfc5280.txt
17#
18from pyasn1.type import char
19from pyasn1.type import constraint
20from pyasn1.type import namedtype
21from pyasn1.type import namedval
22from pyasn1.type import opentype
23from pyasn1.type import tag
24from pyasn1.type import univ
25from pyasn1.type import useful
27MAX = float('inf')
30def _buildOid(*components):
31 output = []
32 for x in tuple(components):
33 if isinstance(x, univ.ObjectIdentifier):
34 output.extend(list(x))
35 else:
36 output.append(int(x))
38 return univ.ObjectIdentifier(output)
41ub_e163_4_sub_address_length = univ.Integer(40)
43ub_e163_4_number_length = univ.Integer(15)
45unformatted_postal_address = univ.Integer(16)
48class TerminalType(univ.Integer):
49 pass
52TerminalType.namedValues = namedval.NamedValues(
53 ('telex', 3),
54 ('teletex', 4),
55 ('g3-facsimile', 5),
56 ('g4-facsimile', 6),
57 ('ia5-terminal', 7),
58 ('videotex', 8)
59)
62class Extension(univ.Sequence):
63 pass
66Extension.componentType = namedtype.NamedTypes(
67 namedtype.NamedType('extnID', univ.ObjectIdentifier()),
68 namedtype.DefaultedNamedType('critical', univ.Boolean().subtype(value=0)),
69 namedtype.NamedType('extnValue', univ.OctetString())
70)
73class Extensions(univ.SequenceOf):
74 pass
77Extensions.componentType = Extension()
78Extensions.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
80physical_delivery_personal_name = univ.Integer(13)
82ub_unformatted_address_length = univ.Integer(180)
84ub_pds_parameter_length = univ.Integer(30)
86ub_pds_physical_address_lines = univ.Integer(6)
89class UnformattedPostalAddress(univ.Set):
90 pass
93UnformattedPostalAddress.componentType = namedtype.NamedTypes(
94 namedtype.OptionalNamedType('printable-address', univ.SequenceOf(componentType=char.PrintableString().subtype(
95 subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length)))),
96 namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype(
97 subtypeSpec=constraint.ValueSizeConstraint(1, ub_unformatted_address_length)))
98)
100ub_organization_name = univ.Integer(64)
103class X520OrganizationName(univ.Choice):
104 pass
107X520OrganizationName.componentType = namedtype.NamedTypes(
108 namedtype.NamedType('teletexString', char.TeletexString().subtype(
109 subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))),
110 namedtype.NamedType('printableString', char.PrintableString().subtype(
111 subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))),
112 namedtype.NamedType('universalString', char.UniversalString().subtype(
113 subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))),
114 namedtype.NamedType('utf8String',
115 char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))),
116 namedtype.NamedType('bmpString',
117 char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name)))
118)
120ub_x121_address_length = univ.Integer(16)
122pds_name = univ.Integer(7)
124id_pkix = _buildOid(1, 3, 6, 1, 5, 5, 7)
126id_kp = _buildOid(id_pkix, 3)
128ub_postal_code_length = univ.Integer(16)
131class PostalCode(univ.Choice):
132 pass
135PostalCode.componentType = namedtype.NamedTypes(
136 namedtype.NamedType('numeric-code', char.NumericString().subtype(
137 subtypeSpec=constraint.ValueSizeConstraint(1, ub_postal_code_length))),
138 namedtype.NamedType('printable-code', char.PrintableString().subtype(
139 subtypeSpec=constraint.ValueSizeConstraint(1, ub_postal_code_length)))
140)
142ub_generation_qualifier_length = univ.Integer(3)
144unique_postal_name = univ.Integer(20)
147class DomainComponent(char.IA5String):
148 pass
151ub_domain_defined_attribute_value_length = univ.Integer(128)
153ub_match = univ.Integer(128)
155id_at = _buildOid(2, 5, 4)
158class AttributeType(univ.ObjectIdentifier):
159 pass
162id_at_organizationalUnitName = _buildOid(id_at, 11)
164terminal_type = univ.Integer(23)
167class PDSParameter(univ.Set):
168 pass
171PDSParameter.componentType = namedtype.NamedTypes(
172 namedtype.OptionalNamedType('printable-string', char.PrintableString().subtype(
173 subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length))),
174 namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype(
175 subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length)))
176)
179class PhysicalDeliveryPersonalName(PDSParameter):
180 pass
183ub_surname_length = univ.Integer(40)
185id_ad = _buildOid(id_pkix, 48)
187ub_domain_defined_attribute_type_length = univ.Integer(8)
190class TeletexDomainDefinedAttribute(univ.Sequence):
191 pass
194TeletexDomainDefinedAttribute.componentType = namedtype.NamedTypes(
195 namedtype.NamedType('type', char.TeletexString().subtype(
196 subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))),
197 namedtype.NamedType('value', char.TeletexString().subtype(
198 subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_value_length)))
199)
201ub_domain_defined_attributes = univ.Integer(4)
204class TeletexDomainDefinedAttributes(univ.SequenceOf):
205 pass
208TeletexDomainDefinedAttributes.componentType = TeletexDomainDefinedAttribute()
209TeletexDomainDefinedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_domain_defined_attributes)
211extended_network_address = univ.Integer(22)
213ub_locality_name = univ.Integer(128)
216class X520LocalityName(univ.Choice):
217 pass
220X520LocalityName.componentType = namedtype.NamedTypes(
221 namedtype.NamedType('teletexString',
222 char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))),
223 namedtype.NamedType('printableString', char.PrintableString().subtype(
224 subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))),
225 namedtype.NamedType('universalString', char.UniversalString().subtype(
226 subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))),
227 namedtype.NamedType('utf8String',
228 char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))),
229 namedtype.NamedType('bmpString',
230 char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name)))
231)
233teletex_organization_name = univ.Integer(3)
235ub_given_name_length = univ.Integer(16)
237ub_initials_length = univ.Integer(5)
240class PersonalName(univ.Set):
241 pass
244PersonalName.componentType = namedtype.NamedTypes(
245 namedtype.NamedType('surname', char.PrintableString().subtype(
246 subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length)).subtype(
247 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
248 namedtype.OptionalNamedType('given-name', char.PrintableString().subtype(
249 subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length)).subtype(
250 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
251 namedtype.OptionalNamedType('initials', char.PrintableString().subtype(
252 subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length)).subtype(
253 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
254 namedtype.OptionalNamedType('generation-qualifier', char.PrintableString().subtype(
255 subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length)).subtype(
256 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))
257)
259ub_organizational_unit_name_length = univ.Integer(32)
262class OrganizationalUnitName(char.PrintableString):
263 pass
266OrganizationalUnitName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length)
268id_at_generationQualifier = _buildOid(id_at, 44)
271class Version(univ.Integer):
272 pass
275Version.namedValues = namedval.NamedValues(
276 ('v1', 0),
277 ('v2', 1),
278 ('v3', 2)
279)
282class CertificateSerialNumber(univ.Integer):
283 pass
286algorithmIdentifierMap = {}
289class AlgorithmIdentifier(univ.Sequence):
290 componentType = namedtype.NamedTypes(
291 namedtype.NamedType('algorithm', univ.ObjectIdentifier()),
292 namedtype.OptionalNamedType('parameters', univ.Any(),
293 openType=opentype.OpenType('algorithm', algorithmIdentifierMap)
294 )
295 )
298class Time(univ.Choice):
299 pass
302Time.componentType = namedtype.NamedTypes(
303 namedtype.NamedType('utcTime', useful.UTCTime()),
304 namedtype.NamedType('generalTime', useful.GeneralizedTime())
305)
308class AttributeValue(univ.Any):
309 pass
312certificateAttributesMap = {}
315class AttributeTypeAndValue(univ.Sequence):
316 componentType = namedtype.NamedTypes(
317 namedtype.NamedType('type', AttributeType()),
318 namedtype.NamedType(
319 'value', AttributeValue(),
320 openType=opentype.OpenType('type', certificateAttributesMap)
321 )
322 )
325class RelativeDistinguishedName(univ.SetOf):
326 pass
329RelativeDistinguishedName.componentType = AttributeTypeAndValue()
330RelativeDistinguishedName.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
333class RDNSequence(univ.SequenceOf):
334 pass
337RDNSequence.componentType = RelativeDistinguishedName()
340class Name(univ.Choice):
341 pass
344Name.componentType = namedtype.NamedTypes(
345 namedtype.NamedType('rdnSequence', RDNSequence())
346)
349class TBSCertList(univ.Sequence):
350 pass
353TBSCertList.componentType = namedtype.NamedTypes(
354 namedtype.OptionalNamedType('version', Version()),
355 namedtype.NamedType('signature', AlgorithmIdentifier()),
356 namedtype.NamedType('issuer', Name()),
357 namedtype.NamedType('thisUpdate', Time()),
358 namedtype.OptionalNamedType('nextUpdate', Time()),
359 namedtype.OptionalNamedType(
360 'revokedCertificates', univ.SequenceOf(
361 componentType=univ.Sequence(
362 componentType=namedtype.NamedTypes(
363 namedtype.NamedType('userCertificate', CertificateSerialNumber()),
364 namedtype.NamedType('revocationDate', Time()),
365 namedtype.OptionalNamedType('crlEntryExtensions', Extensions())
366 )
367 )
368 )
369 ),
370 namedtype.OptionalNamedType(
371 'crlExtensions', Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))
372)
375class CertificateList(univ.Sequence):
376 pass
379CertificateList.componentType = namedtype.NamedTypes(
380 namedtype.NamedType('tbsCertList', TBSCertList()),
381 namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()),
382 namedtype.NamedType('signature', univ.BitString())
383)
386class PhysicalDeliveryOfficeName(PDSParameter):
387 pass
390ub_extension_attributes = univ.Integer(256)
392certificateExtensionsMap = {
393}
395oraddressExtensionAttributeMap = {
396}
399class ExtensionAttribute(univ.Sequence):
400 componentType = namedtype.NamedTypes(
401 namedtype.NamedType(
402 'extension-attribute-type',
403 univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, ub_extension_attributes)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
404 namedtype.NamedType(
405 'extension-attribute-value',
406 univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)),
407 openType=opentype.OpenType('extension-attribute-type', oraddressExtensionAttributeMap))
408 )
410id_qt = _buildOid(id_pkix, 2)
412id_qt_cps = _buildOid(id_qt, 1)
414id_at_stateOrProvinceName = _buildOid(id_at, 8)
416id_at_title = _buildOid(id_at, 12)
418id_at_serialNumber = _buildOid(id_at, 5)
421class X520dnQualifier(char.PrintableString):
422 pass
425class PosteRestanteAddress(PDSParameter):
426 pass
429poste_restante_address = univ.Integer(19)
432class UniqueIdentifier(univ.BitString):
433 pass
436class Validity(univ.Sequence):
437 pass
440Validity.componentType = namedtype.NamedTypes(
441 namedtype.NamedType('notBefore', Time()),
442 namedtype.NamedType('notAfter', Time())
443)
446class SubjectPublicKeyInfo(univ.Sequence):
447 pass
450SubjectPublicKeyInfo.componentType = namedtype.NamedTypes(
451 namedtype.NamedType('algorithm', AlgorithmIdentifier()),
452 namedtype.NamedType('subjectPublicKey', univ.BitString())
453)
456class TBSCertificate(univ.Sequence):
457 pass
460TBSCertificate.componentType = namedtype.NamedTypes(
461 namedtype.DefaultedNamedType('version',
462 Version().subtype(explicitTag=tag.Tag(tag.tagClassContext,
463 tag.tagFormatSimple, 0)).subtype(value="v1")),
464 namedtype.NamedType('serialNumber', CertificateSerialNumber()),
465 namedtype.NamedType('signature', AlgorithmIdentifier()),
466 namedtype.NamedType('issuer', Name()),
467 namedtype.NamedType('validity', Validity()),
468 namedtype.NamedType('subject', Name()),
469 namedtype.NamedType('subjectPublicKeyInfo', SubjectPublicKeyInfo()),
470 namedtype.OptionalNamedType('issuerUniqueID', UniqueIdentifier().subtype(
471 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
472 namedtype.OptionalNamedType('subjectUniqueID', UniqueIdentifier().subtype(
473 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
474 namedtype.OptionalNamedType('extensions',
475 Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))
476)
478physical_delivery_office_name = univ.Integer(10)
480ub_name = univ.Integer(32768)
483class X520name(univ.Choice):
484 pass
487X520name.componentType = namedtype.NamedTypes(
488 namedtype.NamedType('teletexString',
489 char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))),
490 namedtype.NamedType('printableString',
491 char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))),
492 namedtype.NamedType('universalString',
493 char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))),
494 namedtype.NamedType('utf8String',
495 char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))),
496 namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name)))
497)
499id_at_dnQualifier = _buildOid(id_at, 46)
501ub_serial_number = univ.Integer(64)
503ub_pseudonym = univ.Integer(128)
505pkcs_9 = _buildOid(1, 2, 840, 113549, 1, 9)
508class X121Address(char.NumericString):
509 pass
512X121Address.subtypeSpec = constraint.ValueSizeConstraint(1, ub_x121_address_length)
515class NetworkAddress(X121Address):
516 pass
519ub_integer_options = univ.Integer(256)
521id_at_commonName = _buildOid(id_at, 3)
523ub_organization_name_length = univ.Integer(64)
525id_ad_ocsp = _buildOid(id_ad, 1)
527ub_country_name_numeric_length = univ.Integer(3)
529ub_country_name_alpha_length = univ.Integer(2)
532class PhysicalDeliveryCountryName(univ.Choice):
533 pass
536PhysicalDeliveryCountryName.componentType = namedtype.NamedTypes(
537 namedtype.NamedType('x121-dcc-code', char.NumericString().subtype(
538 subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_numeric_length, ub_country_name_numeric_length))),
539 namedtype.NamedType('iso-3166-alpha2-code', char.PrintableString().subtype(
540 subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_alpha_length, ub_country_name_alpha_length)))
541)
543id_emailAddress = _buildOid(pkcs_9, 1)
545common_name = univ.Integer(1)
548class X520Pseudonym(univ.Choice):
549 pass
552X520Pseudonym.componentType = namedtype.NamedTypes(
553 namedtype.NamedType('teletexString',
554 char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))),
555 namedtype.NamedType('printableString',
556 char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))),
557 namedtype.NamedType('universalString',
558 char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))),
559 namedtype.NamedType('utf8String',
560 char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym))),
561 namedtype.NamedType('bmpString',
562 char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pseudonym)))
563)
565ub_domain_name_length = univ.Integer(16)
568class AdministrationDomainName(univ.Choice):
569 pass
572AdministrationDomainName.tagSet = univ.Choice.tagSet.tagExplicitly(
573 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 2))
574AdministrationDomainName.componentType = namedtype.NamedTypes(
575 namedtype.NamedType('numeric', char.NumericString().subtype(
576 subtypeSpec=constraint.ValueSizeConstraint(0, ub_domain_name_length))),
577 namedtype.NamedType('printable', char.PrintableString().subtype(
578 subtypeSpec=constraint.ValueSizeConstraint(0, ub_domain_name_length)))
579)
582class PresentationAddress(univ.Sequence):
583 pass
586PresentationAddress.componentType = namedtype.NamedTypes(
587 namedtype.OptionalNamedType('pSelector', univ.OctetString().subtype(
588 explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
589 namedtype.OptionalNamedType('sSelector', univ.OctetString().subtype(
590 explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
591 namedtype.OptionalNamedType('tSelector', univ.OctetString().subtype(
592 explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
593 namedtype.NamedType('nAddresses', univ.SetOf(componentType=univ.OctetString()).subtype(
594 explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))
595)
598class ExtendedNetworkAddress(univ.Choice):
599 pass
602ExtendedNetworkAddress.componentType = namedtype.NamedTypes(
603 namedtype.NamedType(
604 'e163-4-address', univ.Sequence(
605 componentType=namedtype.NamedTypes(
606 namedtype.NamedType('number', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_number_length)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
607 namedtype.OptionalNamedType('sub-address', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_sub_address_length)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
608 )
609 )
610 ),
611 namedtype.NamedType('psap-address', PresentationAddress().subtype(
612 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))
613)
616class TeletexOrganizationName(char.TeletexString):
617 pass
620TeletexOrganizationName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organization_name_length)
622ub_terminal_id_length = univ.Integer(24)
625class TerminalIdentifier(char.PrintableString):
626 pass
629TerminalIdentifier.subtypeSpec = constraint.ValueSizeConstraint(1, ub_terminal_id_length)
631id_ad_caIssuers = _buildOid(id_ad, 2)
633id_at_countryName = _buildOid(id_at, 6)
636class StreetAddress(PDSParameter):
637 pass
640postal_code = univ.Integer(9)
642id_at_givenName = _buildOid(id_at, 42)
644ub_title = univ.Integer(64)
647class ExtensionAttributes(univ.SetOf):
648 pass
651ExtensionAttributes.componentType = ExtensionAttribute()
652ExtensionAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_extension_attributes)
654ub_emailaddress_length = univ.Integer(255)
656id_ad_caRepository = _buildOid(id_ad, 5)
659class ExtensionORAddressComponents(PDSParameter):
660 pass
663ub_organizational_unit_name = univ.Integer(64)
666class X520OrganizationalUnitName(univ.Choice):
667 pass
670X520OrganizationalUnitName.componentType = namedtype.NamedTypes(
671 namedtype.NamedType('teletexString', char.TeletexString().subtype(
672 subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))),
673 namedtype.NamedType('printableString', char.PrintableString().subtype(
674 subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))),
675 namedtype.NamedType('universalString', char.UniversalString().subtype(
676 subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))),
677 namedtype.NamedType('utf8String', char.UTF8String().subtype(
678 subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))),
679 namedtype.NamedType('bmpString', char.BMPString().subtype(
680 subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name)))
681)
684class LocalPostalAttributes(PDSParameter):
685 pass
688teletex_organizational_unit_names = univ.Integer(5)
691class X520Title(univ.Choice):
692 pass
695X520Title.componentType = namedtype.NamedTypes(
696 namedtype.NamedType('teletexString',
697 char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))),
698 namedtype.NamedType('printableString',
699 char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))),
700 namedtype.NamedType('universalString',
701 char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))),
702 namedtype.NamedType('utf8String',
703 char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))),
704 namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title)))
705)
707id_at_localityName = _buildOid(id_at, 7)
709id_at_initials = _buildOid(id_at, 43)
711ub_state_name = univ.Integer(128)
714class X520StateOrProvinceName(univ.Choice):
715 pass
718X520StateOrProvinceName.componentType = namedtype.NamedTypes(
719 namedtype.NamedType('teletexString',
720 char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))),
721 namedtype.NamedType('printableString',
722 char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))),
723 namedtype.NamedType('universalString',
724 char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))),
725 namedtype.NamedType('utf8String',
726 char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))),
727 namedtype.NamedType('bmpString',
728 char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name)))
729)
731physical_delivery_organization_name = univ.Integer(14)
733id_at_surname = _buildOid(id_at, 4)
736class X520countryName(char.PrintableString):
737 pass
740X520countryName.subtypeSpec = constraint.ValueSizeConstraint(2, 2)
742physical_delivery_office_number = univ.Integer(11)
744id_qt_unotice = _buildOid(id_qt, 2)
747class X520SerialNumber(char.PrintableString):
748 pass
751X520SerialNumber.subtypeSpec = constraint.ValueSizeConstraint(1, ub_serial_number)
754class Attribute(univ.Sequence):
755 componentType = namedtype.NamedTypes(
756 namedtype.NamedType('type', AttributeType()),
757 namedtype.NamedType('values',
758 univ.SetOf(componentType=AttributeValue()),
759 openType=opentype.OpenType('type', certificateAttributesMap))
760 )
762ub_common_name = univ.Integer(64)
764id_pe = _buildOid(id_pkix, 1)
767class ExtensionPhysicalDeliveryAddressComponents(PDSParameter):
768 pass
771class EmailAddress(char.IA5String):
772 pass
775EmailAddress.subtypeSpec = constraint.ValueSizeConstraint(1, ub_emailaddress_length)
777id_at_organizationName = _buildOid(id_at, 10)
779post_office_box_address = univ.Integer(18)
782class BuiltInDomainDefinedAttribute(univ.Sequence):
783 pass
786BuiltInDomainDefinedAttribute.componentType = namedtype.NamedTypes(
787 namedtype.NamedType('type', char.PrintableString().subtype(
788 subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))),
789 namedtype.NamedType('value', char.PrintableString().subtype(
790 subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_value_length)))
791)
794class BuiltInDomainDefinedAttributes(univ.SequenceOf):
795 pass
798BuiltInDomainDefinedAttributes.componentType = BuiltInDomainDefinedAttribute()
799BuiltInDomainDefinedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_domain_defined_attributes)
801id_at_pseudonym = _buildOid(id_at, 65)
803id_domainComponent = _buildOid(0, 9, 2342, 19200300, 100, 1, 25)
806class X520CommonName(univ.Choice):
807 pass
810X520CommonName.componentType = namedtype.NamedTypes(
811 namedtype.NamedType('teletexString',
812 char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))),
813 namedtype.NamedType('printableString',
814 char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))),
815 namedtype.NamedType('universalString',
816 char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))),
817 namedtype.NamedType('utf8String',
818 char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))),
819 namedtype.NamedType('bmpString',
820 char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name)))
821)
823extension_OR_address_components = univ.Integer(12)
825ub_organizational_units = univ.Integer(4)
827teletex_personal_name = univ.Integer(4)
829ub_numeric_user_id_length = univ.Integer(32)
831ub_common_name_length = univ.Integer(64)
834class TeletexCommonName(char.TeletexString):
835 pass
838TeletexCommonName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_common_name_length)
841class PhysicalDeliveryOrganizationName(PDSParameter):
842 pass
845extension_physical_delivery_address_components = univ.Integer(15)
848class NumericUserIdentifier(char.NumericString):
849 pass
852NumericUserIdentifier.subtypeSpec = constraint.ValueSizeConstraint(1, ub_numeric_user_id_length)
855class CountryName(univ.Choice):
856 pass
859CountryName.tagSet = univ.Choice.tagSet.tagExplicitly(tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 1))
860CountryName.componentType = namedtype.NamedTypes(
861 namedtype.NamedType('x121-dcc-code', char.NumericString().subtype(
862 subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_numeric_length, ub_country_name_numeric_length))),
863 namedtype.NamedType('iso-3166-alpha2-code', char.PrintableString().subtype(
864 subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_alpha_length, ub_country_name_alpha_length)))
865)
868class OrganizationName(char.PrintableString):
869 pass
872OrganizationName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organization_name_length)
875class OrganizationalUnitNames(univ.SequenceOf):
876 pass
879OrganizationalUnitNames.componentType = OrganizationalUnitName()
880OrganizationalUnitNames.sizeSpec = constraint.ValueSizeConstraint(1, ub_organizational_units)
883class PrivateDomainName(univ.Choice):
884 pass
887PrivateDomainName.componentType = namedtype.NamedTypes(
888 namedtype.NamedType('numeric', char.NumericString().subtype(
889 subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_name_length))),
890 namedtype.NamedType('printable', char.PrintableString().subtype(
891 subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_name_length)))
892)
895class BuiltInStandardAttributes(univ.Sequence):
896 pass
899BuiltInStandardAttributes.componentType = namedtype.NamedTypes(
900 namedtype.OptionalNamedType('country-name', CountryName()),
901 namedtype.OptionalNamedType('administration-domain-name', AdministrationDomainName()),
902 namedtype.OptionalNamedType('network-address', NetworkAddress().subtype(
903 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
904 namedtype.OptionalNamedType('terminal-identifier', TerminalIdentifier().subtype(
905 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
906 namedtype.OptionalNamedType('private-domain-name', PrivateDomainName().subtype(
907 explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2))),
908 namedtype.OptionalNamedType('organization-name', OrganizationName().subtype(
909 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
910 namedtype.OptionalNamedType('numeric-user-identifier', NumericUserIdentifier().subtype(
911 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))),
912 namedtype.OptionalNamedType('personal-name', PersonalName().subtype(
913 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))),
914 namedtype.OptionalNamedType('organizational-unit-names', OrganizationalUnitNames().subtype(
915 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6)))
916)
919class ORAddress(univ.Sequence):
920 pass
923ORAddress.componentType = namedtype.NamedTypes(
924 namedtype.NamedType('built-in-standard-attributes', BuiltInStandardAttributes()),
925 namedtype.OptionalNamedType('built-in-domain-defined-attributes', BuiltInDomainDefinedAttributes()),
926 namedtype.OptionalNamedType('extension-attributes', ExtensionAttributes())
927)
930class DistinguishedName(RDNSequence):
931 pass
934id_ad_timeStamping = _buildOid(id_ad, 3)
937class PhysicalDeliveryOfficeNumber(PDSParameter):
938 pass
941teletex_domain_defined_attributes = univ.Integer(6)
944class UniquePostalName(PDSParameter):
945 pass
948physical_delivery_country_name = univ.Integer(8)
950ub_pds_name_length = univ.Integer(16)
953class PDSName(char.PrintableString):
954 pass
957PDSName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_pds_name_length)
960class TeletexPersonalName(univ.Set):
961 pass
964TeletexPersonalName.componentType = namedtype.NamedTypes(
965 namedtype.NamedType('surname', char.TeletexString().subtype(
966 subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length)).subtype(
967 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
968 namedtype.OptionalNamedType('given-name', char.TeletexString().subtype(
969 subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length)).subtype(
970 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
971 namedtype.OptionalNamedType('initials', char.TeletexString().subtype(
972 subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length)).subtype(
973 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
974 namedtype.OptionalNamedType('generation-qualifier', char.TeletexString().subtype(
975 subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length)).subtype(
976 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))
977)
979street_address = univ.Integer(17)
982class PostOfficeBoxAddress(PDSParameter):
983 pass
986local_postal_attributes = univ.Integer(21)
989class DirectoryString(univ.Choice):
990 pass
993DirectoryString.componentType = namedtype.NamedTypes(
994 namedtype.NamedType('teletexString',
995 char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),
996 namedtype.NamedType('printableString',
997 char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),
998 namedtype.NamedType('universalString',
999 char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),
1000 namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))),
1001 namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX)))
1002)
1004teletex_common_name = univ.Integer(2)
1007class CommonName(char.PrintableString):
1008 pass
1011CommonName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_common_name_length)
1014class Certificate(univ.Sequence):
1015 pass
1018Certificate.componentType = namedtype.NamedTypes(
1019 namedtype.NamedType('tbsCertificate', TBSCertificate()),
1020 namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()),
1021 namedtype.NamedType('signature', univ.BitString())
1022)
1025class TeletexOrganizationalUnitName(char.TeletexString):
1026 pass
1029TeletexOrganizationalUnitName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length)
1031id_at_name = _buildOid(id_at, 41)
1034class TeletexOrganizationalUnitNames(univ.SequenceOf):
1035 pass
1038TeletexOrganizationalUnitNames.componentType = TeletexOrganizationalUnitName()
1039TeletexOrganizationalUnitNames.sizeSpec = constraint.ValueSizeConstraint(1, ub_organizational_units)
1041id_ce = _buildOid(2, 5, 29)
1043id_ce_issuerAltName = _buildOid(id_ce, 18)
1046class SkipCerts(univ.Integer):
1047 pass
1050SkipCerts.subtypeSpec = constraint.ValueRangeConstraint(0, MAX)
1053class CRLReason(univ.Enumerated):
1054 pass
1057CRLReason.namedValues = namedval.NamedValues(
1058 ('unspecified', 0),
1059 ('keyCompromise', 1),
1060 ('cACompromise', 2),
1061 ('affiliationChanged', 3),
1062 ('superseded', 4),
1063 ('cessationOfOperation', 5),
1064 ('certificateHold', 6),
1065 ('removeFromCRL', 8),
1066 ('privilegeWithdrawn', 9),
1067 ('aACompromise', 10)
1068)
1071class PrivateKeyUsagePeriod(univ.Sequence):
1072 pass
1075PrivateKeyUsagePeriod.componentType = namedtype.NamedTypes(
1076 namedtype.OptionalNamedType('notBefore', useful.GeneralizedTime().subtype(
1077 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
1078 namedtype.OptionalNamedType('notAfter', useful.GeneralizedTime().subtype(
1079 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
1080)
1083anotherNameMap = {
1085}
1088class AnotherName(univ.Sequence):
1089 componentType = namedtype.NamedTypes(
1090 namedtype.NamedType('type-id', univ.ObjectIdentifier()),
1091 namedtype.NamedType(
1092 'value',
1093 univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)),
1094 openType=opentype.OpenType('type-id', anotherNameMap)
1095 )
1096 )
1099class EDIPartyName(univ.Sequence):
1100 pass
1103EDIPartyName.componentType = namedtype.NamedTypes(
1104 namedtype.OptionalNamedType('nameAssigner', DirectoryString().subtype(
1105 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
1106 namedtype.NamedType('partyName', DirectoryString().subtype(
1107 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))
1108)
1111class GeneralName(univ.Choice):
1112 pass
1115GeneralName.componentType = namedtype.NamedTypes(
1116 namedtype.NamedType('otherName',
1117 AnotherName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
1118 namedtype.NamedType('rfc822Name',
1119 char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
1120 namedtype.NamedType('dNSName',
1121 char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),
1122 namedtype.NamedType('x400Address',
1123 ORAddress().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
1124 namedtype.NamedType('directoryName',
1125 Name().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4))),
1126 namedtype.NamedType('ediPartyName',
1127 EDIPartyName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))),
1128 namedtype.NamedType('uniformResourceIdentifier',
1129 char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))),
1130 namedtype.NamedType('iPAddress',
1131 univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),
1132 namedtype.NamedType('registeredID', univ.ObjectIdentifier().subtype(
1133 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))
1134)
1137class BaseDistance(univ.Integer):
1138 pass
1141BaseDistance.subtypeSpec = constraint.ValueRangeConstraint(0, MAX)
1144class GeneralSubtree(univ.Sequence):
1145 pass
1148GeneralSubtree.componentType = namedtype.NamedTypes(
1149 namedtype.NamedType('base', GeneralName()),
1150 namedtype.DefaultedNamedType('minimum', BaseDistance().subtype(
1151 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)).subtype(value=0)),
1152 namedtype.OptionalNamedType('maximum', BaseDistance().subtype(
1153 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
1154)
1157class GeneralNames(univ.SequenceOf):
1158 pass
1161GeneralNames.componentType = GeneralName()
1162GeneralNames.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1165class DistributionPointName(univ.Choice):
1166 pass
1169DistributionPointName.componentType = namedtype.NamedTypes(
1170 namedtype.NamedType('fullName',
1171 GeneralNames().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
1172 namedtype.NamedType('nameRelativeToCRLIssuer', RelativeDistinguishedName().subtype(
1173 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
1174)
1177class ReasonFlags(univ.BitString):
1178 pass
1181ReasonFlags.namedValues = namedval.NamedValues(
1182 ('unused', 0),
1183 ('keyCompromise', 1),
1184 ('cACompromise', 2),
1185 ('affiliationChanged', 3),
1186 ('superseded', 4),
1187 ('cessationOfOperation', 5),
1188 ('certificateHold', 6),
1189 ('privilegeWithdrawn', 7),
1190 ('aACompromise', 8)
1191)
1194class IssuingDistributionPoint(univ.Sequence):
1195 pass
1198IssuingDistributionPoint.componentType = namedtype.NamedTypes(
1199 namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype(
1200 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
1201 namedtype.DefaultedNamedType('onlyContainsUserCerts', univ.Boolean().subtype(
1202 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)).subtype(value=0)),
1203 namedtype.DefaultedNamedType('onlyContainsCACerts', univ.Boolean().subtype(
1204 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)).subtype(value=0)),
1205 namedtype.OptionalNamedType('onlySomeReasons', ReasonFlags().subtype(
1206 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),
1207 namedtype.DefaultedNamedType('indirectCRL', univ.Boolean().subtype(
1208 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)).subtype(value=0)),
1209 namedtype.DefaultedNamedType('onlyContainsAttributeCerts', univ.Boolean().subtype(
1210 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5)).subtype(value=0))
1211)
1213id_ce_certificatePolicies = _buildOid(id_ce, 32)
1215id_kp_emailProtection = _buildOid(id_kp, 4)
1218class AccessDescription(univ.Sequence):
1219 pass
1222AccessDescription.componentType = namedtype.NamedTypes(
1223 namedtype.NamedType('accessMethod', univ.ObjectIdentifier()),
1224 namedtype.NamedType('accessLocation', GeneralName())
1225)
1228class IssuerAltName(GeneralNames):
1229 pass
1232id_ce_cRLDistributionPoints = _buildOid(id_ce, 31)
1234holdInstruction = _buildOid(2, 2, 840, 10040, 2)
1236id_holdinstruction_callissuer = _buildOid(holdInstruction, 2)
1238id_ce_subjectDirectoryAttributes = _buildOid(id_ce, 9)
1240id_ce_issuingDistributionPoint = _buildOid(id_ce, 28)
1243class DistributionPoint(univ.Sequence):
1244 pass
1247DistributionPoint.componentType = namedtype.NamedTypes(
1248 namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype(
1249 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),
1250 namedtype.OptionalNamedType('reasons', ReasonFlags().subtype(
1251 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
1252 namedtype.OptionalNamedType('cRLIssuer', GeneralNames().subtype(
1253 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
1254)
1257class CRLDistributionPoints(univ.SequenceOf):
1258 pass
1261CRLDistributionPoints.componentType = DistributionPoint()
1262CRLDistributionPoints.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1265class GeneralSubtrees(univ.SequenceOf):
1266 pass
1269GeneralSubtrees.componentType = GeneralSubtree()
1270GeneralSubtrees.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1273class NameConstraints(univ.Sequence):
1274 pass
1277NameConstraints.componentType = namedtype.NamedTypes(
1278 namedtype.OptionalNamedType('permittedSubtrees', GeneralSubtrees().subtype(
1279 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
1280 namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype(
1281 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
1282)
1285class SubjectDirectoryAttributes(univ.SequenceOf):
1286 pass
1289SubjectDirectoryAttributes.componentType = Attribute()
1290SubjectDirectoryAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1292id_kp_OCSPSigning = _buildOid(id_kp, 9)
1294id_kp_timeStamping = _buildOid(id_kp, 8)
1297class DisplayText(univ.Choice):
1298 pass
1301DisplayText.componentType = namedtype.NamedTypes(
1302 namedtype.NamedType('ia5String', char.IA5String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))),
1303 namedtype.NamedType('visibleString',
1304 char.VisibleString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))),
1305 namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))),
1306 namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200)))
1307)
1310class NoticeReference(univ.Sequence):
1311 pass
1314NoticeReference.componentType = namedtype.NamedTypes(
1315 namedtype.NamedType('organization', DisplayText()),
1316 namedtype.NamedType('noticeNumbers', univ.SequenceOf(componentType=univ.Integer()))
1317)
1320class UserNotice(univ.Sequence):
1321 pass
1324UserNotice.componentType = namedtype.NamedTypes(
1325 namedtype.OptionalNamedType('noticeRef', NoticeReference()),
1326 namedtype.OptionalNamedType('explicitText', DisplayText())
1327)
1330class PolicyQualifierId(univ.ObjectIdentifier):
1331 pass
1334policyQualifierInfoMap = {
1336}
1339class PolicyQualifierInfo(univ.Sequence):
1340 componentType = namedtype.NamedTypes(
1341 namedtype.NamedType('policyQualifierId', PolicyQualifierId()),
1342 namedtype.NamedType(
1343 'qualifier', univ.Any(),
1344 openType=opentype.OpenType('policyQualifierId', policyQualifierInfoMap)
1345 )
1346 )
1349class CertPolicyId(univ.ObjectIdentifier):
1350 pass
1353class PolicyInformation(univ.Sequence):
1354 pass
1357PolicyInformation.componentType = namedtype.NamedTypes(
1358 namedtype.NamedType('policyIdentifier', CertPolicyId()),
1359 namedtype.OptionalNamedType('policyQualifiers', univ.SequenceOf(componentType=PolicyQualifierInfo()))
1360)
1363class CertificatePolicies(univ.SequenceOf):
1364 pass
1367CertificatePolicies.componentType = PolicyInformation()
1368CertificatePolicies.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1371class SubjectAltName(GeneralNames):
1372 pass
1375id_ce_basicConstraints = _buildOid(id_ce, 19)
1377id_ce_authorityKeyIdentifier = _buildOid(id_ce, 35)
1379id_kp_codeSigning = _buildOid(id_kp, 3)
1382class BasicConstraints(univ.Sequence):
1383 pass
1386BasicConstraints.componentType = namedtype.NamedTypes(
1387 namedtype.DefaultedNamedType('cA', univ.Boolean().subtype(value=0)),
1388 namedtype.OptionalNamedType('pathLenConstraint',
1389 univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, MAX)))
1390)
1392id_ce_certificateIssuer = _buildOid(id_ce, 29)
1395class PolicyMappings(univ.SequenceOf):
1396 pass
1399PolicyMappings.componentType = univ.Sequence(
1400 componentType=namedtype.NamedTypes(
1401 namedtype.NamedType('issuerDomainPolicy', CertPolicyId()),
1402 namedtype.NamedType('subjectDomainPolicy', CertPolicyId())
1403 )
1404)
1406PolicyMappings.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1409class InhibitAnyPolicy(SkipCerts):
1410 pass
1413anyPolicy = _buildOid(id_ce_certificatePolicies, 0)
1416class CRLNumber(univ.Integer):
1417 pass
1420CRLNumber.subtypeSpec = constraint.ValueRangeConstraint(0, MAX)
1423class BaseCRLNumber(CRLNumber):
1424 pass
1427id_ce_nameConstraints = _buildOid(id_ce, 30)
1429id_kp_serverAuth = _buildOid(id_kp, 1)
1431id_ce_freshestCRL = _buildOid(id_ce, 46)
1433id_ce_cRLReasons = _buildOid(id_ce, 21)
1435id_ce_extKeyUsage = _buildOid(id_ce, 37)
1438class KeyIdentifier(univ.OctetString):
1439 pass
1442class AuthorityKeyIdentifier(univ.Sequence):
1443 pass
1446AuthorityKeyIdentifier.componentType = namedtype.NamedTypes(
1447 namedtype.OptionalNamedType('keyIdentifier', KeyIdentifier().subtype(
1448 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
1449 namedtype.OptionalNamedType('authorityCertIssuer', GeneralNames().subtype(
1450 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
1451 namedtype.OptionalNamedType('authorityCertSerialNumber', CertificateSerialNumber().subtype(
1452 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))
1453)
1456class FreshestCRL(CRLDistributionPoints):
1457 pass
1460id_ce_policyConstraints = _buildOid(id_ce, 36)
1462id_pe_authorityInfoAccess = _buildOid(id_pe, 1)
1465class AuthorityInfoAccessSyntax(univ.SequenceOf):
1466 pass
1469AuthorityInfoAccessSyntax.componentType = AccessDescription()
1470AuthorityInfoAccessSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1472id_holdinstruction_none = _buildOid(holdInstruction, 1)
1475class CPSuri(char.IA5String):
1476 pass
1479id_pe_subjectInfoAccess = _buildOid(id_pe, 11)
1482class SubjectKeyIdentifier(KeyIdentifier):
1483 pass
1486id_ce_subjectAltName = _buildOid(id_ce, 17)
1489class KeyPurposeId(univ.ObjectIdentifier):
1490 pass
1493class ExtKeyUsageSyntax(univ.SequenceOf):
1494 pass
1497ExtKeyUsageSyntax.componentType = KeyPurposeId()
1498ExtKeyUsageSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1501class HoldInstructionCode(univ.ObjectIdentifier):
1502 pass
1505id_ce_deltaCRLIndicator = _buildOid(id_ce, 27)
1507id_ce_keyUsage = _buildOid(id_ce, 15)
1509id_ce_holdInstructionCode = _buildOid(id_ce, 23)
1512class SubjectInfoAccessSyntax(univ.SequenceOf):
1513 pass
1516SubjectInfoAccessSyntax.componentType = AccessDescription()
1517SubjectInfoAccessSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX)
1520class InvalidityDate(useful.GeneralizedTime):
1521 pass
1524class KeyUsage(univ.BitString):
1525 pass
1528KeyUsage.namedValues = namedval.NamedValues(
1529 ('digitalSignature', 0),
1530 ('nonRepudiation', 1),
1531 ('keyEncipherment', 2),
1532 ('dataEncipherment', 3),
1533 ('keyAgreement', 4),
1534 ('keyCertSign', 5),
1535 ('cRLSign', 6),
1536 ('encipherOnly', 7),
1537 ('decipherOnly', 8)
1538)
1540id_ce_invalidityDate = _buildOid(id_ce, 24)
1542id_ce_policyMappings = _buildOid(id_ce, 33)
1544anyExtendedKeyUsage = _buildOid(id_ce_extKeyUsage, 0)
1546id_ce_privateKeyUsagePeriod = _buildOid(id_ce, 16)
1548id_ce_cRLNumber = _buildOid(id_ce, 20)
1551class CertificateIssuer(GeneralNames):
1552 pass
1555id_holdinstruction_reject = _buildOid(holdInstruction, 3)
1558class PolicyConstraints(univ.Sequence):
1559 pass
1562PolicyConstraints.componentType = namedtype.NamedTypes(
1563 namedtype.OptionalNamedType('requireExplicitPolicy',
1564 SkipCerts().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
1565 namedtype.OptionalNamedType('inhibitPolicyMapping',
1566 SkipCerts().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))
1567)
1569id_kp_clientAuth = _buildOid(id_kp, 2)
1571id_ce_subjectKeyIdentifier = _buildOid(id_ce, 14)
1573id_ce_inhibitAnyPolicy = _buildOid(id_ce, 54)
1575# map of ORAddress ExtensionAttribute type to ExtensionAttribute value
1577_oraddressExtensionAttributeMapUpdate = {
1578 common_name: CommonName(),
1579 teletex_common_name: TeletexCommonName(),
1580 teletex_organization_name: TeletexOrganizationName(),
1581 teletex_personal_name: TeletexPersonalName(),
1582 teletex_organizational_unit_names: TeletexOrganizationalUnitNames(),
1583 pds_name: PDSName(),
1584 physical_delivery_country_name: PhysicalDeliveryCountryName(),
1585 postal_code: PostalCode(),
1586 physical_delivery_office_name: PhysicalDeliveryOfficeName(),
1587 physical_delivery_office_number: PhysicalDeliveryOfficeNumber(),
1588 extension_OR_address_components: ExtensionORAddressComponents(),
1589 physical_delivery_personal_name: PhysicalDeliveryPersonalName(),
1590 physical_delivery_organization_name: PhysicalDeliveryOrganizationName(),
1591 extension_physical_delivery_address_components: ExtensionPhysicalDeliveryAddressComponents(),
1592 unformatted_postal_address: UnformattedPostalAddress(),
1593 street_address: StreetAddress(),
1594 post_office_box_address: PostOfficeBoxAddress(),
1595 poste_restante_address: PosteRestanteAddress(),
1596 unique_postal_name: UniquePostalName(),
1597 local_postal_attributes: LocalPostalAttributes(),
1598 extended_network_address: ExtendedNetworkAddress(),
1599 terminal_type: TerminalType(),
1600 teletex_domain_defined_attributes: TeletexDomainDefinedAttributes(),
1601}
1603oraddressExtensionAttributeMap.update(_oraddressExtensionAttributeMapUpdate)
1606# map of AttributeType -> AttributeValue
1608_certificateAttributesMapUpdate = {
1609 id_at_name: X520name(),
1610 id_at_surname: X520name(),
1611 id_at_givenName: X520name(),
1612 id_at_initials: X520name(),
1613 id_at_generationQualifier: X520name(),
1614 id_at_commonName: X520CommonName(),
1615 id_at_localityName: X520LocalityName(),
1616 id_at_stateOrProvinceName: X520StateOrProvinceName(),
1617 id_at_organizationName: X520OrganizationName(),
1618 id_at_organizationalUnitName: X520OrganizationalUnitName(),
1619 id_at_title: X520Title(),
1620 id_at_dnQualifier: X520dnQualifier(),
1621 id_at_countryName: X520countryName(),
1622 id_at_serialNumber: X520SerialNumber(),
1623 id_at_pseudonym: X520Pseudonym(),
1624 id_domainComponent: DomainComponent(),
1625 id_emailAddress: EmailAddress(),
1626}
1628certificateAttributesMap.update(_certificateAttributesMapUpdate)
1631# map of Certificate Extension OIDs to Extensions
1633_certificateExtensionsMap = {
1634 id_ce_authorityKeyIdentifier: AuthorityKeyIdentifier(),
1635 id_ce_subjectKeyIdentifier: SubjectKeyIdentifier(),
1636 id_ce_keyUsage: KeyUsage(),
1637 id_ce_privateKeyUsagePeriod: PrivateKeyUsagePeriod(),
1638 id_ce_certificatePolicies: CertificatePolicies(),
1639 id_ce_policyMappings: PolicyMappings(),
1640 id_ce_subjectAltName: SubjectAltName(),
1641 id_ce_issuerAltName: IssuerAltName(),
1642 id_ce_subjectDirectoryAttributes: SubjectDirectoryAttributes(),
1643 id_ce_basicConstraints: BasicConstraints(),
1644 id_ce_nameConstraints: NameConstraints(),
1645 id_ce_policyConstraints: PolicyConstraints(),
1646 id_ce_extKeyUsage: ExtKeyUsageSyntax(),
1647 id_ce_cRLDistributionPoints: CRLDistributionPoints(),
1648 id_pe_authorityInfoAccess: AuthorityInfoAccessSyntax(),
1649 id_ce_cRLNumber: univ.Integer(),
1650 id_ce_deltaCRLIndicator: BaseCRLNumber(),
1651 id_ce_issuingDistributionPoint: IssuingDistributionPoint(),
1652 id_ce_cRLReasons: CRLReason(),
1653 id_ce_holdInstructionCode: univ.ObjectIdentifier(),
1654 id_ce_invalidityDate: useful.GeneralizedTime(),
1655 id_ce_certificateIssuer: GeneralNames(),
1656}
1658certificateExtensionsMap.update(_certificateExtensionsMap)