1# 2# This file is part of pyasn1-modules software. 3# 4# Created by Russ Housley with assistance from asn1ate v.0.6.0. 5# 6# Copyright (c) 2019, Vigil Security, LLC 7# License: http://snmplabs.com/pyasn1/license.html 8# 9# CMS Encrypted Key Package Content Type 10# 11# ASN.1 source from: 12# https://www.rfc-editor.org/rfc/rfc6032.txt 13# 14 15from pyasn1.type import namedtype 16from pyasn1.type import tag 17from pyasn1.type import univ 18 19from pyasn1_modules import rfc5652 20from pyasn1_modules import rfc5083 21 22 23# Content Decryption Key Identifier attribute 24 25id_aa_KP_contentDecryptKeyID = univ.ObjectIdentifier('2.16.840.1.101.2.1.5.66') 26 27class ContentDecryptKeyID(univ.OctetString): 28 pass 29 30aa_content_decrypt_key_identifier = rfc5652.Attribute() 31aa_content_decrypt_key_identifier['attrType'] = id_aa_KP_contentDecryptKeyID 32aa_content_decrypt_key_identifier['attrValues'][0] = ContentDecryptKeyID() 33 34 35# Encrypted Key Package Content Type 36 37id_ct_KP_encryptedKeyPkg = univ.ObjectIdentifier('2.16.840.1.101.2.1.2.78.2') 38 39class EncryptedKeyPackage(univ.Choice): 40 pass 41 42EncryptedKeyPackage.componentType = namedtype.NamedTypes( 43 namedtype.NamedType('encrypted', rfc5652.EncryptedData()), 44 namedtype.NamedType('enveloped', rfc5652.EnvelopedData().subtype( 45 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), 46 namedtype.NamedType('authEnveloped', rfc5083.AuthEnvelopedData().subtype( 47 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) 48) 49 50 51# Map of Attribute Type OIDs to Attributes are 52# added to the ones that are in rfc5652.py 53 54_cmsAttributesMapUpdate = { 55 id_aa_KP_contentDecryptKeyID: ContentDecryptKeyID(), 56} 57 58rfc5652.cmsAttributesMap.update(_cmsAttributesMapUpdate) 59 60 61# Map of Content Type OIDs to Content Types are 62# added to the ones that are in rfc5652.py 63 64_cmsContentTypesMapUpdate = { 65 id_ct_KP_encryptedKeyPkg: EncryptedKeyPackage(), 66} 67 68rfc5652.cmsContentTypesMap.update(_cmsContentTypesMapUpdate) 69