| # | |
| # This file is part of pyasn1-modules software. | |
| # | |
| # Created by Russ Housley with some assistance from asn1ate v.0.6.0. | |
| # Modified by Russ Housley to add a map for use with opentypes. | |
| # | |
| # Copyright (c) 2019, Vigil Security, LLC | |
| # License: http://snmplabs.com/pyasn1/license.html | |
| # | |
| # Protecting Multiple Contents with the CMS | |
| # | |
| # ASN.1 source from: | |
| # https://www.rfc-editor.org/rfc/rfc4073.txt | |
| # | |
| from pyasn1.type import constraint | |
| from pyasn1.type import namedtype | |
| from pyasn1.type import univ | |
| from pyasn1_modules import rfc5652 | |
| MAX = float('inf') | |
| # Content Collection Content Type and Object Identifier | |
| id_ct_contentCollection = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.19') | |
| class ContentCollection(univ.SequenceOf): | |
| pass | |
| ContentCollection.componentType = rfc5652.ContentInfo() | |
| ContentCollection.sizeSpec = constraint.ValueSizeConstraint(1, MAX) | |
| # Content With Attributes Content Type and Object Identifier | |
| id_ct_contentWithAttrs = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.20') | |
| class ContentWithAttributes(univ.Sequence): | |
| pass | |
| ContentWithAttributes.componentType = namedtype.NamedTypes( | |
| namedtype.NamedType('content', rfc5652.ContentInfo()), | |
| namedtype.NamedType('attrs', univ.SequenceOf( | |
| componentType=rfc5652.Attribute()).subtype( | |
| sizeSpec=constraint.ValueSizeConstraint(1, MAX))) | |
| ) | |
| # Map of Content Type OIDs to Content Types is added to the | |
| # ones that are in rfc5652.py | |
| _cmsContentTypesMapUpdate = { | |
| id_ct_contentCollection: ContentCollection(), | |
| id_ct_contentWithAttrs: ContentWithAttributes(), | |
| } | |
| rfc5652.cmsContentTypesMap.update(_cmsContentTypesMapUpdate) |