codekingpro/portable-devtools
114k
1#2# This file is part of pyasn1-modules software.3#4# Created by Russ Housley.5#6# Copyright (c) 2019, Vigil Security, LLC7# License: http://snmplabs.com/pyasn1/license.html8#9# NSA's CMS Key Management Attributes10#11# ASN.1 source from:12# https://www.rfc-editor.org/rfc/rfc7906.txt13# https://www.rfc-editor.org/errata/eid585014#15 16from pyasn1.type import char17from pyasn1.type import constraint18from pyasn1.type import namedtype19from pyasn1.type import namedval20from pyasn1.type import tag21from pyasn1.type import univ22 23from pyasn1_modules import rfc263424from pyasn1_modules import rfc410825from pyasn1_modules import rfc528026from pyasn1_modules import rfc565227from pyasn1_modules import rfc601028from pyasn1_modules import rfc601929from pyasn1_modules import rfc719130 31MAX = float('inf')32 33 34# Imports From RFC 263435 36id_aa_contentHint = rfc2634.id_aa_contentHint37 38ContentHints = rfc2634.ContentHints39 40id_aa_securityLabel = rfc2634.id_aa_securityLabel41 42SecurityPolicyIdentifier = rfc2634.SecurityPolicyIdentifier43 44SecurityClassification = rfc2634.SecurityClassification45 46ESSPrivacyMark = rfc2634.ESSPrivacyMark47 48SecurityCategories= rfc2634.SecurityCategories49 50ESSSecurityLabel = rfc2634.ESSSecurityLabel51 52 53# Imports From RFC 410854 55id_aa_communityIdentifiers = rfc4108.id_aa_communityIdentifiers56 57CommunityIdentifier = rfc4108.CommunityIdentifier58 59CommunityIdentifiers = rfc4108.CommunityIdentifiers60 61 62# Imports From RFC 528063 64AlgorithmIdentifier = rfc5280.AlgorithmIdentifier65 66Name = rfc5280.Name67 68Certificate = rfc5280.Certificate69 70GeneralNames = rfc5280.GeneralNames71 72GeneralName = rfc5280.GeneralName73 74 75SubjectInfoAccessSyntax = rfc5280.SubjectInfoAccessSyntax76 77id_pkix = rfc5280.id_pkix78 79id_pe = rfc5280.id_pe80 81id_pe_subjectInfoAccess = rfc5280.id_pe_subjectInfoAccess82 83 84# Imports From RFC 601085 86CMSContentConstraints = rfc6010.CMSContentConstraints87 88 89# Imports From RFC 601990 91BinaryTime = rfc6019.BinaryTime92 93id_aa_binarySigningTime = rfc6019.id_aa_binarySigningTime94 95BinarySigningTime = rfc6019.BinarySigningTime96 97 98# Imports From RFC 565299 100Attribute = rfc5652.Attribute101 102CertificateSet = rfc5652.CertificateSet103 104CertificateChoices = rfc5652.CertificateChoices105 106id_contentType = rfc5652.id_contentType107 108ContentType = rfc5652.ContentType109 110id_messageDigest = rfc5652.id_messageDigest111 112MessageDigest = rfc5652.MessageDigest113 114 115# Imports From RFC 7191116 117SIREntityName = rfc7191.SIREntityName118 119id_aa_KP_keyPkgIdAndReceiptReq = rfc7191.id_aa_KP_keyPkgIdAndReceiptReq120 121KeyPkgIdentifierAndReceiptReq = rfc7191.KeyPkgIdentifierAndReceiptReq122 123 124# Key Province Attribute125 126id_aa_KP_keyProvinceV2 = univ.ObjectIdentifier('2.16.840.1.101.2.1.5.71')127 128 129class KeyProvinceV2(univ.ObjectIdentifier):130 pass131 132 133aa_keyProvince_v2 = Attribute()134aa_keyProvince_v2['attrType'] = id_aa_KP_keyProvinceV2135aa_keyProvince_v2['attrValues'][0] = KeyProvinceV2()136 137 138# Manifest Attribute139 140id_aa_KP_manifest = univ.ObjectIdentifier('2.16.840.1.101.2.1.5.72')141 142 143class ShortTitle(char.PrintableString):144 pass145 146 147class Manifest(univ.SequenceOf):148 pass149 150Manifest.componentType = ShortTitle()151Manifest.subtypeSpec=constraint.ValueSizeConstraint(1, MAX)152 153 154aa_manifest = Attribute()155aa_manifest['attrType'] = id_aa_KP_manifest156aa_manifest['attrValues'][0] = Manifest()157 158 159# Key Algorithm Attribute160 161id_kma_keyAlgorithm = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.1')162 163 164class KeyAlgorithm(univ.Sequence):165 pass166 167KeyAlgorithm.componentType = namedtype.NamedTypes(168 namedtype.NamedType('keyAlg', univ.ObjectIdentifier()),169 namedtype.OptionalNamedType('checkWordAlg', univ.ObjectIdentifier().subtype(170 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),171 namedtype.OptionalNamedType('crcAlg', univ.ObjectIdentifier().subtype(172 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))173)174 175 176aa_keyAlgorithm = Attribute()177aa_keyAlgorithm['attrType'] = id_kma_keyAlgorithm178aa_keyAlgorithm['attrValues'][0] = KeyAlgorithm()179 180 181# User Certificate Attribute182 183id_at_userCertificate = univ.ObjectIdentifier('2.5.4.36')184 185 186aa_userCertificate = Attribute()187aa_userCertificate['attrType'] = id_at_userCertificate188aa_userCertificate['attrValues'][0] = Certificate()189 190 191# Key Package Receivers Attribute192 193id_kma_keyPkgReceiversV2 = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.16')194 195 196class KeyPkgReceiver(univ.Choice):197 pass198 199KeyPkgReceiver.componentType = namedtype.NamedTypes(200 namedtype.NamedType('sirEntity', SIREntityName().subtype(201 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),202 namedtype.NamedType('community', CommunityIdentifier().subtype(203 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))204)205 206 207class KeyPkgReceiversV2(univ.SequenceOf):208 pass209 210KeyPkgReceiversV2.componentType = KeyPkgReceiver()211KeyPkgReceiversV2.subtypeSpec=constraint.ValueSizeConstraint(1, MAX)212 213 214aa_keyPackageReceivers_v2 = Attribute()215aa_keyPackageReceivers_v2['attrType'] = id_kma_keyPkgReceiversV2216aa_keyPackageReceivers_v2['attrValues'][0] = KeyPkgReceiversV2()217 218 219# TSEC Nomenclature Attribute220 221id_kma_TSECNomenclature = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.3')222 223 224class CharEdition(char.PrintableString):225 pass226 227 228class CharEditionRange(univ.Sequence):229 pass230 231CharEditionRange.componentType = namedtype.NamedTypes(232 namedtype.NamedType('firstCharEdition', CharEdition()),233 namedtype.NamedType('lastCharEdition', CharEdition())234)235 236 237class NumEdition(univ.Integer):238 pass239 240NumEdition.subtypeSpec = constraint.ValueRangeConstraint(0, 308915776)241 242 243class NumEditionRange(univ.Sequence):244 pass245 246NumEditionRange.componentType = namedtype.NamedTypes(247 namedtype.NamedType('firstNumEdition', NumEdition()),248 namedtype.NamedType('lastNumEdition', NumEdition())249)250 251 252class EditionID(univ.Choice):253 pass254 255EditionID.componentType = namedtype.NamedTypes(256 namedtype.NamedType('char', univ.Choice(componentType=namedtype.NamedTypes(257 namedtype.NamedType('charEdition', CharEdition().subtype(258 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),259 namedtype.NamedType('charEditionRange', CharEditionRange().subtype(260 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2)))261 ))262 ),263 namedtype.NamedType('num', univ.Choice(componentType=namedtype.NamedTypes(264 namedtype.NamedType('numEdition', NumEdition().subtype(265 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),266 namedtype.NamedType('numEditionRange', NumEditionRange().subtype(267 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4)))268 ))269 )270)271 272 273class Register(univ.Integer):274 pass275 276Register.subtypeSpec = constraint.ValueRangeConstraint(0, 2147483647)277 278 279class RegisterRange(univ.Sequence):280 pass281 282RegisterRange.componentType = namedtype.NamedTypes(283 namedtype.NamedType('firstRegister', Register()),284 namedtype.NamedType('lastRegister', Register())285)286 287 288class RegisterID(univ.Choice):289 pass290 291RegisterID.componentType = namedtype.NamedTypes(292 namedtype.NamedType('register', Register().subtype(293 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))),294 namedtype.NamedType('registerRange', RegisterRange().subtype(295 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 6)))296)297 298 299class SegmentNumber(univ.Integer):300 pass301 302SegmentNumber.subtypeSpec = constraint.ValueRangeConstraint(1, 127)303 304 305class SegmentRange(univ.Sequence):306 pass307 308SegmentRange.componentType = namedtype.NamedTypes(309 namedtype.NamedType('firstSegment', SegmentNumber()),310 namedtype.NamedType('lastSegment', SegmentNumber())311)312 313 314class SegmentID(univ.Choice):315 pass316 317SegmentID.componentType = namedtype.NamedTypes(318 namedtype.NamedType('segmentNumber', SegmentNumber().subtype(319 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),320 namedtype.NamedType('segmentRange', SegmentRange().subtype(321 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 8)))322)323 324 325class TSECNomenclature(univ.Sequence):326 pass327 328TSECNomenclature.componentType = namedtype.NamedTypes(329 namedtype.NamedType('shortTitle', ShortTitle()),330 namedtype.OptionalNamedType('editionID', EditionID()),331 namedtype.OptionalNamedType('registerID', RegisterID()),332 namedtype.OptionalNamedType('segmentID', SegmentID())333)334 335 336aa_tsecNomenclature = Attribute()337aa_tsecNomenclature['attrType'] = id_kma_TSECNomenclature338aa_tsecNomenclature['attrValues'][0] = TSECNomenclature()339 340 341# Key Purpose Attribute342 343id_kma_keyPurpose = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.13')344 345 346class KeyPurpose(univ.Enumerated):347 pass348 349KeyPurpose.namedValues = namedval.NamedValues(350 ('n-a', 0),351 ('a', 65),352 ('b', 66),353 ('l', 76),354 ('m', 77),355 ('r', 82),356 ('s', 83),357 ('t', 84),358 ('v', 86),359 ('x', 88),360 ('z', 90)361)362 363 364aa_keyPurpose = Attribute()365aa_keyPurpose['attrType'] = id_kma_keyPurpose366aa_keyPurpose['attrValues'][0] = KeyPurpose()367 368 369# Key Use Attribute370 371id_kma_keyUse = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.14')372 373 374class KeyUse(univ.Enumerated):375 pass376 377KeyUse.namedValues = namedval.NamedValues(378 ('n-a', 0),379 ('ffk', 1),380 ('kek', 2),381 ('kpk', 3),382 ('msk', 4),383 ('qkek', 5),384 ('tek', 6),385 ('tsk', 7),386 ('trkek', 8),387 ('nfk', 9),388 ('effk', 10),389 ('ebfk', 11),390 ('aek', 12),391 ('wod', 13),392 ('kesk', 246),393 ('eik', 247),394 ('ask', 248),395 ('kmk', 249),396 ('rsk', 250),397 ('csk', 251),398 ('sak', 252),399 ('rgk', 253),400 ('cek', 254),401 ('exk', 255)402)403 404 405aa_keyUse = Attribute()406aa_keyPurpose['attrType'] = id_kma_keyUse407aa_keyPurpose['attrValues'][0] = KeyUse()408 409 410# Transport Key Attribute411 412id_kma_transportKey = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.15')413 414 415class TransOp(univ.Enumerated):416 pass417 418TransOp.namedValues = namedval.NamedValues(419 ('transport', 1),420 ('operational', 2)421)422 423 424aa_transportKey = Attribute()425aa_transportKey['attrType'] = id_kma_transportKey426aa_transportKey['attrValues'][0] = TransOp()427 428 429# Key Distribution Period Attribute430 431id_kma_keyDistPeriod = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.5')432 433 434class KeyDistPeriod(univ.Sequence):435 pass436 437KeyDistPeriod.componentType = namedtype.NamedTypes(438 namedtype.OptionalNamedType('doNotDistBefore', BinaryTime().subtype(439 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),440 namedtype.NamedType('doNotDistAfter', BinaryTime())441)442 443 444aa_keyDistributionPeriod = Attribute()445aa_keyDistributionPeriod['attrType'] = id_kma_keyDistPeriod446aa_keyDistributionPeriod['attrValues'][0] = KeyDistPeriod()447 448 449# Key Validity Period Attribute450 451id_kma_keyValidityPeriod = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.6')452 453 454class KeyValidityPeriod(univ.Sequence):455 pass456 457KeyValidityPeriod.componentType = namedtype.NamedTypes(458 namedtype.NamedType('doNotUseBefore', BinaryTime()),459 namedtype.OptionalNamedType('doNotUseAfter', BinaryTime())460)461 462 463aa_keyValidityPeriod = Attribute()464aa_keyValidityPeriod['attrType'] = id_kma_keyValidityPeriod465aa_keyValidityPeriod['attrValues'][0] = KeyValidityPeriod()466 467 468# Key Duration Attribute469 470id_kma_keyDuration = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.7')471 472 473ub_KeyDuration_months = univ.Integer(72)474 475ub_KeyDuration_hours = univ.Integer(96)476 477ub_KeyDuration_days = univ.Integer(732)478 479ub_KeyDuration_weeks = univ.Integer(104)480 481ub_KeyDuration_years = univ.Integer(100)482 483 484class KeyDuration(univ.Choice):485 pass486 487KeyDuration.componentType = namedtype.NamedTypes(488 namedtype.NamedType('hours', univ.Integer().subtype(489 subtypeSpec=constraint.ValueRangeConstraint(1, ub_KeyDuration_hours)).subtype(490 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),491 namedtype.NamedType('days', univ.Integer().subtype(492 subtypeSpec=constraint.ValueRangeConstraint(1, ub_KeyDuration_days))),493 namedtype.NamedType('weeks', univ.Integer().subtype(494 subtypeSpec=constraint.ValueRangeConstraint(1, ub_KeyDuration_weeks)).subtype(495 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),496 namedtype.NamedType('months', univ.Integer().subtype(497 subtypeSpec=constraint.ValueRangeConstraint(1, ub_KeyDuration_months)).subtype(498 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),499 namedtype.NamedType('years', univ.Integer().subtype(500 subtypeSpec=constraint.ValueRangeConstraint(1, ub_KeyDuration_years)).subtype(501 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))502)503 504 505aa_keyDurationPeriod = Attribute()506aa_keyDurationPeriod['attrType'] = id_kma_keyDuration507aa_keyDurationPeriod['attrValues'][0] = KeyDuration()508 509 510# Classification Attribute511 512id_aa_KP_classification = univ.ObjectIdentifier(id_aa_securityLabel)513 514 515id_enumeratedPermissiveAttributes = univ.ObjectIdentifier('2.16.840.1.101.2.1.8.3.1')516 517id_enumeratedRestrictiveAttributes = univ.ObjectIdentifier('2.16.840.1.101.2.1.8.3.4')518 519id_informativeAttributes = univ.ObjectIdentifier('2.16.840.1.101.2.1.8.3.3')520 521 522class SecurityAttribute(univ.Integer):523 pass524 525SecurityAttribute.subtypeSpec = constraint.ValueRangeConstraint(0, MAX)526 527 528class EnumeratedTag(univ.Sequence):529 pass530 531EnumeratedTag.componentType = namedtype.NamedTypes(532 namedtype.NamedType('tagName', univ.ObjectIdentifier()),533 namedtype.NamedType('attributeList', univ.SetOf(componentType=SecurityAttribute()))534)535 536 537class FreeFormField(univ.Choice):538 pass539 540FreeFormField.componentType = namedtype.NamedTypes(541 namedtype.NamedType('bitSetAttributes', univ.BitString()), # Not permitted in RFC 7906542 namedtype.NamedType('securityAttributes', univ.SetOf(componentType=SecurityAttribute()))543)544 545 546class InformativeTag(univ.Sequence):547 pass548 549InformativeTag.componentType = namedtype.NamedTypes(550 namedtype.NamedType('tagName', univ.ObjectIdentifier()),551 namedtype.NamedType('attributes', FreeFormField())552)553 554 555class Classification(ESSSecurityLabel):556 pass557 558 559aa_classification = Attribute()560aa_classification['attrType'] = id_aa_KP_classification561aa_classification['attrValues'][0] = Classification()562 563 564# Split Identifier Attribute565 566id_kma_splitID = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.11')567 568 569class SplitID(univ.Sequence):570 pass571 572SplitID.componentType = namedtype.NamedTypes(573 namedtype.NamedType('half', univ.Enumerated(574 namedValues=namedval.NamedValues(('a', 0), ('b', 1)))),575 namedtype.OptionalNamedType('combineAlg', AlgorithmIdentifier())576)577 578 579aa_splitIdentifier = Attribute()580aa_splitIdentifier['attrType'] = id_kma_splitID581aa_splitIdentifier['attrValues'][0] = SplitID()582 583 584# Key Package Type Attribute585 586id_kma_keyPkgType = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.12')587 588 589class KeyPkgType(univ.ObjectIdentifier):590 pass591 592 593aa_keyPackageType = Attribute()594aa_keyPackageType['attrType'] = id_kma_keyPkgType595aa_keyPackageType['attrValues'][0] = KeyPkgType()596 597 598# Signature Usage Attribute599 600id_kma_sigUsageV3 = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.22')601 602 603class SignatureUsage(CMSContentConstraints):604 pass605 606 607aa_signatureUsage_v3 = Attribute()608aa_signatureUsage_v3['attrType'] = id_kma_sigUsageV3609aa_signatureUsage_v3['attrValues'][0] = SignatureUsage()610 611 612# Other Certificate Format Attribute613 614id_kma_otherCertFormats = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.19')615 616 617aa_otherCertificateFormats = Attribute()618aa_signatureUsage_v3['attrType'] = id_kma_otherCertFormats619aa_signatureUsage_v3['attrValues'][0] = CertificateChoices()620 621 622# PKI Path Attribute623 624id_at_pkiPath = univ.ObjectIdentifier('2.5.4.70')625 626 627class PkiPath(univ.SequenceOf):628 pass629 630PkiPath.componentType = Certificate()631PkiPath.subtypeSpec=constraint.ValueSizeConstraint(1, MAX)632 633 634aa_pkiPath = Attribute()635aa_pkiPath['attrType'] = id_at_pkiPath636aa_pkiPath['attrValues'][0] = PkiPath()637 638 639# Useful Certificates Attribute640 641id_kma_usefulCerts = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.20')642 643 644aa_usefulCertificates = Attribute()645aa_usefulCertificates['attrType'] = id_kma_usefulCerts646aa_usefulCertificates['attrValues'][0] = CertificateSet()647 648 649# Key Wrap Attribute650 651id_kma_keyWrapAlgorithm = univ.ObjectIdentifier('2.16.840.1.101.2.1.13.21')652 653 654aa_keyWrapAlgorithm = Attribute()655aa_keyWrapAlgorithm['attrType'] = id_kma_keyWrapAlgorithm656aa_keyWrapAlgorithm['attrValues'][0] = AlgorithmIdentifier()657 658 659# Content Decryption Key Identifier Attribute660 661id_aa_KP_contentDecryptKeyID = univ.ObjectIdentifier('2.16.840.1.101.2.1.5.66')662 663 664class ContentDecryptKeyID(univ.OctetString):665 pass666 667 668aa_contentDecryptKeyIdentifier = Attribute()669aa_contentDecryptKeyIdentifier['attrType'] = id_aa_KP_contentDecryptKeyID670aa_contentDecryptKeyIdentifier['attrValues'][0] = ContentDecryptKeyID()671 672 673# Certificate Pointers Attribute674 675aa_certificatePointers = Attribute()676aa_certificatePointers['attrType'] = id_pe_subjectInfoAccess677aa_certificatePointers['attrValues'][0] = SubjectInfoAccessSyntax()678 679 680# CRL Pointers Attribute681 682id_aa_KP_crlPointers = univ.ObjectIdentifier('2.16.840.1.101.2.1.5.70')683 684 685aa_cRLDistributionPoints = Attribute()686aa_cRLDistributionPoints['attrType'] = id_aa_KP_crlPointers687aa_cRLDistributionPoints['attrValues'][0] = GeneralNames()688 689 690# Extended Error Codes691 692id_errorCodes = univ.ObjectIdentifier('2.16.840.1.101.2.1.22')693 694id_missingKeyType = univ.ObjectIdentifier('2.16.840.1.101.2.1.22.1')695 696id_privacyMarkTooLong = univ.ObjectIdentifier('2.16.840.1.101.2.1.22.2')697 698id_unrecognizedSecurityPolicy = univ.ObjectIdentifier('2.16.840.1.101.2.1.22.3')699 700 701# Map of Attribute Type OIDs to Attributes added to the702# ones that are in rfc5652.py703 704_cmsAttributesMapUpdate = {705 id_aa_contentHint: ContentHints(),706 id_aa_communityIdentifiers: CommunityIdentifiers(),707 id_aa_binarySigningTime: BinarySigningTime(),708 id_contentType: ContentType(),709 id_messageDigest: MessageDigest(),710 id_aa_KP_keyPkgIdAndReceiptReq: KeyPkgIdentifierAndReceiptReq(),711 id_aa_KP_keyProvinceV2: KeyProvinceV2(),712 id_aa_KP_manifest: Manifest(),713 id_kma_keyAlgorithm: KeyAlgorithm(),714 id_at_userCertificate: Certificate(),715 id_kma_keyPkgReceiversV2: KeyPkgReceiversV2(),716 id_kma_TSECNomenclature: TSECNomenclature(),717 id_kma_keyPurpose: KeyPurpose(),718 id_kma_keyUse: KeyUse(),719 id_kma_transportKey: TransOp(),720 id_kma_keyDistPeriod: KeyDistPeriod(),721 id_kma_keyValidityPeriod: KeyValidityPeriod(),722 id_kma_keyDuration: KeyDuration(),723 id_aa_KP_classification: Classification(),724 id_kma_splitID: SplitID(),725 id_kma_keyPkgType: KeyPkgType(),726 id_kma_sigUsageV3: SignatureUsage(),727 id_kma_otherCertFormats: CertificateChoices(),728 id_at_pkiPath: PkiPath(),729 id_kma_usefulCerts: CertificateSet(),730 id_kma_keyWrapAlgorithm: AlgorithmIdentifier(),731 id_aa_KP_contentDecryptKeyID: ContentDecryptKeyID(),732 id_pe_subjectInfoAccess: SubjectInfoAccessSyntax(),733 id_aa_KP_crlPointers: GeneralNames(),734}735 736rfc5652.cmsAttributesMap.update(_cmsAttributesMapUpdate)737 