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

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 

26 

27MAX = float('inf') 

28 

29 

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)) 

37 

38 return univ.ObjectIdentifier(output) 

39 

40 

41ub_e163_4_sub_address_length = univ.Integer(40) 

42 

43ub_e163_4_number_length = univ.Integer(15) 

44 

45unformatted_postal_address = univ.Integer(16) 

46 

47 

48class TerminalType(univ.Integer): 

49 pass 

50 

51 

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) 

60 

61 

62class Extension(univ.Sequence): 

63 pass 

64 

65 

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) 

71 

72 

73class Extensions(univ.SequenceOf): 

74 pass 

75 

76 

77Extensions.componentType = Extension() 

78Extensions.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

79 

80physical_delivery_personal_name = univ.Integer(13) 

81 

82ub_unformatted_address_length = univ.Integer(180) 

83 

84ub_pds_parameter_length = univ.Integer(30) 

85 

86ub_pds_physical_address_lines = univ.Integer(6) 

87 

88 

89class UnformattedPostalAddress(univ.Set): 

90 pass 

91 

92 

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) 

99 

100ub_organization_name = univ.Integer(64) 

101 

102 

103class X520OrganizationName(univ.Choice): 

104 pass 

105 

106 

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) 

119 

120ub_x121_address_length = univ.Integer(16) 

121 

122pds_name = univ.Integer(7) 

123 

124id_pkix = _buildOid(1, 3, 6, 1, 5, 5, 7) 

125 

126id_kp = _buildOid(id_pkix, 3) 

127 

128ub_postal_code_length = univ.Integer(16) 

129 

130 

131class PostalCode(univ.Choice): 

132 pass 

133 

134 

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) 

141 

142ub_generation_qualifier_length = univ.Integer(3) 

143 

144unique_postal_name = univ.Integer(20) 

145 

146 

147class DomainComponent(char.IA5String): 

148 pass 

149 

150 

151ub_domain_defined_attribute_value_length = univ.Integer(128) 

152 

153ub_match = univ.Integer(128) 

154 

155id_at = _buildOid(2, 5, 4) 

156 

157 

158class AttributeType(univ.ObjectIdentifier): 

159 pass 

160 

161 

162id_at_organizationalUnitName = _buildOid(id_at, 11) 

163 

164terminal_type = univ.Integer(23) 

165 

166 

167class PDSParameter(univ.Set): 

168 pass 

169 

170 

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) 

177 

178 

179class PhysicalDeliveryPersonalName(PDSParameter): 

180 pass 

181 

182 

183ub_surname_length = univ.Integer(40) 

184 

185id_ad = _buildOid(id_pkix, 48) 

186 

187ub_domain_defined_attribute_type_length = univ.Integer(8) 

188 

189 

190class TeletexDomainDefinedAttribute(univ.Sequence): 

191 pass 

192 

193 

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) 

200 

201ub_domain_defined_attributes = univ.Integer(4) 

202 

203 

204class TeletexDomainDefinedAttributes(univ.SequenceOf): 

205 pass 

206 

207 

208TeletexDomainDefinedAttributes.componentType = TeletexDomainDefinedAttribute() 

209TeletexDomainDefinedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_domain_defined_attributes) 

210 

211extended_network_address = univ.Integer(22) 

212 

213ub_locality_name = univ.Integer(128) 

214 

215 

216class X520LocalityName(univ.Choice): 

217 pass 

218 

219 

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) 

232 

233teletex_organization_name = univ.Integer(3) 

234 

235ub_given_name_length = univ.Integer(16) 

236 

237ub_initials_length = univ.Integer(5) 

238 

239 

240class PersonalName(univ.Set): 

241 pass 

242 

243 

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) 

258 

259ub_organizational_unit_name_length = univ.Integer(32) 

260 

261 

262class OrganizationalUnitName(char.PrintableString): 

263 pass 

264 

265 

266OrganizationalUnitName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length) 

267 

268id_at_generationQualifier = _buildOid(id_at, 44) 

269 

270 

271class Version(univ.Integer): 

272 pass 

273 

274 

275Version.namedValues = namedval.NamedValues( 

276 ('v1', 0), 

277 ('v2', 1), 

278 ('v3', 2) 

279) 

280 

281 

282class CertificateSerialNumber(univ.Integer): 

283 pass 

284 

285 

286algorithmIdentifierMap = {} 

287 

288 

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 ) 

296 

297 

298class Time(univ.Choice): 

299 pass 

300 

301 

302Time.componentType = namedtype.NamedTypes( 

303 namedtype.NamedType('utcTime', useful.UTCTime()), 

304 namedtype.NamedType('generalTime', useful.GeneralizedTime()) 

305) 

306 

307 

308class AttributeValue(univ.Any): 

309 pass 

310 

311 

312certificateAttributesMap = {} 

313 

314 

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 ) 

323 

324 

325class RelativeDistinguishedName(univ.SetOf): 

326 pass 

327 

328 

329RelativeDistinguishedName.componentType = AttributeTypeAndValue() 

330RelativeDistinguishedName.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

331 

332 

333class RDNSequence(univ.SequenceOf): 

334 pass 

335 

336 

337RDNSequence.componentType = RelativeDistinguishedName() 

338 

339 

340class Name(univ.Choice): 

341 pass 

342 

343 

344Name.componentType = namedtype.NamedTypes( 

345 namedtype.NamedType('rdnSequence', RDNSequence()) 

346) 

347 

348 

349class TBSCertList(univ.Sequence): 

350 pass 

351 

352 

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) 

373 

374 

375class CertificateList(univ.Sequence): 

376 pass 

377 

378 

379CertificateList.componentType = namedtype.NamedTypes( 

380 namedtype.NamedType('tbsCertList', TBSCertList()), 

381 namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()), 

382 namedtype.NamedType('signature', univ.BitString()) 

383) 

384 

385 

386class PhysicalDeliveryOfficeName(PDSParameter): 

387 pass 

388 

389 

390ub_extension_attributes = univ.Integer(256) 

391 

392certificateExtensionsMap = { 

393} 

394 

395oraddressExtensionAttributeMap = { 

396} 

397 

398 

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 ) 

409 

410id_qt = _buildOid(id_pkix, 2) 

411 

412id_qt_cps = _buildOid(id_qt, 1) 

413 

414id_at_stateOrProvinceName = _buildOid(id_at, 8) 

415 

416id_at_title = _buildOid(id_at, 12) 

417 

418id_at_serialNumber = _buildOid(id_at, 5) 

419 

420 

421class X520dnQualifier(char.PrintableString): 

422 pass 

423 

424 

425class PosteRestanteAddress(PDSParameter): 

426 pass 

427 

428 

429poste_restante_address = univ.Integer(19) 

430 

431 

432class UniqueIdentifier(univ.BitString): 

433 pass 

434 

435 

436class Validity(univ.Sequence): 

437 pass 

438 

439 

440Validity.componentType = namedtype.NamedTypes( 

441 namedtype.NamedType('notBefore', Time()), 

442 namedtype.NamedType('notAfter', Time()) 

443) 

444 

445 

446class SubjectPublicKeyInfo(univ.Sequence): 

447 pass 

448 

449 

450SubjectPublicKeyInfo.componentType = namedtype.NamedTypes( 

451 namedtype.NamedType('algorithm', AlgorithmIdentifier()), 

452 namedtype.NamedType('subjectPublicKey', univ.BitString()) 

453) 

454 

455 

456class TBSCertificate(univ.Sequence): 

457 pass 

458 

459 

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) 

477 

478physical_delivery_office_name = univ.Integer(10) 

479 

480ub_name = univ.Integer(32768) 

481 

482 

483class X520name(univ.Choice): 

484 pass 

485 

486 

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) 

498 

499id_at_dnQualifier = _buildOid(id_at, 46) 

500 

501ub_serial_number = univ.Integer(64) 

502 

503ub_pseudonym = univ.Integer(128) 

504 

505pkcs_9 = _buildOid(1, 2, 840, 113549, 1, 9) 

506 

507 

508class X121Address(char.NumericString): 

509 pass 

510 

511 

512X121Address.subtypeSpec = constraint.ValueSizeConstraint(1, ub_x121_address_length) 

513 

514 

515class NetworkAddress(X121Address): 

516 pass 

517 

518 

519ub_integer_options = univ.Integer(256) 

520 

521id_at_commonName = _buildOid(id_at, 3) 

522 

523ub_organization_name_length = univ.Integer(64) 

524 

525id_ad_ocsp = _buildOid(id_ad, 1) 

526 

527ub_country_name_numeric_length = univ.Integer(3) 

528 

529ub_country_name_alpha_length = univ.Integer(2) 

530 

531 

532class PhysicalDeliveryCountryName(univ.Choice): 

533 pass 

534 

535 

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) 

542 

543id_emailAddress = _buildOid(pkcs_9, 1) 

544 

545common_name = univ.Integer(1) 

546 

547 

548class X520Pseudonym(univ.Choice): 

549 pass 

550 

551 

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) 

564 

565ub_domain_name_length = univ.Integer(16) 

566 

567 

568class AdministrationDomainName(univ.Choice): 

569 pass 

570 

571 

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) 

580 

581 

582class PresentationAddress(univ.Sequence): 

583 pass 

584 

585 

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) 

596 

597 

598class ExtendedNetworkAddress(univ.Choice): 

599 pass 

600 

601 

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) 

614 

615 

616class TeletexOrganizationName(char.TeletexString): 

617 pass 

618 

619 

620TeletexOrganizationName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organization_name_length) 

621 

622ub_terminal_id_length = univ.Integer(24) 

623 

624 

625class TerminalIdentifier(char.PrintableString): 

626 pass 

627 

628 

629TerminalIdentifier.subtypeSpec = constraint.ValueSizeConstraint(1, ub_terminal_id_length) 

630 

631id_ad_caIssuers = _buildOid(id_ad, 2) 

632 

633id_at_countryName = _buildOid(id_at, 6) 

634 

635 

636class StreetAddress(PDSParameter): 

637 pass 

638 

639 

640postal_code = univ.Integer(9) 

641 

642id_at_givenName = _buildOid(id_at, 42) 

643 

644ub_title = univ.Integer(64) 

645 

646 

647class ExtensionAttributes(univ.SetOf): 

648 pass 

649 

650 

651ExtensionAttributes.componentType = ExtensionAttribute() 

652ExtensionAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_extension_attributes) 

653 

654ub_emailaddress_length = univ.Integer(255) 

655 

656id_ad_caRepository = _buildOid(id_ad, 5) 

657 

658 

659class ExtensionORAddressComponents(PDSParameter): 

660 pass 

661 

662 

663ub_organizational_unit_name = univ.Integer(64) 

664 

665 

666class X520OrganizationalUnitName(univ.Choice): 

667 pass 

668 

669 

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) 

682 

683 

684class LocalPostalAttributes(PDSParameter): 

685 pass 

686 

687 

688teletex_organizational_unit_names = univ.Integer(5) 

689 

690 

691class X520Title(univ.Choice): 

692 pass 

693 

694 

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) 

706 

707id_at_localityName = _buildOid(id_at, 7) 

708 

709id_at_initials = _buildOid(id_at, 43) 

710 

711ub_state_name = univ.Integer(128) 

712 

713 

714class X520StateOrProvinceName(univ.Choice): 

715 pass 

716 

717 

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) 

730 

731physical_delivery_organization_name = univ.Integer(14) 

732 

733id_at_surname = _buildOid(id_at, 4) 

734 

735 

736class X520countryName(char.PrintableString): 

737 pass 

738 

739 

740X520countryName.subtypeSpec = constraint.ValueSizeConstraint(2, 2) 

741 

742physical_delivery_office_number = univ.Integer(11) 

743 

744id_qt_unotice = _buildOid(id_qt, 2) 

745 

746 

747class X520SerialNumber(char.PrintableString): 

748 pass 

749 

750 

751X520SerialNumber.subtypeSpec = constraint.ValueSizeConstraint(1, ub_serial_number) 

752 

753 

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 ) 

761 

762ub_common_name = univ.Integer(64) 

763 

764id_pe = _buildOid(id_pkix, 1) 

765 

766 

767class ExtensionPhysicalDeliveryAddressComponents(PDSParameter): 

768 pass 

769 

770 

771class EmailAddress(char.IA5String): 

772 pass 

773 

774 

775EmailAddress.subtypeSpec = constraint.ValueSizeConstraint(1, ub_emailaddress_length) 

776 

777id_at_organizationName = _buildOid(id_at, 10) 

778 

779post_office_box_address = univ.Integer(18) 

780 

781 

782class BuiltInDomainDefinedAttribute(univ.Sequence): 

783 pass 

784 

785 

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) 

792 

793 

794class BuiltInDomainDefinedAttributes(univ.SequenceOf): 

795 pass 

796 

797 

798BuiltInDomainDefinedAttributes.componentType = BuiltInDomainDefinedAttribute() 

799BuiltInDomainDefinedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, ub_domain_defined_attributes) 

800 

801id_at_pseudonym = _buildOid(id_at, 65) 

802 

803id_domainComponent = _buildOid(0, 9, 2342, 19200300, 100, 1, 25) 

804 

805 

806class X520CommonName(univ.Choice): 

807 pass 

808 

809 

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) 

822 

823extension_OR_address_components = univ.Integer(12) 

824 

825ub_organizational_units = univ.Integer(4) 

826 

827teletex_personal_name = univ.Integer(4) 

828 

829ub_numeric_user_id_length = univ.Integer(32) 

830 

831ub_common_name_length = univ.Integer(64) 

832 

833 

834class TeletexCommonName(char.TeletexString): 

835 pass 

836 

837 

838TeletexCommonName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_common_name_length) 

839 

840 

841class PhysicalDeliveryOrganizationName(PDSParameter): 

842 pass 

843 

844 

845extension_physical_delivery_address_components = univ.Integer(15) 

846 

847 

848class NumericUserIdentifier(char.NumericString): 

849 pass 

850 

851 

852NumericUserIdentifier.subtypeSpec = constraint.ValueSizeConstraint(1, ub_numeric_user_id_length) 

853 

854 

855class CountryName(univ.Choice): 

856 pass 

857 

858 

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) 

866 

867 

868class OrganizationName(char.PrintableString): 

869 pass 

870 

871 

872OrganizationName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organization_name_length) 

873 

874 

875class OrganizationalUnitNames(univ.SequenceOf): 

876 pass 

877 

878 

879OrganizationalUnitNames.componentType = OrganizationalUnitName() 

880OrganizationalUnitNames.sizeSpec = constraint.ValueSizeConstraint(1, ub_organizational_units) 

881 

882 

883class PrivateDomainName(univ.Choice): 

884 pass 

885 

886 

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) 

893 

894 

895class BuiltInStandardAttributes(univ.Sequence): 

896 pass 

897 

898 

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) 

917 

918 

919class ORAddress(univ.Sequence): 

920 pass 

921 

922 

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) 

928 

929 

930class DistinguishedName(RDNSequence): 

931 pass 

932 

933 

934id_ad_timeStamping = _buildOid(id_ad, 3) 

935 

936 

937class PhysicalDeliveryOfficeNumber(PDSParameter): 

938 pass 

939 

940 

941teletex_domain_defined_attributes = univ.Integer(6) 

942 

943 

944class UniquePostalName(PDSParameter): 

945 pass 

946 

947 

948physical_delivery_country_name = univ.Integer(8) 

949 

950ub_pds_name_length = univ.Integer(16) 

951 

952 

953class PDSName(char.PrintableString): 

954 pass 

955 

956 

957PDSName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_pds_name_length) 

958 

959 

960class TeletexPersonalName(univ.Set): 

961 pass 

962 

963 

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) 

978 

979street_address = univ.Integer(17) 

980 

981 

982class PostOfficeBoxAddress(PDSParameter): 

983 pass 

984 

985 

986local_postal_attributes = univ.Integer(21) 

987 

988 

989class DirectoryString(univ.Choice): 

990 pass 

991 

992 

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) 

1003 

1004teletex_common_name = univ.Integer(2) 

1005 

1006 

1007class CommonName(char.PrintableString): 

1008 pass 

1009 

1010 

1011CommonName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_common_name_length) 

1012 

1013 

1014class Certificate(univ.Sequence): 

1015 pass 

1016 

1017 

1018Certificate.componentType = namedtype.NamedTypes( 

1019 namedtype.NamedType('tbsCertificate', TBSCertificate()), 

1020 namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()), 

1021 namedtype.NamedType('signature', univ.BitString()) 

1022) 

1023 

1024 

1025class TeletexOrganizationalUnitName(char.TeletexString): 

1026 pass 

1027 

1028 

1029TeletexOrganizationalUnitName.subtypeSpec = constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length) 

1030 

1031id_at_name = _buildOid(id_at, 41) 

1032 

1033 

1034class TeletexOrganizationalUnitNames(univ.SequenceOf): 

1035 pass 

1036 

1037 

1038TeletexOrganizationalUnitNames.componentType = TeletexOrganizationalUnitName() 

1039TeletexOrganizationalUnitNames.sizeSpec = constraint.ValueSizeConstraint(1, ub_organizational_units) 

1040 

1041id_ce = _buildOid(2, 5, 29) 

1042 

1043id_ce_issuerAltName = _buildOid(id_ce, 18) 

1044 

1045 

1046class SkipCerts(univ.Integer): 

1047 pass 

1048 

1049 

1050SkipCerts.subtypeSpec = constraint.ValueRangeConstraint(0, MAX) 

1051 

1052 

1053class CRLReason(univ.Enumerated): 

1054 pass 

1055 

1056 

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) 

1069 

1070 

1071class PrivateKeyUsagePeriod(univ.Sequence): 

1072 pass 

1073 

1074 

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) 

1081 

1082 

1083anotherNameMap = { 

1084 

1085} 

1086 

1087 

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 ) 

1097 

1098 

1099class EDIPartyName(univ.Sequence): 

1100 pass 

1101 

1102 

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) 

1109 

1110 

1111class GeneralName(univ.Choice): 

1112 pass 

1113 

1114 

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) 

1135 

1136 

1137class BaseDistance(univ.Integer): 

1138 pass 

1139 

1140 

1141BaseDistance.subtypeSpec = constraint.ValueRangeConstraint(0, MAX) 

1142 

1143 

1144class GeneralSubtree(univ.Sequence): 

1145 pass 

1146 

1147 

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) 

1155 

1156 

1157class GeneralNames(univ.SequenceOf): 

1158 pass 

1159 

1160 

1161GeneralNames.componentType = GeneralName() 

1162GeneralNames.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1163 

1164 

1165class DistributionPointName(univ.Choice): 

1166 pass 

1167 

1168 

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) 

1175 

1176 

1177class ReasonFlags(univ.BitString): 

1178 pass 

1179 

1180 

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) 

1192 

1193 

1194class IssuingDistributionPoint(univ.Sequence): 

1195 pass 

1196 

1197 

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) 

1212 

1213id_ce_certificatePolicies = _buildOid(id_ce, 32) 

1214 

1215id_kp_emailProtection = _buildOid(id_kp, 4) 

1216 

1217 

1218class AccessDescription(univ.Sequence): 

1219 pass 

1220 

1221 

1222AccessDescription.componentType = namedtype.NamedTypes( 

1223 namedtype.NamedType('accessMethod', univ.ObjectIdentifier()), 

1224 namedtype.NamedType('accessLocation', GeneralName()) 

1225) 

1226 

1227 

1228class IssuerAltName(GeneralNames): 

1229 pass 

1230 

1231 

1232id_ce_cRLDistributionPoints = _buildOid(id_ce, 31) 

1233 

1234holdInstruction = _buildOid(2, 2, 840, 10040, 2) 

1235 

1236id_holdinstruction_callissuer = _buildOid(holdInstruction, 2) 

1237 

1238id_ce_subjectDirectoryAttributes = _buildOid(id_ce, 9) 

1239 

1240id_ce_issuingDistributionPoint = _buildOid(id_ce, 28) 

1241 

1242 

1243class DistributionPoint(univ.Sequence): 

1244 pass 

1245 

1246 

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) 

1255 

1256 

1257class CRLDistributionPoints(univ.SequenceOf): 

1258 pass 

1259 

1260 

1261CRLDistributionPoints.componentType = DistributionPoint() 

1262CRLDistributionPoints.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1263 

1264 

1265class GeneralSubtrees(univ.SequenceOf): 

1266 pass 

1267 

1268 

1269GeneralSubtrees.componentType = GeneralSubtree() 

1270GeneralSubtrees.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1271 

1272 

1273class NameConstraints(univ.Sequence): 

1274 pass 

1275 

1276 

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) 

1283 

1284 

1285class SubjectDirectoryAttributes(univ.SequenceOf): 

1286 pass 

1287 

1288 

1289SubjectDirectoryAttributes.componentType = Attribute() 

1290SubjectDirectoryAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1291 

1292id_kp_OCSPSigning = _buildOid(id_kp, 9) 

1293 

1294id_kp_timeStamping = _buildOid(id_kp, 8) 

1295 

1296 

1297class DisplayText(univ.Choice): 

1298 pass 

1299 

1300 

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) 

1308 

1309 

1310class NoticeReference(univ.Sequence): 

1311 pass 

1312 

1313 

1314NoticeReference.componentType = namedtype.NamedTypes( 

1315 namedtype.NamedType('organization', DisplayText()), 

1316 namedtype.NamedType('noticeNumbers', univ.SequenceOf(componentType=univ.Integer())) 

1317) 

1318 

1319 

1320class UserNotice(univ.Sequence): 

1321 pass 

1322 

1323 

1324UserNotice.componentType = namedtype.NamedTypes( 

1325 namedtype.OptionalNamedType('noticeRef', NoticeReference()), 

1326 namedtype.OptionalNamedType('explicitText', DisplayText()) 

1327) 

1328 

1329 

1330class PolicyQualifierId(univ.ObjectIdentifier): 

1331 pass 

1332 

1333 

1334policyQualifierInfoMap = { 

1335 

1336} 

1337 

1338 

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 ) 

1347 

1348 

1349class CertPolicyId(univ.ObjectIdentifier): 

1350 pass 

1351 

1352 

1353class PolicyInformation(univ.Sequence): 

1354 pass 

1355 

1356 

1357PolicyInformation.componentType = namedtype.NamedTypes( 

1358 namedtype.NamedType('policyIdentifier', CertPolicyId()), 

1359 namedtype.OptionalNamedType('policyQualifiers', univ.SequenceOf(componentType=PolicyQualifierInfo())) 

1360) 

1361 

1362 

1363class CertificatePolicies(univ.SequenceOf): 

1364 pass 

1365 

1366 

1367CertificatePolicies.componentType = PolicyInformation() 

1368CertificatePolicies.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1369 

1370 

1371class SubjectAltName(GeneralNames): 

1372 pass 

1373 

1374 

1375id_ce_basicConstraints = _buildOid(id_ce, 19) 

1376 

1377id_ce_authorityKeyIdentifier = _buildOid(id_ce, 35) 

1378 

1379id_kp_codeSigning = _buildOid(id_kp, 3) 

1380 

1381 

1382class BasicConstraints(univ.Sequence): 

1383 pass 

1384 

1385 

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) 

1391 

1392id_ce_certificateIssuer = _buildOid(id_ce, 29) 

1393 

1394 

1395class PolicyMappings(univ.SequenceOf): 

1396 pass 

1397 

1398 

1399PolicyMappings.componentType = univ.Sequence( 

1400 componentType=namedtype.NamedTypes( 

1401 namedtype.NamedType('issuerDomainPolicy', CertPolicyId()), 

1402 namedtype.NamedType('subjectDomainPolicy', CertPolicyId()) 

1403 ) 

1404) 

1405 

1406PolicyMappings.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1407 

1408 

1409class InhibitAnyPolicy(SkipCerts): 

1410 pass 

1411 

1412 

1413anyPolicy = _buildOid(id_ce_certificatePolicies, 0) 

1414 

1415 

1416class CRLNumber(univ.Integer): 

1417 pass 

1418 

1419 

1420CRLNumber.subtypeSpec = constraint.ValueRangeConstraint(0, MAX) 

1421 

1422 

1423class BaseCRLNumber(CRLNumber): 

1424 pass 

1425 

1426 

1427id_ce_nameConstraints = _buildOid(id_ce, 30) 

1428 

1429id_kp_serverAuth = _buildOid(id_kp, 1) 

1430 

1431id_ce_freshestCRL = _buildOid(id_ce, 46) 

1432 

1433id_ce_cRLReasons = _buildOid(id_ce, 21) 

1434 

1435id_ce_extKeyUsage = _buildOid(id_ce, 37) 

1436 

1437 

1438class KeyIdentifier(univ.OctetString): 

1439 pass 

1440 

1441 

1442class AuthorityKeyIdentifier(univ.Sequence): 

1443 pass 

1444 

1445 

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) 

1454 

1455 

1456class FreshestCRL(CRLDistributionPoints): 

1457 pass 

1458 

1459 

1460id_ce_policyConstraints = _buildOid(id_ce, 36) 

1461 

1462id_pe_authorityInfoAccess = _buildOid(id_pe, 1) 

1463 

1464 

1465class AuthorityInfoAccessSyntax(univ.SequenceOf): 

1466 pass 

1467 

1468 

1469AuthorityInfoAccessSyntax.componentType = AccessDescription() 

1470AuthorityInfoAccessSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1471 

1472id_holdinstruction_none = _buildOid(holdInstruction, 1) 

1473 

1474 

1475class CPSuri(char.IA5String): 

1476 pass 

1477 

1478 

1479id_pe_subjectInfoAccess = _buildOid(id_pe, 11) 

1480 

1481 

1482class SubjectKeyIdentifier(KeyIdentifier): 

1483 pass 

1484 

1485 

1486id_ce_subjectAltName = _buildOid(id_ce, 17) 

1487 

1488 

1489class KeyPurposeId(univ.ObjectIdentifier): 

1490 pass 

1491 

1492 

1493class ExtKeyUsageSyntax(univ.SequenceOf): 

1494 pass 

1495 

1496 

1497ExtKeyUsageSyntax.componentType = KeyPurposeId() 

1498ExtKeyUsageSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1499 

1500 

1501class HoldInstructionCode(univ.ObjectIdentifier): 

1502 pass 

1503 

1504 

1505id_ce_deltaCRLIndicator = _buildOid(id_ce, 27) 

1506 

1507id_ce_keyUsage = _buildOid(id_ce, 15) 

1508 

1509id_ce_holdInstructionCode = _buildOid(id_ce, 23) 

1510 

1511 

1512class SubjectInfoAccessSyntax(univ.SequenceOf): 

1513 pass 

1514 

1515 

1516SubjectInfoAccessSyntax.componentType = AccessDescription() 

1517SubjectInfoAccessSyntax.sizeSpec = constraint.ValueSizeConstraint(1, MAX) 

1518 

1519 

1520class InvalidityDate(useful.GeneralizedTime): 

1521 pass 

1522 

1523 

1524class KeyUsage(univ.BitString): 

1525 pass 

1526 

1527 

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) 

1539 

1540id_ce_invalidityDate = _buildOid(id_ce, 24) 

1541 

1542id_ce_policyMappings = _buildOid(id_ce, 33) 

1543 

1544anyExtendedKeyUsage = _buildOid(id_ce_extKeyUsage, 0) 

1545 

1546id_ce_privateKeyUsagePeriod = _buildOid(id_ce, 16) 

1547 

1548id_ce_cRLNumber = _buildOid(id_ce, 20) 

1549 

1550 

1551class CertificateIssuer(GeneralNames): 

1552 pass 

1553 

1554 

1555id_holdinstruction_reject = _buildOid(holdInstruction, 3) 

1556 

1557 

1558class PolicyConstraints(univ.Sequence): 

1559 pass 

1560 

1561 

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) 

1568 

1569id_kp_clientAuth = _buildOid(id_kp, 2) 

1570 

1571id_ce_subjectKeyIdentifier = _buildOid(id_ce, 14) 

1572 

1573id_ce_inhibitAnyPolicy = _buildOid(id_ce, 54) 

1574 

1575# map of ORAddress ExtensionAttribute type to ExtensionAttribute value 

1576 

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} 

1602 

1603oraddressExtensionAttributeMap.update(_oraddressExtensionAttributeMapUpdate) 

1604 

1605 

1606# map of AttributeType -> AttributeValue 

1607 

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} 

1627 

1628certificateAttributesMap.update(_certificateAttributesMapUpdate) 

1629 

1630 

1631# map of Certificate Extension OIDs to Extensions 

1632 

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} 

1657 

1658certificateExtensionsMap.update(_certificateExtensionsMap)