Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rfc3852.py707 linesDownload Raw Back to pyasn1_modules
1# coding: utf-82#3# This file is part of pyasn1-modules software.4#5# Created by Stanisław Pitucha with asn1ate tool.6# Copyright (c) 2005-2020, Ilya Etingof <etingof@gmail.com>7# License: http://snmplabs.com/pyasn1/license.html8#9# Cryptographic Message Syntax (CMS)10#11# ASN.1 source from:12# http://www.ietf.org/rfc/rfc3852.txt13#14from pyasn1.type import constraint15from pyasn1.type import namedtype16from pyasn1.type import namedval17from pyasn1.type import tag18from pyasn1.type import univ19from pyasn1.type import useful20 21from pyasn1_modules import rfc328022from pyasn1_modules import rfc328123 24MAX = float('inf')25 26 27def _buildOid(*components):28    output = []29    for x in tuple(components):30        if isinstance(x, univ.ObjectIdentifier):31            output.extend(list(x))32        else:33            output.append(int(x))34 35    return univ.ObjectIdentifier(output)36 37 38class AttributeValue(univ.Any):39    pass40 41 42class Attribute(univ.Sequence):43    pass44 45 46Attribute.componentType = namedtype.NamedTypes(47    namedtype.NamedType('attrType', univ.ObjectIdentifier()),48    namedtype.NamedType('attrValues', univ.SetOf(componentType=AttributeValue()))49)50 51 52class SignedAttributes(univ.SetOf):53    pass54 55 56SignedAttributes.componentType = Attribute()57SignedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX)58 59 60class OtherRevocationInfoFormat(univ.Sequence):61    pass62 63 64OtherRevocationInfoFormat.componentType = namedtype.NamedTypes(65    namedtype.NamedType('otherRevInfoFormat', univ.ObjectIdentifier()),66    namedtype.NamedType('otherRevInfo', univ.Any())67)68 69 70class RevocationInfoChoice(univ.Choice):71    pass72 73 74RevocationInfoChoice.componentType = namedtype.NamedTypes(75    namedtype.NamedType('crl', rfc3280.CertificateList()),76    namedtype.NamedType('other', OtherRevocationInfoFormat().subtype(77        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))78)79 80 81class RevocationInfoChoices(univ.SetOf):82    pass83 84 85RevocationInfoChoices.componentType = RevocationInfoChoice()86 87 88class OtherKeyAttribute(univ.Sequence):89    pass90 91 92OtherKeyAttribute.componentType = namedtype.NamedTypes(93    namedtype.NamedType('keyAttrId', univ.ObjectIdentifier()),94    namedtype.OptionalNamedType('keyAttr', univ.Any())95)96 97id_signedData = _buildOid(1, 2, 840, 113549, 1, 7, 2)98 99 100class KeyEncryptionAlgorithmIdentifier(rfc3280.AlgorithmIdentifier):101    pass102 103 104class EncryptedKey(univ.OctetString):105    pass106 107 108class CMSVersion(univ.Integer):109    pass110 111 112CMSVersion.namedValues = namedval.NamedValues(113    ('v0', 0),114    ('v1', 1),115    ('v2', 2),116    ('v3', 3),117    ('v4', 4),118    ('v5', 5)119)120 121 122class KEKIdentifier(univ.Sequence):123    pass124 125 126KEKIdentifier.componentType = namedtype.NamedTypes(127    namedtype.NamedType('keyIdentifier', univ.OctetString()),128    namedtype.OptionalNamedType('date', useful.GeneralizedTime()),129    namedtype.OptionalNamedType('other', OtherKeyAttribute())130)131 132 133class KEKRecipientInfo(univ.Sequence):134    pass135 136 137KEKRecipientInfo.componentType = namedtype.NamedTypes(138    namedtype.NamedType('version', CMSVersion()),139    namedtype.NamedType('kekid', KEKIdentifier()),140    namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()),141    namedtype.NamedType('encryptedKey', EncryptedKey())142)143 144 145class KeyDerivationAlgorithmIdentifier(rfc3280.AlgorithmIdentifier):146    pass147 148 149class PasswordRecipientInfo(univ.Sequence):150    pass151 152 153PasswordRecipientInfo.componentType = namedtype.NamedTypes(154    namedtype.NamedType('version', CMSVersion()),155    namedtype.OptionalNamedType('keyDerivationAlgorithm', KeyDerivationAlgorithmIdentifier().subtype(156        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),157    namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()),158    namedtype.NamedType('encryptedKey', EncryptedKey())159)160 161 162class OtherRecipientInfo(univ.Sequence):163    pass164 165 166OtherRecipientInfo.componentType = namedtype.NamedTypes(167    namedtype.NamedType('oriType', univ.ObjectIdentifier()),168    namedtype.NamedType('oriValue', univ.Any())169)170 171 172class IssuerAndSerialNumber(univ.Sequence):173    pass174 175 176IssuerAndSerialNumber.componentType = namedtype.NamedTypes(177    namedtype.NamedType('issuer', rfc3280.Name()),178    namedtype.NamedType('serialNumber', rfc3280.CertificateSerialNumber())179)180 181 182class SubjectKeyIdentifier(univ.OctetString):183    pass184 185 186class RecipientKeyIdentifier(univ.Sequence):187    pass188 189 190RecipientKeyIdentifier.componentType = namedtype.NamedTypes(191    namedtype.NamedType('subjectKeyIdentifier', SubjectKeyIdentifier()),192    namedtype.OptionalNamedType('date', useful.GeneralizedTime()),193    namedtype.OptionalNamedType('other', OtherKeyAttribute())194)195 196 197class KeyAgreeRecipientIdentifier(univ.Choice):198    pass199 200 201KeyAgreeRecipientIdentifier.componentType = namedtype.NamedTypes(202    namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()),203    namedtype.NamedType('rKeyId', RecipientKeyIdentifier().subtype(204        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))205)206 207 208class RecipientEncryptedKey(univ.Sequence):209    pass210 211 212RecipientEncryptedKey.componentType = namedtype.NamedTypes(213    namedtype.NamedType('rid', KeyAgreeRecipientIdentifier()),214    namedtype.NamedType('encryptedKey', EncryptedKey())215)216 217 218class RecipientEncryptedKeys(univ.SequenceOf):219    pass220 221 222RecipientEncryptedKeys.componentType = RecipientEncryptedKey()223 224 225class UserKeyingMaterial(univ.OctetString):226    pass227 228 229class OriginatorPublicKey(univ.Sequence):230    pass231 232 233OriginatorPublicKey.componentType = namedtype.NamedTypes(234    namedtype.NamedType('algorithm', rfc3280.AlgorithmIdentifier()),235    namedtype.NamedType('publicKey', univ.BitString())236)237 238 239class OriginatorIdentifierOrKey(univ.Choice):240    pass241 242 243OriginatorIdentifierOrKey.componentType = namedtype.NamedTypes(244    namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()),245    namedtype.NamedType('subjectKeyIdentifier', SubjectKeyIdentifier().subtype(246        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),247    namedtype.NamedType('originatorKey', OriginatorPublicKey().subtype(248        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))249)250 251 252class KeyAgreeRecipientInfo(univ.Sequence):253    pass254 255 256KeyAgreeRecipientInfo.componentType = namedtype.NamedTypes(257    namedtype.NamedType('version', CMSVersion()),258    namedtype.NamedType('originator', OriginatorIdentifierOrKey().subtype(259        explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),260    namedtype.OptionalNamedType('ukm', UserKeyingMaterial().subtype(261        explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),262    namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()),263    namedtype.NamedType('recipientEncryptedKeys', RecipientEncryptedKeys())264)265 266 267class RecipientIdentifier(univ.Choice):268    pass269 270 271RecipientIdentifier.componentType = namedtype.NamedTypes(272    namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()),273    namedtype.NamedType('subjectKeyIdentifier', SubjectKeyIdentifier().subtype(274        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))275)276 277 278class KeyTransRecipientInfo(univ.Sequence):279    pass280 281 282KeyTransRecipientInfo.componentType = namedtype.NamedTypes(283    namedtype.NamedType('version', CMSVersion()),284    namedtype.NamedType('rid', RecipientIdentifier()),285    namedtype.NamedType('keyEncryptionAlgorithm', KeyEncryptionAlgorithmIdentifier()),286    namedtype.NamedType('encryptedKey', EncryptedKey())287)288 289 290class RecipientInfo(univ.Choice):291    pass292 293 294RecipientInfo.componentType = namedtype.NamedTypes(295    namedtype.NamedType('ktri', KeyTransRecipientInfo()),296    namedtype.NamedType('kari', KeyAgreeRecipientInfo().subtype(297        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),298    namedtype.NamedType('kekri', KEKRecipientInfo().subtype(299        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2))),300    namedtype.NamedType('pwri', PasswordRecipientInfo().subtype(301        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))),302    namedtype.NamedType('ori', OtherRecipientInfo().subtype(303        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4)))304)305 306 307class RecipientInfos(univ.SetOf):308    pass309 310 311RecipientInfos.componentType = RecipientInfo()312RecipientInfos.sizeSpec = constraint.ValueSizeConstraint(1, MAX)313 314 315class DigestAlgorithmIdentifier(rfc3280.AlgorithmIdentifier):316    pass317 318 319class Signature(univ.BitString):320    pass321 322 323class SignerIdentifier(univ.Choice):324    pass325 326 327SignerIdentifier.componentType = namedtype.NamedTypes(328    namedtype.NamedType('issuerAndSerialNumber', IssuerAndSerialNumber()),329    namedtype.NamedType('subjectKeyIdentifier', SubjectKeyIdentifier().subtype(330        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))331)332 333 334class UnprotectedAttributes(univ.SetOf):335    pass336 337 338UnprotectedAttributes.componentType = Attribute()339UnprotectedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX)340 341 342class ContentType(univ.ObjectIdentifier):343    pass344 345 346class EncryptedContent(univ.OctetString):347    pass348 349 350class ContentEncryptionAlgorithmIdentifier(rfc3280.AlgorithmIdentifier):351    pass352 353 354class EncryptedContentInfo(univ.Sequence):355    pass356 357 358EncryptedContentInfo.componentType = namedtype.NamedTypes(359    namedtype.NamedType('contentType', ContentType()),360    namedtype.NamedType('contentEncryptionAlgorithm', ContentEncryptionAlgorithmIdentifier()),361    namedtype.OptionalNamedType('encryptedContent', EncryptedContent().subtype(362        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))363)364 365 366class EncryptedData(univ.Sequence):367    pass368 369 370EncryptedData.componentType = namedtype.NamedTypes(371    namedtype.NamedType('version', CMSVersion()),372    namedtype.NamedType('encryptedContentInfo', EncryptedContentInfo()),373    namedtype.OptionalNamedType('unprotectedAttrs', UnprotectedAttributes().subtype(374        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))375)376 377id_contentType = _buildOid(1, 2, 840, 113549, 1, 9, 3)378 379id_data = _buildOid(1, 2, 840, 113549, 1, 7, 1)380 381id_messageDigest = _buildOid(1, 2, 840, 113549, 1, 9, 4)382 383 384class DigestAlgorithmIdentifiers(univ.SetOf):385    pass386 387 388DigestAlgorithmIdentifiers.componentType = DigestAlgorithmIdentifier()389 390 391class EncapsulatedContentInfo(univ.Sequence):392    pass393 394 395EncapsulatedContentInfo.componentType = namedtype.NamedTypes(396    namedtype.NamedType('eContentType', ContentType()),397    namedtype.OptionalNamedType('eContent', univ.OctetString().subtype(398        explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))399)400 401 402class Digest(univ.OctetString):403    pass404 405 406class DigestedData(univ.Sequence):407    pass408 409 410DigestedData.componentType = namedtype.NamedTypes(411    namedtype.NamedType('version', CMSVersion()),412    namedtype.NamedType('digestAlgorithm', DigestAlgorithmIdentifier()),413    namedtype.NamedType('encapContentInfo', EncapsulatedContentInfo()),414    namedtype.NamedType('digest', Digest())415)416 417 418class ContentInfo(univ.Sequence):419    pass420 421 422ContentInfo.componentType = namedtype.NamedTypes(423    namedtype.NamedType('contentType', ContentType()),424    namedtype.NamedType('content', univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))425)426 427 428class UnauthAttributes(univ.SetOf):429    pass430 431 432UnauthAttributes.componentType = Attribute()433UnauthAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX)434 435 436class ExtendedCertificateInfo(univ.Sequence):437    pass438 439 440ExtendedCertificateInfo.componentType = namedtype.NamedTypes(441    namedtype.NamedType('version', CMSVersion()),442    namedtype.NamedType('certificate', rfc3280.Certificate()),443    namedtype.NamedType('attributes', UnauthAttributes())444)445 446 447class SignatureAlgorithmIdentifier(rfc3280.AlgorithmIdentifier):448    pass449 450 451class ExtendedCertificate(univ.Sequence):452    pass453 454 455ExtendedCertificate.componentType = namedtype.NamedTypes(456    namedtype.NamedType('extendedCertificateInfo', ExtendedCertificateInfo()),457    namedtype.NamedType('signatureAlgorithm', SignatureAlgorithmIdentifier()),458    namedtype.NamedType('signature', Signature())459)460 461 462class OtherCertificateFormat(univ.Sequence):463    pass464 465 466OtherCertificateFormat.componentType = namedtype.NamedTypes(467    namedtype.NamedType('otherCertFormat', univ.ObjectIdentifier()),468    namedtype.NamedType('otherCert', univ.Any())469)470 471 472class AttributeCertificateV2(rfc3281.AttributeCertificate):473    pass474 475 476class AttCertVersionV1(univ.Integer):477    pass478 479 480AttCertVersionV1.namedValues = namedval.NamedValues(481    ('v1', 0)482)483 484 485class AttributeCertificateInfoV1(univ.Sequence):486    pass487 488 489AttributeCertificateInfoV1.componentType = namedtype.NamedTypes(490    namedtype.DefaultedNamedType('version', AttCertVersionV1().subtype(value="v1")),491    namedtype.NamedType(492        'subject', univ.Choice(493            componentType=namedtype.NamedTypes(494                namedtype.NamedType('baseCertificateID', rfc3281.IssuerSerial().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),495                namedtype.NamedType('subjectName', rfc3280.GeneralNames().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))496            )497        )498    ),499    namedtype.NamedType('issuer', rfc3280.GeneralNames()),500    namedtype.NamedType('signature', rfc3280.AlgorithmIdentifier()),501    namedtype.NamedType('serialNumber', rfc3280.CertificateSerialNumber()),502    namedtype.NamedType('attCertValidityPeriod', rfc3281.AttCertValidityPeriod()),503    namedtype.NamedType('attributes', univ.SequenceOf(componentType=rfc3280.Attribute())),504    namedtype.OptionalNamedType('issuerUniqueID', rfc3280.UniqueIdentifier()),505    namedtype.OptionalNamedType('extensions', rfc3280.Extensions())506)507 508 509class AttributeCertificateV1(univ.Sequence):510    pass511 512 513AttributeCertificateV1.componentType = namedtype.NamedTypes(514    namedtype.NamedType('acInfo', AttributeCertificateInfoV1()),515    namedtype.NamedType('signatureAlgorithm', rfc3280.AlgorithmIdentifier()),516    namedtype.NamedType('signature', univ.BitString())517)518 519 520class CertificateChoices(univ.Choice):521    pass522 523 524CertificateChoices.componentType = namedtype.NamedTypes(525    namedtype.NamedType('certificate', rfc3280.Certificate()),526    namedtype.NamedType('extendedCertificate', ExtendedCertificate().subtype(527        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),528    namedtype.NamedType('v1AttrCert', AttributeCertificateV1().subtype(529        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),530    namedtype.NamedType('v2AttrCert', AttributeCertificateV2().subtype(531        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),532    namedtype.NamedType('other', OtherCertificateFormat().subtype(533        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3)))534)535 536 537class CertificateSet(univ.SetOf):538    pass539 540 541CertificateSet.componentType = CertificateChoices()542 543 544class MessageAuthenticationCode(univ.OctetString):545    pass546 547 548class UnsignedAttributes(univ.SetOf):549    pass550 551 552UnsignedAttributes.componentType = Attribute()553UnsignedAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX)554 555 556class SignatureValue(univ.OctetString):557    pass558 559 560class SignerInfo(univ.Sequence):561    pass562 563 564SignerInfo.componentType = namedtype.NamedTypes(565    namedtype.NamedType('version', CMSVersion()),566    namedtype.NamedType('sid', SignerIdentifier()),567    namedtype.NamedType('digestAlgorithm', DigestAlgorithmIdentifier()),568    namedtype.OptionalNamedType('signedAttrs', SignedAttributes().subtype(569        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),570    namedtype.NamedType('signatureAlgorithm', SignatureAlgorithmIdentifier()),571    namedtype.NamedType('signature', SignatureValue()),572    namedtype.OptionalNamedType('unsignedAttrs', UnsignedAttributes().subtype(573        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))574)575 576 577class SignerInfos(univ.SetOf):578    pass579 580 581SignerInfos.componentType = SignerInfo()582 583 584class SignedData(univ.Sequence):585    pass586 587 588SignedData.componentType = namedtype.NamedTypes(589    namedtype.NamedType('version', CMSVersion()),590    namedtype.NamedType('digestAlgorithms', DigestAlgorithmIdentifiers()),591    namedtype.NamedType('encapContentInfo', EncapsulatedContentInfo()),592    namedtype.OptionalNamedType('certificates', CertificateSet().subtype(593        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),594    namedtype.OptionalNamedType('crls', RevocationInfoChoices().subtype(595        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),596    namedtype.NamedType('signerInfos', SignerInfos())597)598 599 600class MessageAuthenticationCodeAlgorithm(rfc3280.AlgorithmIdentifier):601    pass602 603 604class MessageDigest(univ.OctetString):605    pass606 607 608class Time(univ.Choice):609    pass610 611 612Time.componentType = namedtype.NamedTypes(613    namedtype.NamedType('utcTime', useful.UTCTime()),614    namedtype.NamedType('generalTime', useful.GeneralizedTime())615)616 617 618class OriginatorInfo(univ.Sequence):619    pass620 621 622OriginatorInfo.componentType = namedtype.NamedTypes(623    namedtype.OptionalNamedType('certs', CertificateSet().subtype(624        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),625    namedtype.OptionalNamedType('crls', RevocationInfoChoices().subtype(626        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))627)628 629 630class AuthAttributes(univ.SetOf):631    pass632 633 634AuthAttributes.componentType = Attribute()635AuthAttributes.sizeSpec = constraint.ValueSizeConstraint(1, MAX)636 637 638class AuthenticatedData(univ.Sequence):639    pass640 641 642AuthenticatedData.componentType = namedtype.NamedTypes(643    namedtype.NamedType('version', CMSVersion()),644    namedtype.OptionalNamedType('originatorInfo', OriginatorInfo().subtype(645        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),646    namedtype.NamedType('recipientInfos', RecipientInfos()),647    namedtype.NamedType('macAlgorithm', MessageAuthenticationCodeAlgorithm()),648    namedtype.OptionalNamedType('digestAlgorithm', DigestAlgorithmIdentifier().subtype(649        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),650    namedtype.NamedType('encapContentInfo', EncapsulatedContentInfo()),651    namedtype.OptionalNamedType('authAttrs', AuthAttributes().subtype(652        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),653    namedtype.NamedType('mac', MessageAuthenticationCode()),654    namedtype.OptionalNamedType('unauthAttrs', UnauthAttributes().subtype(655        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))656)657 658id_ct_contentInfo = _buildOid(1, 2, 840, 113549, 1, 9, 16, 1, 6)659 660id_envelopedData = _buildOid(1, 2, 840, 113549, 1, 7, 3)661 662 663class EnvelopedData(univ.Sequence):664    pass665 666 667EnvelopedData.componentType = namedtype.NamedTypes(668    namedtype.NamedType('version', CMSVersion()),669    namedtype.OptionalNamedType('originatorInfo', OriginatorInfo().subtype(670        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),671    namedtype.NamedType('recipientInfos', RecipientInfos()),672    namedtype.NamedType('encryptedContentInfo', EncryptedContentInfo()),673    namedtype.OptionalNamedType('unprotectedAttrs', UnprotectedAttributes().subtype(674        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))675)676 677 678class Countersignature(SignerInfo):679    pass680 681 682id_digestedData = _buildOid(1, 2, 840, 113549, 1, 7, 5)683 684id_signingTime = _buildOid(1, 2, 840, 113549, 1, 9, 5)685 686 687class ExtendedCertificateOrCertificate(univ.Choice):688    pass689 690 691ExtendedCertificateOrCertificate.componentType = namedtype.NamedTypes(692    namedtype.NamedType('certificate', rfc3280.Certificate()),693    namedtype.NamedType('extendedCertificate', ExtendedCertificate().subtype(694        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))695)696 697id_encryptedData = _buildOid(1, 2, 840, 113549, 1, 7, 6)698 699id_ct_authData = _buildOid(1, 2, 840, 113549, 1, 9, 16, 1, 2)700 701 702class SigningTime(Time):703    pass704 705 706id_countersignature = _buildOid(1, 2, 840, 113549, 1, 9, 6)707 
codekingpro/portable-devtools · Team Ai