Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rfc3125.py470 linesDownload Raw Back to pyasn1_modules
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, LLC7# License: http://snmplabs.com/pyasn1/license.html8#9# Electronic Signature Policies10#11# ASN.1 source from:12# https://www.rfc-editor.org/rfc/rfc3125.txt13# https://www.rfc-editor.org/errata/eid590114# https://www.rfc-editor.org/errata/eid590215#16 17from pyasn1.type import constraint18from pyasn1.type import namedtype19from pyasn1.type import namedval20from pyasn1.type import tag21from pyasn1.type import useful22from pyasn1.type import univ23 24from pyasn1_modules import rfc528025 26MAX = float('inf')27 28 29# Imports from RFC 528030 31AlgorithmIdentifier = rfc5280.AlgorithmIdentifier32 33Attribute = rfc5280.Attribute34 35AttributeType = rfc5280.AttributeType36 37AttributeTypeAndValue = rfc5280.AttributeTypeAndValue38 39AttributeValue = rfc5280.AttributeValue40 41Certificate = rfc5280.Certificate42 43CertificateList = rfc5280.CertificateList44 45DirectoryString = rfc5280.DirectoryString46 47GeneralName = rfc5280.GeneralName48 49GeneralNames = rfc5280.GeneralNames50 51Name = rfc5280.Name52 53PolicyInformation = rfc5280.PolicyInformation54 55 56# Electronic Signature Policies57 58class CertPolicyId(univ.ObjectIdentifier):59    pass60 61 62class AcceptablePolicySet(univ.SequenceOf):63    componentType = CertPolicyId()64 65 66class SignPolExtn(univ.Sequence):67    componentType = namedtype.NamedTypes(68        namedtype.NamedType('extnID', univ.ObjectIdentifier()),69        namedtype.NamedType('extnValue', univ.OctetString())70    )71 72 73class SignPolExtensions(univ.SequenceOf):74    componentType = SignPolExtn()75 76 77class AlgAndLength(univ.Sequence):78    componentType = namedtype.NamedTypes(79        namedtype.NamedType('algID', univ.ObjectIdentifier()),80        namedtype.OptionalNamedType('minKeyLength', univ.Integer()),81        namedtype.OptionalNamedType('other', SignPolExtensions())82    )83 84 85class AlgorithmConstraints(univ.SequenceOf):86    componentType = AlgAndLength()87 88 89class AlgorithmConstraintSet(univ.Sequence):90    componentType = namedtype.NamedTypes(91        namedtype.OptionalNamedType('signerAlgorithmConstraints',92            AlgorithmConstraints().subtype(explicitTag=tag.Tag(93                tag.tagClassContext, tag.tagFormatSimple, 0))),94        namedtype.OptionalNamedType('eeCertAlgorithmConstraints',95            AlgorithmConstraints().subtype(explicitTag=tag.Tag(96                tag.tagClassContext, tag.tagFormatSimple, 1))),97        namedtype.OptionalNamedType('caCertAlgorithmConstraints',98            AlgorithmConstraints().subtype(explicitTag=tag.Tag(99                tag.tagClassContext, tag.tagFormatSimple, 2))),100        namedtype.OptionalNamedType('aaCertAlgorithmConstraints',101            AlgorithmConstraints().subtype(explicitTag=tag.Tag(102                tag.tagClassContext, tag.tagFormatSimple, 3))),103        namedtype.OptionalNamedType('tsaCertAlgorithmConstraints',104            AlgorithmConstraints().subtype(explicitTag=tag.Tag(105                tag.tagClassContext, tag.tagFormatSimple, 4)))106    )107 108 109class AttributeValueConstraints(univ.SequenceOf):110    componentType = AttributeTypeAndValue()111 112 113class AttributeTypeConstraints(univ.SequenceOf):114    componentType = AttributeType()115 116 117class AttributeConstraints(univ.Sequence):118    componentType = namedtype.NamedTypes(119        namedtype.OptionalNamedType('attributeTypeConstarints',120            AttributeTypeConstraints().subtype(explicitTag=tag.Tag(121                tag.tagClassContext, tag.tagFormatSimple, 0))),122        namedtype.OptionalNamedType('attributeValueConstarints',123            AttributeValueConstraints().subtype(explicitTag=tag.Tag(124                tag.tagClassContext, tag.tagFormatSimple, 1)))125    )126 127 128class HowCertAttribute(univ.Enumerated):129    namedValues = namedval.NamedValues(130        ('claimedAttribute', 0),131        ('certifiedAttribtes', 1),132        ('either', 2)133    )134 135 136class SkipCerts(univ.Integer):137    subtypeSpec = constraint.ValueRangeConstraint(0, MAX)138 139 140class PolicyConstraints(univ.Sequence):141    componentType = namedtype.NamedTypes(142        namedtype.OptionalNamedType('requireExplicitPolicy',143            SkipCerts().subtype(explicitTag=tag.Tag(144                tag.tagClassContext, tag.tagFormatSimple, 0))),145        namedtype.OptionalNamedType('inhibitPolicyMapping',146            SkipCerts().subtype(explicitTag=tag.Tag(147                tag.tagClassContext, tag.tagFormatSimple, 1)))148    )149 150 151class BaseDistance(univ.Integer):152    subtypeSpec = constraint.ValueRangeConstraint(0, MAX)153 154 155class GeneralSubtree(univ.Sequence):156    componentType = namedtype.NamedTypes(157        namedtype.NamedType('base', GeneralName()),158        namedtype.DefaultedNamedType('minimum',159            BaseDistance().subtype(explicitTag=tag.Tag(160                tag.tagClassContext, tag.tagFormatSimple, 0)).subtype(161                    value=0)),162        namedtype.OptionalNamedType('maximum',163            BaseDistance().subtype(explicitTag=tag.Tag(164                tag.tagClassContext, tag.tagFormatSimple, 1)))165    )166 167 168class GeneralSubtrees(univ.SequenceOf):169    componentType = GeneralSubtree()170    subtypeSpec = constraint.ValueSizeConstraint(1, MAX)171 172 173class NameConstraints(univ.Sequence):174    componentType = namedtype.NamedTypes(175        namedtype.OptionalNamedType('permittedSubtrees',176            GeneralSubtrees().subtype(explicitTag=tag.Tag(177                tag.tagClassContext, tag.tagFormatSimple, 0))),178        namedtype.OptionalNamedType('excludedSubtrees',179            GeneralSubtrees().subtype(explicitTag=tag.Tag(180                tag.tagClassContext, tag.tagFormatSimple, 1)))181    )182 183 184class PathLenConstraint(univ.Integer):185    subtypeSpec = constraint.ValueRangeConstraint(0, MAX)186 187 188class CertificateTrustPoint(univ.Sequence):189    componentType = namedtype.NamedTypes(190        namedtype.NamedType('trustpoint', Certificate()),191        namedtype.OptionalNamedType('pathLenConstraint',192            PathLenConstraint().subtype(explicitTag=tag.Tag(193                tag.tagClassContext, tag.tagFormatSimple, 0))),194        namedtype.OptionalNamedType('acceptablePolicySet',195            AcceptablePolicySet().subtype(explicitTag=tag.Tag(196                tag.tagClassContext, tag.tagFormatSimple, 1))),197        namedtype.OptionalNamedType('nameConstraints',198            NameConstraints().subtype(explicitTag=tag.Tag(199                tag.tagClassContext, tag.tagFormatConstructed, 2))),200        namedtype.OptionalNamedType('policyConstraints',201            PolicyConstraints().subtype(explicitTag=tag.Tag(202                tag.tagClassContext, tag.tagFormatConstructed, 3)))203    )204 205 206class CertificateTrustTrees(univ.SequenceOf):207    componentType = CertificateTrustPoint()208 209 210class EnuRevReq(univ.Enumerated):211    namedValues = namedval.NamedValues(212        ('clrCheck', 0),213        ('ocspCheck', 1),214        ('bothCheck', 2),215        ('eitherCheck', 3),216        ('noCheck', 4),217        ('other', 5)218    )219 220 221class RevReq(univ.Sequence):222    componentType = namedtype.NamedTypes(223        namedtype.NamedType('enuRevReq', EnuRevReq()),224        namedtype.OptionalNamedType('exRevReq', SignPolExtensions())225    )226 227 228class CertRevReq(univ.Sequence):229    componentType = namedtype.NamedTypes(230        namedtype.NamedType('endCertRevReq', RevReq()),231        namedtype.NamedType('caCerts',232            RevReq().subtype(explicitTag=tag.Tag(233                tag.tagClassContext, tag.tagFormatConstructed, 0)))234    )235 236 237class AttributeTrustCondition(univ.Sequence):238    componentType = namedtype.NamedTypes(239        namedtype.NamedType('attributeMandated', univ.Boolean()),240        namedtype.NamedType('howCertAttribute', HowCertAttribute()),241        namedtype.OptionalNamedType('attrCertificateTrustTrees',242            CertificateTrustTrees().subtype(explicitTag=tag.Tag(243                tag.tagClassContext, tag.tagFormatSimple, 0))),244        namedtype.OptionalNamedType('attrRevReq',245            CertRevReq().subtype(explicitTag=tag.Tag(246                tag.tagClassContext, tag.tagFormatConstructed, 1))),247        namedtype.OptionalNamedType('attributeConstraints',248            AttributeConstraints().subtype(explicitTag=tag.Tag(249                tag.tagClassContext, tag.tagFormatConstructed, 2)))250    )251 252 253class CMSAttrs(univ.SequenceOf):254    componentType = univ.ObjectIdentifier()255 256 257class CertInfoReq(univ.Enumerated):258    namedValues = namedval.NamedValues(259        ('none', 0),260        ('signerOnly', 1),261        ('fullPath', 2)262    )263 264 265class CertRefReq(univ.Enumerated):266    namedValues = namedval.NamedValues(267        ('signerOnly', 1),268        ('fullPath', 2)269    )270 271 272class DeltaTime(univ.Sequence):273    componentType = namedtype.NamedTypes(274        namedtype.NamedType('deltaSeconds', univ.Integer()),275        namedtype.NamedType('deltaMinutes', univ.Integer()),276        namedtype.NamedType('deltaHours', univ.Integer()),277        namedtype.NamedType('deltaDays', univ.Integer())278    )279 280 281class TimestampTrustCondition(univ.Sequence):282    componentType = namedtype.NamedTypes(283        namedtype.OptionalNamedType('ttsCertificateTrustTrees',284            CertificateTrustTrees().subtype(explicitTag=tag.Tag(285                tag.tagClassContext, tag.tagFormatSimple, 0))),286        namedtype.OptionalNamedType('ttsRevReq',287            CertRevReq().subtype(explicitTag=tag.Tag(288                tag.tagClassContext, tag.tagFormatConstructed, 1))),289        namedtype.OptionalNamedType('ttsNameConstraints',290            NameConstraints().subtype(explicitTag=tag.Tag(291                tag.tagClassContext, tag.tagFormatConstructed, 2))),292        namedtype.OptionalNamedType('cautionPeriod',293            DeltaTime().subtype(explicitTag=tag.Tag(294                tag.tagClassContext, tag.tagFormatConstructed, 3))),295        namedtype.OptionalNamedType('signatureTimestampDelay',296            DeltaTime().subtype(explicitTag=tag.Tag(297                tag.tagClassContext, tag.tagFormatConstructed, 4)))298    )299 300 301class SignerRules(univ.Sequence):302    componentType = namedtype.NamedTypes(303        namedtype.OptionalNamedType('externalSignedData', univ.Boolean()),304        namedtype.NamedType('mandatedSignedAttr', CMSAttrs()),305        namedtype.NamedType('mandatedUnsignedAttr', CMSAttrs()),306        namedtype.DefaultedNamedType('mandatedCertificateRef',307            CertRefReq().subtype(explicitTag=tag.Tag(308                tag.tagClassContext, tag.tagFormatSimple, 0)).subtype(309                    value='signerOnly')),310        namedtype.DefaultedNamedType('mandatedCertificateInfo',311            CertInfoReq().subtype(explicitTag=tag.Tag(312                tag.tagClassContext, tag.tagFormatSimple, 1)).subtype(313                    value='none')),314        namedtype.OptionalNamedType('signPolExtensions',315            SignPolExtensions().subtype(explicitTag=tag.Tag(316                 tag.tagClassContext, tag.tagFormatSimple, 2)))317    )318 319 320class MandatedUnsignedAttr(CMSAttrs):321    pass322 323 324class VerifierRules(univ.Sequence):325    componentType = namedtype.NamedTypes(326        namedtype.NamedType('mandatedUnsignedAttr', MandatedUnsignedAttr()),327        namedtype.OptionalNamedType('signPolExtensions', SignPolExtensions())328    )329 330 331class SignerAndVerifierRules(univ.Sequence):332    componentType = namedtype.NamedTypes(333        namedtype.NamedType('signerRules', SignerRules()),334        namedtype.NamedType('verifierRules', VerifierRules())335    )336 337 338class SigningCertTrustCondition(univ.Sequence):339    componentType = namedtype.NamedTypes(340        namedtype.NamedType('signerTrustTrees', CertificateTrustTrees()),341        namedtype.NamedType('signerRevReq', CertRevReq())342    )343 344 345class CommitmentTypeIdentifier(univ.ObjectIdentifier):346    pass347 348 349class FieldOfApplication(DirectoryString):350    pass351 352 353class CommitmentType(univ.Sequence):354    componentType = namedtype.NamedTypes(355        namedtype.NamedType('identifier', CommitmentTypeIdentifier()),356        namedtype.OptionalNamedType('fieldOfApplication',357            FieldOfApplication().subtype(explicitTag=tag.Tag(358                tag.tagClassContext, tag.tagFormatSimple, 0))),359        namedtype.OptionalNamedType('semantics',360            DirectoryString().subtype(explicitTag=tag.Tag(361                tag.tagClassContext, tag.tagFormatSimple, 1)))362    )363 364 365class SelectedCommitmentTypes(univ.SequenceOf):366    componentType = univ.Choice(componentType=namedtype.NamedTypes(367        namedtype.NamedType('empty', univ.Null()),368        namedtype.NamedType('recognizedCommitmentType', CommitmentType())369    ))370 371 372class CommitmentRule(univ.Sequence):373    componentType = namedtype.NamedTypes(374        namedtype.NamedType('selCommitmentTypes', SelectedCommitmentTypes()),375        namedtype.OptionalNamedType('signerAndVeriferRules',376            SignerAndVerifierRules().subtype(explicitTag=tag.Tag(377                tag.tagClassContext, tag.tagFormatConstructed, 0))),378        namedtype.OptionalNamedType('signingCertTrustCondition',379            SigningCertTrustCondition().subtype(explicitTag=tag.Tag(380                tag.tagClassContext, tag.tagFormatConstructed, 1))),381        namedtype.OptionalNamedType('timeStampTrustCondition',382            TimestampTrustCondition().subtype(explicitTag=tag.Tag(383                tag.tagClassContext, tag.tagFormatConstructed, 2))),384        namedtype.OptionalNamedType('attributeTrustCondition',385            AttributeTrustCondition().subtype(explicitTag=tag.Tag(386                tag.tagClassContext, tag.tagFormatConstructed, 3))),387        namedtype.OptionalNamedType('algorithmConstraintSet',388            AlgorithmConstraintSet().subtype(explicitTag=tag.Tag(389                tag.tagClassContext, tag.tagFormatConstructed, 4))),390        namedtype.OptionalNamedType('signPolExtensions',391            SignPolExtensions().subtype(explicitTag=tag.Tag(392                tag.tagClassContext, tag.tagFormatSimple, 5)))393    )394 395 396class CommitmentRules(univ.SequenceOf):397    componentType = CommitmentRule()398 399 400class CommonRules(univ.Sequence):401    componentType = namedtype.NamedTypes(402        namedtype.OptionalNamedType('signerAndVeriferRules',403            SignerAndVerifierRules().subtype(explicitTag=tag.Tag(404                tag.tagClassContext, tag.tagFormatConstructed, 0))),405        namedtype.OptionalNamedType('signingCertTrustCondition',406            SigningCertTrustCondition().subtype(explicitTag=tag.Tag(407                tag.tagClassContext, tag.tagFormatConstructed, 1))),408        namedtype.OptionalNamedType('timeStampTrustCondition',409            TimestampTrustCondition().subtype(explicitTag=tag.Tag(410                tag.tagClassContext, tag.tagFormatConstructed, 2))),411        namedtype.OptionalNamedType('attributeTrustCondition',412            AttributeTrustCondition().subtype(explicitTag=tag.Tag(413                tag.tagClassContext, tag.tagFormatConstructed, 3))),414        namedtype.OptionalNamedType('algorithmConstraintSet',415            AlgorithmConstraintSet().subtype(explicitTag=tag.Tag(416                tag.tagClassContext, tag.tagFormatConstructed, 4))),417        namedtype.OptionalNamedType('signPolExtensions',418            SignPolExtensions().subtype(explicitTag=tag.Tag(419                tag.tagClassContext, tag.tagFormatSimple, 5)))420    )421 422 423class PolicyIssuerName(GeneralNames):424    pass425 426 427class SignPolicyHash(univ.OctetString):428    pass429 430 431class SignPolicyId(univ.ObjectIdentifier):432    pass433 434 435class SigningPeriod(univ.Sequence):436    componentType = namedtype.NamedTypes(437        namedtype.NamedType('notBefore', useful.GeneralizedTime()),438        namedtype.OptionalNamedType('notAfter', useful.GeneralizedTime())439    )440 441 442class SignatureValidationPolicy(univ.Sequence):443    componentType = namedtype.NamedTypes(444        namedtype.NamedType('signingPeriod', SigningPeriod()),445        namedtype.NamedType('commonRules', CommonRules()),446        namedtype.NamedType('commitmentRules', CommitmentRules()),447        namedtype.OptionalNamedType('signPolExtensions', SignPolExtensions())448    )449 450 451class SignPolicyInfo(univ.Sequence):452    componentType = namedtype.NamedTypes(453        namedtype.NamedType('signPolicyIdentifier', SignPolicyId()),454        namedtype.NamedType('dateOfIssue', useful.GeneralizedTime()),455        namedtype.NamedType('policyIssuerName', PolicyIssuerName()),456        namedtype.NamedType('fieldOfApplication', FieldOfApplication()),457        namedtype.NamedType('signatureValidationPolicy', SignatureValidationPolicy()),458        namedtype.OptionalNamedType('signPolExtensions', SignPolExtensions())459    )460 461 462class SignaturePolicy(univ.Sequence):463    componentType = namedtype.NamedTypes(464        namedtype.NamedType('signPolicyHashAlg', AlgorithmIdentifier()),465        namedtype.NamedType('signPolicyInfo', SignPolicyInfo()),466        namedtype.OptionalNamedType('signPolicyHash', SignPolicyHash())467    )468 469 470 
codekingpro/portable-devtools · Team Ai