/
opt
/
imh-python
/
lib
/
python3.9
/
site-packages
/
pyasn1_modules
/
/opt/imh-python/lib/python3.9/site-packages/pyasn1_modules
mkdir
upload
Name
Size
Mode
Actions
__pycache__/
-
0755
rm
pem.py
1821
0644
edit
dl
rm
rfc1155.py
2683
0644
edit
dl
rm
rfc1157.py
3554
0644
edit
dl
rm
rfc1901.py
646
0644
edit
dl
rm
rfc1902.py
3705
0644
edit
dl
rm
rfc1905.py
4831
0644
edit
dl
rm
rfc2251.py
26931
0644
edit
dl
rm
rfc2314.py
1313
0644
edit
dl
rm
rfc2315.py
9666
0644
edit
dl
rm
rfc2437.py
2623
0644
edit
dl
rm
rfc2459.py
50002
0644
edit
dl
rm
rfc2511.py
10350
0644
edit
dl
rm
rfc2560.py
8406
0644
edit
dl
rm
rfc2631.py
1219
0644
edit
dl
rm
rfc2634.py
9425
0644
edit
dl
rm
rfc2876.py
1438
0644
edit
dl
rm
rfc2985.py
14359
0644
edit
dl
rm
rfc2986.py
1896
0644
edit
dl
rm
rfc3058.py
992
0644
edit
dl
rm
rfc3114.py
1961
0644
edit
dl
rm
rfc3125.py
16707
0644
edit
dl
rm
rfc3161.py
4260
0644
edit
dl
rm
rfc3274.py
1670
0644
edit
dl
rm
rfc3279.py
6807
0644
edit
dl
rm
rfc3280.py
46620
0644
edit
dl
rm
rfc3281.py
9866
0644
edit
dl
rm
rfc3370.py
2811
0644
edit
dl
rm
rfc3412.py
1956
0644
edit
dl
rm
rfc3414.py
1167
0644
edit
dl
rm
rfc3447.py
1605
0644
edit
dl
rm
rfc3537.py
796
0644
edit
dl
rm
rfc3560.py
1818
0644
edit
dl
rm
rfc3565.py
1438
0644
edit
dl
rm
rfc3657.py
1746
0644
edit
dl
rm
rfc3709.py
6469
0644
edit
dl
rm
rfc3739.py
5122
0644
edit
dl
rm
rfc3770.py
1743
0644
edit
dl
rm
rfc3779.py
3260
0644
edit
dl
rm
rfc3820.py
1478
0644
edit
dl
rm
rfc3852.py
20101
0644
edit
dl
rm
rfc4010.py
1228
0644
edit
dl
rm
rfc4043.py
1067
0644
edit
dl
rm
rfc4055.py
10392
0644
edit
dl
rm
rfc4073.py
1636
0644
edit
dl
rm
rfc4108.py
10598
0644
edit
dl
rm
rfc4210.py
28469
0644
edit
dl
rm
rfc4211.py
12110
0644
edit
dl
rm
rfc4334.py
1586
0644
edit
dl
rm
rfc4357.py
15036
0644
edit
dl
rm
rfc4387.py
441
0644
edit
dl
rm
rfc4476.py
1960
0644
edit
dl
rm
rfc4490.py
3401
0644
edit
dl
rm
rfc4491.py
1054
0644
edit
dl
rm
rfc4683.py
1839
0644
edit
dl
rm
rfc4985.py
961
0644
edit
dl
rm
rfc5035.py
4523
0644
edit
dl
rm
rfc5083.py
1888
0644
edit
dl
rm
rfc5084.py
2855
0644
edit
dl
rm
rfc5126.py
15780
0644
edit
dl
rm
rfc5208.py
1432
0644
edit
dl
rm
rfc5275.py
11605
0644
edit
dl
rm
rfc5280.py
51236
0644
edit
dl
rm
rfc5480.py
4834
0644
edit
dl
rm
rfc5636.py
2324
0644
edit
dl
rm
rfc5639.py
1025
0644
edit
dl
rm
rfc5649.py
830
0644
edit
dl
rm
rfc5652.py
21451
0644
edit
dl
rm
rfc5697.py
1702
0644
edit
dl
rm
rfc5751.py
3198
0644
edit
dl
rm
rfc5752.py
1431
0644
edit
dl
rm
rfc5753.py
4534
0644
edit
dl
rm
rfc5755.py
12081
0644
edit
dl
rm
rfc5913.py
1161
0644
edit
dl
rm
rfc5914.py
3714
0644
edit
dl
rm
rfc5915.py
1056
0644
edit
dl
rm
rfc5916.py
800
0644
edit
dl
rm
rfc5917.py
1511
0644
edit
dl
rm
rfc5924.py
425
0644
edit
dl
rm
rfc5934.py
23798
0644
edit
dl
rm
rfc5940.py
1613
0644
edit
dl
rm
rfc5958.py
2650
0644
edit
dl
rm
rfc5990.py
5505
0644
edit
dl
rm
rfc6010.py
2347
0644
edit
dl
rm
rfc6019.py
1086
0644
edit
dl
rm
rfc6031.py
12137
0644
edit
dl
rm
rfc6032.py
1950
0644
edit
dl
rm
rfc6120.py
818
0644
edit
dl
rm
rfc6170.py
409
0644
edit
dl
rm
rfc6187.py
489
0644
edit
dl
rm
rfc6210.py
1052
0644
edit
dl
rm
rfc6211.py
2257
0644
edit
dl
rm
rfc6402.py
17148
0644
edit
dl
rm
rfc6482.py
2085
0644
edit
dl
rm
rfc6486.py
1916
0644
edit
dl
rm
rfc6487.py
472
0644
edit
dl
rm
rfc6664.py
4270
0644
edit
dl
rm
rfc6955.py
2814
0644
edit
dl
rm
rfc6960.py
7913
0644
edit
dl
rm
rfc7030.py
1441
0644
edit
dl
rm
rfc7191.py
7062
0644
edit
dl
rm
rfc7229.py
743
0644
edit
dl
rm
rfc7292.py
8478
0644
edit
dl
rm
rfc7296.py
885
0644
edit
dl
rm
rfc7508.py
2182
0644
edit
dl
rm
rfc7585.py
1076
0644
edit
dl
rm
rfc7633.py
841
0644
edit
dl
rm
rfc7773.py
1315
0644
edit
dl
rm
rfc7894.py
2769
0644
edit
dl
rm
rfc7906.py
18921
0644
edit
dl
rm
rfc7914.py
1493
0644
edit
dl
rm
rfc8017.py
4178
0644
edit
dl
rm
rfc8018.py
6166
0644
edit
dl
rm
rfc8103.py
1017
0644
edit
dl
rm
rfc8209.py
393
0644
edit
dl
rm
rfc8226.py
4291
0644
edit
dl
rm
rfc8358.py
1136
0644
edit
dl
rm
rfc8360.py
1075
0644
edit
dl
rm
rfc8398.py
1192
0644
edit
dl
rm
rfc8410.py
971
0644
edit
dl
rm
rfc8418.py
1109
0644
edit
dl
rm
rfc8419.py
1704
0644
edit
dl
rm
rfc8479.py
1142
0644
edit
dl
rm
rfc8494.py
2363
0644
edit
dl
rm
rfc8520.py
1496
0644
edit
dl
rm
rfc8619.py
1136
0644
edit
dl
rm
rfc8649.py
982
0644
edit
dl
rm
rfc8692.py
2098
0644
edit
dl
rm
rfc8696.py
3479
0644
edit
dl
rm
rfc8702.py
2739
0644
edit
dl
rm
rfc8708.py
978
0644
edit
dl
rm
rfc8769.py
441
0644
edit
dl
rm
__init__.py
65
0644
edit
dl
rm
Edit:
/opt/imh-python/lib/python3.9/site-packages/pyasn1_modules/rfc5652.py
(21451B)
# coding: utf-8 # # This file is part of pyasn1-modules software. # # Created by Stanisław Pitucha with asn1ate tool. # Modified by Russ Housley to add support for opentypes. # # Copyright (c) 2005-2020, Ilya Etingof <etingof@gmail.com> # License: http://snmplabs.com/pyasn1/license.html # # Cryptographic Message Syntax (CMS) # # ASN.1 source from: # http://www.ietf.org/rfc/rfc5652.txt # from pyasn1.type import constraint from pyasn1.type import namedtype from pyasn1.type import namedval from pyasn1.type import opentype from pyasn1.type import tag from pyasn1.type import univ from pyasn1.type import useful from pyasn1_modules import rfc3281 from pyasn1_modules import rfc5280 MAX = float('inf') def _buildOid(*components): output = [] for x in tuple(components): if isinstance(x, univ.ObjectIdentifier): output.extend(list(x)) else: output.append(int(x)) return univ.ObjectIdentifier(output) cmsContentTypesMap = { } cmsAttributesMap = { } otherKeyAttributesMap = { } otherCertFormatMap = { } otherRevInfoFormatMap = { } otherRecipientInfoMap = { } class AttCertVersionV1(univ.Integer): pass AttCertVersionV1.namedValues = namedval.NamedValues( ('v1', 0) ) class AttributeCertificateInfoV1(univ.Sequence): pass AttributeCertificateInfoV1.componentType = namedtype.NamedTypes( namedtype.DefaultedNamedType('version', AttCertVersionV1().subtype(value="v1")), namedtype.NamedType( 'subject', univ.Choice( componentType=namedtype.NamedTypes( namedtype.NamedType('baseCertificateID', rfc3281.IssuerSerial().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('subjectName', rfc5280.GeneralNames().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) ) ) ), namedtype.NamedType('issuer', rfc5280.GeneralNames()), namedtype.NamedType('signature', rfc5280.AlgorithmIdentifier()), namedtype.NamedType('serialNumber', rfc5280.CertificateSerialNumber()), namedtype.NamedType('attCertValidityPeriod', rfc3281.AttCertValidityPeriod()), namedtype.NamedType('attributes', univ.SequenceOf(componentType=rfc5280.Attribute())), namedtype.OptionalNamedType('issuerUniqueID', rfc5280.UniqueIdentifier()), namedtype.OptionalNamedType('extensions', rfc5280.Extensions()) ) class AttributeCertificateV1(univ.Sequence): pass AttributeCertificateV1.componentType = namedtype.NamedTypes( namedtype.NamedType('acInfo', AttributeCertificateInfoV1()), namedtype.NamedType('signatureAlgorithm', rfc5280.AlgorithmIdentifier()), namedtype.NamedType('signature', univ.BitString()) ) class AttributeValue(univ.Any): pass class Attribute(univ.Sequence): pass Attribute.componentType = namedtype.NamedTypes( namedtype.NamedType('attrType', univ.ObjectIdentifier()), namedtype.NamedType('attrValues', univ.SetOf(componentType=AttributeValue()), openType=opentype.OpenType('attrType', cmsAttributesMap) ) ) class SignedAttributes(univ.SetOf): pass SignedAttributes.componentType = Attribute() SignedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX) class AttributeCertificateV2(rfc3281.AttributeCertificate): pass class OtherKeyAttribute(univ.Sequence): pass OtherKeyAttribute.componentType = namedtype.NamedTypes( namedtype.NamedType('keyAttrId', univ.ObjectIdentifier()), namedtype.OptionalNamedType('keyAttr', univ.Any(), openType=opentype.OpenType('keyAttrId', otherKeyAttributesMap) ) ) class UnauthAttributes(univ.SetOf): pass UnauthAttributes.componentType = Attribute() UnauthAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX) id_encryptedData = _buildOid(1, 2, 840, 113549, 1, 7, 6) class SignatureValue(univ.OctetString): pass class IssuerAndSerialNumber(univ.Sequence): pass IssuerAndSerialNumber.componentType = namedtype.NamedTypes( namedtype.NamedType('issuer', rfc5280.Name()), namedtype.NamedType('serialNumber', rfc5280.CertificateSerialNumber()) ) class SubjectKeyIdentifier(univ.OctetString): pass class RecipientKeyIdentifier(univ.Sequence): pass RecipientKeyIdentifier.componentType = namedtype.NamedTypes( namedtype.NamedType('subjectKeyIdentifier', SubjectKeyIdentifier()), namedtype.OptionalNamedType('date', useful.GeneralizedTime()), namedtype.OptionalNamedType('other', OtherKeyAttribute()) ) class KeyAgreeRecipientIdentifier(univ.Choice): pass KeyAgreeRecipientIdentifier.componentType = namedtype.NamedTypes( namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()), namedtype.NamedType('rKeyId', RecipientKeyIdentifier().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))) ) class EncryptedKey(univ.OctetString): pass class RecipientEncryptedKey(univ.Sequence): pass RecipientEncryptedKey.componentType = namedtype.NamedTypes( namedtype.NamedType('rid', KeyAgreeRecipientIdentifier()), namedtype.NamedType('encryptedKey', EncryptedKey()) ) class RecipientEncryptedKeys(univ.SequenceOf): pass RecipientEncryptedKeys.componentType = RecipientEncryptedKey() class MessageAuthenticationCode(univ.OctetString): pass class CMSVersion(univ.Integer): pass CMSVersion.namedValues = namedval.NamedValues( ('v0', 0), ('v1', 1), ('v2', 2), ('v3', 3), ('v4', 4), ('v5', 5) ) class OtherCertificateFormat(univ.Sequence): pass OtherCertificateFormat.componentType = namedtype.NamedTypes( namedtype.NamedType('otherCertFormat', univ.ObjectIdentifier()), namedtype.NamedType('otherCert', univ.Any(), openType=opentype.OpenType('otherCertFormat', otherCertFormatMap) ) ) class ExtendedCertificateInfo(univ.Sequence): pass ExtendedCertificateInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.NamedType('certificate', rfc5280.Certificate()), namedtype.NamedType('attributes', UnauthAttributes()) ) class Signature(univ.BitString): pass class SignatureAlgorithmIdentifier(rfc5280.AlgorithmIdentifier): pass class ExtendedCertificate(univ.Sequence): pass ExtendedCertificate.componentType = namedtype.NamedTypes( namedtype.NamedType('extendedCertificateInfo', ExtendedCertificateInfo()), namedtype.NamedType('signatureAlgorithm', SignatureAlgorithmIdentifier()), namedtype.NamedType('signature', Signature()) ) class CertificateChoices(univ.Choice): pass CertificateChoices.componentType = namedtype.NamedTypes( namedtype.NamedType('certificate', rfc5280.Certificate()), namedtype.NamedType('extendedCertificate', ExtendedCertificate().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('v1AttrCert', AttributeCertificateV1().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.NamedType('v2AttrCert', AttributeCertificateV2().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.NamedType('other', OtherCertificateFormat().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))) ) class CertificateSet(univ.SetOf): pass CertificateSet.componentType = CertificateChoices() class OtherRevocationInfoFormat(univ.Sequence): pass OtherRevocationInfoFormat.componentType = namedtype.NamedTypes( namedtype.NamedType('otherRevInfoFormat', univ.ObjectIdentifier()), namedtype.NamedType('otherRevInfo', univ.Any(), openType=opentype.OpenType('otherRevInfoFormat', otherRevInfoFormatMap) ) ) class RevocationInfoChoice(univ.Choice): pass RevocationInfoChoice.componentType = namedtype.NamedTypes( namedtype.NamedType('crl', rfc5280.CertificateList()), namedtype.NamedType('other', OtherRevocationInfoFormat().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))) ) class RevocationInfoChoices(univ.SetOf): pass RevocationInfoChoices.componentType = RevocationInfoChoice() class OriginatorInfo(univ.Sequence): pass OriginatorInfo.componentType = namedtype.NamedTypes( namedtype.OptionalNamedType('certs', CertificateSet().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('crls', RevocationInfoChoices().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) ) class ContentType(univ.ObjectIdentifier): pass class EncryptedContent(univ.OctetString): pass class ContentEncryptionAlgorithmIdentifier(rfc5280.AlgorithmIdentifier): pass class EncryptedContentInfo(univ.Sequence): pass EncryptedContentInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('contentType', ContentType()), namedtype.NamedType('contentEncryptionAlgorithm', ContentEncryptionAlgorithmIdentifier()), namedtype.OptionalNamedType('encryptedContent', EncryptedContent().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) ) class UnprotectedAttributes(univ.SetOf): pass UnprotectedAttributes.componentType = Attribute() UnprotectedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX) class KeyEncryptionAlgorithmIdentifier(rfc5280.AlgorithmIdentifier): pass class KEKIdentifier(univ.Sequence): pass KEKIdentifier.componentType = namedtype.NamedTypes( namedtype.NamedType('keyIdentifier', univ.OctetString()), namedtype.OptionalNamedType('date', useful.GeneralizedTime()), namedtype.OptionalNamedType('other', OtherKeyAttribute()) ) class KEKRecipientInfo(univ.Sequence): pass KEKRecipientInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.NamedType('kekid', KEKIdentifier()), namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()), namedtype.NamedType('encryptedKey', EncryptedKey()) ) class KeyDerivationAlgorithmIdentifier(rfc5280.AlgorithmIdentifier): pass class PasswordRecipientInfo(univ.Sequence): pass PasswordRecipientInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.OptionalNamedType('keyDerivationAlgorithm', KeyDerivationAlgorithmIdentifier().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()), namedtype.NamedType('encryptedKey', EncryptedKey()) ) class RecipientIdentifier(univ.Choice): pass RecipientIdentifier.componentType = namedtype.NamedTypes( namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()), namedtype.NamedType('subjectKeyIdentifier', SubjectKeyIdentifier().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) ) class KeyTransRecipientInfo(univ.Sequence): pass KeyTransRecipientInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.NamedType('rid', RecipientIdentifier()), namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()), namedtype.NamedType('encryptedKey', EncryptedKey()) ) class UserKeyingMaterial(univ.OctetString): pass class OriginatorPublicKey(univ.Sequence): pass OriginatorPublicKey.componentType = namedtype.NamedTypes( namedtype.NamedType('algorithm', rfc5280.AlgorithmIdentifier()), namedtype.NamedType('publicKey', univ.BitString()) ) class OriginatorIdentifierOrKey(univ.Choice): pass OriginatorIdentifierOrKey.componentType = namedtype.NamedTypes( namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()), namedtype.NamedType('subjectKeyIdentifier', SubjectKeyIdentifier().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('originatorKey', OriginatorPublicKey().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))) ) class KeyAgreeRecipientInfo(univ.Sequence): pass KeyAgreeRecipientInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.NamedType('originator', OriginatorIdentifierOrKey().subtype( explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('ukm', UserKeyingMaterial().subtype( explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()), namedtype.NamedType('recipientEncryptedKeys', RecipientEncryptedKeys()) ) class OtherRecipientInfo(univ.Sequence): pass OtherRecipientInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('oriType', univ.ObjectIdentifier()), namedtype.NamedType('oriValue', univ.Any(), openType=opentype.OpenType('oriType', otherRecipientInfoMap) ) ) class RecipientInfo(univ.Choice): pass RecipientInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('ktri', KeyTransRecipientInfo()), namedtype.NamedType('kari', KeyAgreeRecipientInfo().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))), namedtype.NamedType('kekri', KEKRecipientInfo().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2))), namedtype.NamedType('pwri', PasswordRecipientInfo().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))), namedtype.NamedType('ori', OtherRecipientInfo().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4))) ) class RecipientInfos(univ.SetOf): pass RecipientInfos.componentType = RecipientInfo() RecipientInfos.sizeSpec = constraint.ValueSizeConstraint(1, MAX) class EnvelopedData(univ.Sequence): pass EnvelopedData.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.OptionalNamedType('originatorInfo', OriginatorInfo().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('recipientInfos', RecipientInfos()), namedtype.NamedType('encryptedContentInfo', EncryptedContentInfo()), namedtype.OptionalNamedType('unprotectedAttrs', UnprotectedAttributes().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) ) class DigestAlgorithmIdentifier(rfc5280.AlgorithmIdentifier): pass id_ct_contentInfo = _buildOid(1, 2, 840, 113549, 1, 9, 16, 1, 6) id_digestedData = _buildOid(1, 2, 840, 113549, 1, 7, 5) class EncryptedData(univ.Sequence): pass EncryptedData.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.NamedType('encryptedContentInfo', EncryptedContentInfo()), namedtype.OptionalNamedType('unprotectedAttrs', UnprotectedAttributes().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) ) id_messageDigest = _buildOid(1, 2, 840, 113549, 1, 9, 4) id_signedData = _buildOid(1, 2, 840, 113549, 1, 7, 2) class MessageAuthenticationCodeAlgorithm(rfc5280.AlgorithmIdentifier): pass class UnsignedAttributes(univ.SetOf): pass UnsignedAttributes.componentType = Attribute() UnsignedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX) class SignerIdentifier(univ.Choice): pass SignerIdentifier.componentType = namedtype.NamedTypes( namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()), namedtype.NamedType('subjectKeyIdentifier', SubjectKeyIdentifier().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) ) class SignerInfo(univ.Sequence): pass SignerInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.NamedType('sid', SignerIdentifier()), namedtype.NamedType('digestAlgorithm', DigestAlgorithmIdentifier()), namedtype.OptionalNamedType('signedAttrs', SignedAttributes().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('signatureAlgorithm', SignatureAlgorithmIdentifier()), namedtype.NamedType('signature', SignatureValue()), namedtype.OptionalNamedType('unsignedAttrs', UnsignedAttributes().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) ) class SignerInfos(univ.SetOf): pass SignerInfos.componentType = SignerInfo() class Countersignature(SignerInfo): pass class ContentInfo(univ.Sequence): pass ContentInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('contentType', ContentType()), namedtype.NamedType('content', univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)), openType=opentype.OpenType('contentType', cmsContentTypesMap) ) ) class EncapsulatedContentInfo(univ.Sequence): pass EncapsulatedContentInfo.componentType = namedtype.NamedTypes( namedtype.NamedType('eContentType', ContentType()), namedtype.OptionalNamedType('eContent', univ.OctetString().subtype( explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) ) id_countersignature = _buildOid(1, 2, 840, 113549, 1, 9, 6) id_data = _buildOid(1, 2, 840, 113549, 1, 7, 1) class MessageDigest(univ.OctetString): pass class AuthAttributes(univ.SetOf): pass AuthAttributes.componentType = Attribute() AuthAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX) class Time(univ.Choice): pass Time.componentType = namedtype.NamedTypes( namedtype.NamedType('utcTime', useful.UTCTime()), namedtype.NamedType('generalTime', useful.GeneralizedTime()) ) class AuthenticatedData(univ.Sequence): pass AuthenticatedData.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.OptionalNamedType('originatorInfo', OriginatorInfo().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('recipientInfos', RecipientInfos()), namedtype.NamedType('macAlgorithm', MessageAuthenticationCodeAlgorithm()), namedtype.OptionalNamedType('digestAlgorithm', DigestAlgorithmIdentifier().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.NamedType('encapContentInfo', EncapsulatedContentInfo()), namedtype.OptionalNamedType('authAttrs', AuthAttributes().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.NamedType('mac', MessageAuthenticationCode()), namedtype.OptionalNamedType('unauthAttrs', UnauthAttributes().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))) ) id_contentType = _buildOid(1, 2, 840, 113549, 1, 9, 3) class ExtendedCertificateOrCertificate(univ.Choice): pass ExtendedCertificateOrCertificate.componentType = namedtype.NamedTypes( namedtype.NamedType('certificate', rfc5280.Certificate()), namedtype.NamedType('extendedCertificate', ExtendedCertificate().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))) ) class Digest(univ.OctetString): pass class DigestedData(univ.Sequence): pass DigestedData.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.NamedType('digestAlgorithm', DigestAlgorithmIdentifier()), namedtype.NamedType('encapContentInfo', EncapsulatedContentInfo()), namedtype.NamedType('digest', Digest()) ) id_envelopedData = _buildOid(1, 2, 840, 113549, 1, 7, 3) class DigestAlgorithmIdentifiers(univ.SetOf): pass DigestAlgorithmIdentifiers.componentType = DigestAlgorithmIdentifier() class SignedData(univ.Sequence): pass SignedData.componentType = namedtype.NamedTypes( namedtype.NamedType('version', CMSVersion()), namedtype.NamedType('digestAlgorithms', DigestAlgorithmIdentifiers()), namedtype.NamedType('encapContentInfo', EncapsulatedContentInfo()), namedtype.OptionalNamedType('certificates', CertificateSet().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('crls', RevocationInfoChoices().subtype( implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.NamedType('signerInfos', SignerInfos()) ) id_signingTime = _buildOid(1, 2, 840, 113549, 1, 9, 5) class SigningTime(Time): pass id_ct_authData = _buildOid(1, 2, 840, 113549, 1, 9, 16, 1, 2) # CMS Content Type Map _cmsContentTypesMapUpdate = { id_ct_contentInfo: ContentInfo(), id_data: univ.OctetString(), id_signedData: SignedData(), id_envelopedData: EnvelopedData(), id_digestedData: DigestedData(), id_encryptedData: EncryptedData(), id_ct_authData: AuthenticatedData(), } cmsContentTypesMap.update(_cmsContentTypesMapUpdate) # CMS Attribute Map _cmsAttributesMapUpdate = { id_contentType: ContentType(), id_messageDigest: MessageDigest(), id_signingTime: SigningTime(), id_countersignature: Countersignature(), } cmsAttributesMap.update(_cmsAttributesMapUpdate)
Save
cmd:
run