Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rfc2315.py295 linesDownload Raw Back to pyasn1_modules
1#2# This file is part of pyasn1-modules software.3#4# Copyright (c) 2005-2020, Ilya Etingof <etingof@gmail.com>5# License: http://snmplabs.com/pyasn1/license.html6#7# PKCS#7 message syntax8#9# ASN.1 source from:10# https://opensource.apple.com/source/Security/Security-55179.1/libsecurity_asn1/asn1/pkcs7.asn.auto.html11#12# Sample captures from:13# openssl crl2pkcs7 -nocrl -certfile cert1.cer -out outfile.p7b14#15from pyasn1_modules.rfc2459 import *16 17 18class Attribute(univ.Sequence):19    componentType = namedtype.NamedTypes(20        namedtype.NamedType('type', AttributeType()),21        namedtype.NamedType('values', univ.SetOf(componentType=AttributeValue()))22    )23 24 25class AttributeValueAssertion(univ.Sequence):26    componentType = namedtype.NamedTypes(27        namedtype.NamedType('attributeType', AttributeType()),28        namedtype.NamedType('attributeValue', AttributeValue(),29                            openType=opentype.OpenType('type', certificateAttributesMap))30    )31 32 33pkcs_7 = univ.ObjectIdentifier('1.2.840.113549.1.7')34data = univ.ObjectIdentifier('1.2.840.113549.1.7.1')35signedData = univ.ObjectIdentifier('1.2.840.113549.1.7.2')36envelopedData = univ.ObjectIdentifier('1.2.840.113549.1.7.3')37signedAndEnvelopedData = univ.ObjectIdentifier('1.2.840.113549.1.7.4')38digestedData = univ.ObjectIdentifier('1.2.840.113549.1.7.5')39encryptedData = univ.ObjectIdentifier('1.2.840.113549.1.7.6')40 41 42class ContentType(univ.ObjectIdentifier):43    pass44 45 46class ContentEncryptionAlgorithmIdentifier(AlgorithmIdentifier):47    pass48 49 50class EncryptedContent(univ.OctetString):51    pass52 53 54contentTypeMap = {}55 56 57class EncryptedContentInfo(univ.Sequence):58    componentType = namedtype.NamedTypes(59        namedtype.NamedType('contentType', ContentType()),60        namedtype.NamedType('contentEncryptionAlgorithm', ContentEncryptionAlgorithmIdentifier()),61        namedtype.OptionalNamedType(62            'encryptedContent', EncryptedContent().subtype(63                implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)64            ),65            openType=opentype.OpenType('contentType', contentTypeMap)66        )67    )68 69 70class Version(univ.Integer):  # overrides x509.Version71    pass72 73 74class EncryptedData(univ.Sequence):75    componentType = namedtype.NamedTypes(76        namedtype.NamedType('version', Version()),77        namedtype.NamedType('encryptedContentInfo', EncryptedContentInfo())78    )79 80 81class DigestAlgorithmIdentifier(AlgorithmIdentifier):82    pass83 84 85class DigestAlgorithmIdentifiers(univ.SetOf):86    componentType = DigestAlgorithmIdentifier()87 88 89class Digest(univ.OctetString):90    pass91 92 93class ContentInfo(univ.Sequence):94    componentType = namedtype.NamedTypes(95        namedtype.NamedType('contentType', ContentType()),96        namedtype.OptionalNamedType(97            'content',98            univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)),99            openType=opentype.OpenType('contentType', contentTypeMap)100        )101    )102 103 104class DigestedData(univ.Sequence):105    componentType = namedtype.NamedTypes(106        namedtype.NamedType('version', Version()),107        namedtype.NamedType('digestAlgorithm', DigestAlgorithmIdentifier()),108        namedtype.NamedType('contentInfo', ContentInfo()),109        namedtype.NamedType('digest', Digest())110    )111 112 113class IssuerAndSerialNumber(univ.Sequence):114    componentType = namedtype.NamedTypes(115        namedtype.NamedType('issuer', Name()),116        namedtype.NamedType('serialNumber', CertificateSerialNumber())117    )118 119 120class KeyEncryptionAlgorithmIdentifier(AlgorithmIdentifier):121    pass122 123 124class EncryptedKey(univ.OctetString):125    pass126 127 128class RecipientInfo(univ.Sequence):129    componentType = namedtype.NamedTypes(130        namedtype.NamedType('version', Version()),131        namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()),132        namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()),133        namedtype.NamedType('encryptedKey', EncryptedKey())134    )135 136 137class RecipientInfos(univ.SetOf):138    componentType = RecipientInfo()139 140 141class Attributes(univ.SetOf):142    componentType = Attribute()143 144 145class ExtendedCertificateInfo(univ.Sequence):146    componentType = namedtype.NamedTypes(147        namedtype.NamedType('version', Version()),148        namedtype.NamedType('certificate', Certificate()),149        namedtype.NamedType('attributes', Attributes())150    )151 152 153class SignatureAlgorithmIdentifier(AlgorithmIdentifier):154    pass155 156 157class Signature(univ.BitString):158    pass159 160 161class ExtendedCertificate(univ.Sequence):162    componentType = namedtype.NamedTypes(163        namedtype.NamedType('extendedCertificateInfo', ExtendedCertificateInfo()),164        namedtype.NamedType('signatureAlgorithm', SignatureAlgorithmIdentifier()),165        namedtype.NamedType('signature', Signature())166    )167 168 169class ExtendedCertificateOrCertificate(univ.Choice):170    componentType = namedtype.NamedTypes(171        namedtype.NamedType('certificate', Certificate()),172        namedtype.NamedType('extendedCertificate', ExtendedCertificate().subtype(173            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))174    )175 176 177class ExtendedCertificatesAndCertificates(univ.SetOf):178    componentType = ExtendedCertificateOrCertificate()179 180 181class SerialNumber(univ.Integer):182    pass183 184 185class CRLEntry(univ.Sequence):186    componentType = namedtype.NamedTypes(187        namedtype.NamedType('userCertificate', SerialNumber()),188        namedtype.NamedType('revocationDate', useful.UTCTime())189    )190 191 192class TBSCertificateRevocationList(univ.Sequence):193    componentType = namedtype.NamedTypes(194        namedtype.NamedType('signature', AlgorithmIdentifier()),195        namedtype.NamedType('issuer', Name()),196        namedtype.NamedType('lastUpdate', useful.UTCTime()),197        namedtype.NamedType('nextUpdate', useful.UTCTime()),198        namedtype.OptionalNamedType('revokedCertificates', univ.SequenceOf(componentType=CRLEntry()))199    )200 201 202class CertificateRevocationList(univ.Sequence):203    componentType = namedtype.NamedTypes(204        namedtype.NamedType('tbsCertificateRevocationList', TBSCertificateRevocationList()),205        namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()),206        namedtype.NamedType('signature', univ.BitString())207    )208 209 210class CertificateRevocationLists(univ.SetOf):211    componentType = CertificateRevocationList()212 213 214class DigestEncryptionAlgorithmIdentifier(AlgorithmIdentifier):215    pass216 217 218class EncryptedDigest(univ.OctetString):219    pass220 221 222class SignerInfo(univ.Sequence):223    componentType = namedtype.NamedTypes(224        namedtype.NamedType('version', Version()),225        namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()),226        namedtype.NamedType('digestAlgorithm', DigestAlgorithmIdentifier()),227        namedtype.OptionalNamedType('authenticatedAttributes', Attributes().subtype(228            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),229        namedtype.NamedType('digestEncryptionAlgorithm', DigestEncryptionAlgorithmIdentifier()),230        namedtype.NamedType('encryptedDigest', EncryptedDigest()),231        namedtype.OptionalNamedType('unauthenticatedAttributes', Attributes().subtype(232            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))233    )234 235 236class SignerInfos(univ.SetOf):237    componentType = SignerInfo()238 239 240class SignedAndEnvelopedData(univ.Sequence):241    componentType = namedtype.NamedTypes(242        namedtype.NamedType('version', Version()),243        namedtype.NamedType('recipientInfos', RecipientInfos()),244        namedtype.NamedType('digestAlgorithms', DigestAlgorithmIdentifiers()),245        namedtype.NamedType('encryptedContentInfo', EncryptedContentInfo()),246        namedtype.OptionalNamedType('certificates', ExtendedCertificatesAndCertificates().subtype(247            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),248        namedtype.OptionalNamedType('crls', CertificateRevocationLists().subtype(249            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),250        namedtype.NamedType('signerInfos', SignerInfos())251    )252 253 254class EnvelopedData(univ.Sequence):255    componentType = namedtype.NamedTypes(256        namedtype.NamedType('version', Version()),257        namedtype.NamedType('recipientInfos', RecipientInfos()),258        namedtype.NamedType('encryptedContentInfo', EncryptedContentInfo())259    )260 261 262class DigestInfo(univ.Sequence):263    componentType = namedtype.NamedTypes(264        namedtype.NamedType('digestAlgorithm', DigestAlgorithmIdentifier()),265        namedtype.NamedType('digest', Digest())266    )267 268 269class SignedData(univ.Sequence):270    componentType = namedtype.NamedTypes(271        namedtype.NamedType('version', Version()),272        namedtype.OptionalNamedType('digestAlgorithms', DigestAlgorithmIdentifiers()),273        namedtype.NamedType('contentInfo', ContentInfo()),274        namedtype.OptionalNamedType('certificates', ExtendedCertificatesAndCertificates().subtype(275            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),276        namedtype.OptionalNamedType('crls', CertificateRevocationLists().subtype(277            implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),278        namedtype.OptionalNamedType('signerInfos', SignerInfos())279    )280 281 282class Data(univ.OctetString):283    pass284 285_contentTypeMapUpdate = {286    data: Data(),287    signedData: SignedData(),288    envelopedData: EnvelopedData(),289    signedAndEnvelopedData: SignedAndEnvelopedData(),290    digestedData: DigestedData(),291    encryptedData: EncryptedData()292}293 294contentTypeMap.update(_contentTypeMapUpdate)295 
codekingpro/portable-devtools · Team Ai