Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rfc3281.py332 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# An Internet Attribute Certificate Profile for Authorization10#11# ASN.1 source from:12# http://www.ietf.org/rfc/rfc3281.txt13#14from pyasn1.type import char15from pyasn1.type import constraint16from pyasn1.type import namedtype17from pyasn1.type import namedval18from pyasn1.type import tag19from pyasn1.type import univ20from pyasn1.type import useful21 22from pyasn1_modules import rfc328023 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 ObjectDigestInfo(univ.Sequence):39    pass40 41 42ObjectDigestInfo.componentType = namedtype.NamedTypes(43    namedtype.NamedType('digestedObjectType', univ.Enumerated(44        namedValues=namedval.NamedValues(('publicKey', 0), ('publicKeyCert', 1), ('otherObjectTypes', 2)))),45    namedtype.OptionalNamedType('otherObjectTypeID', univ.ObjectIdentifier()),46    namedtype.NamedType('digestAlgorithm', rfc3280.AlgorithmIdentifier()),47    namedtype.NamedType('objectDigest', univ.BitString())48)49 50 51class IssuerSerial(univ.Sequence):52    pass53 54 55IssuerSerial.componentType = namedtype.NamedTypes(56    namedtype.NamedType('issuer', rfc3280.GeneralNames()),57    namedtype.NamedType('serial', rfc3280.CertificateSerialNumber()),58    namedtype.OptionalNamedType('issuerUID', rfc3280.UniqueIdentifier())59)60 61 62class TargetCert(univ.Sequence):63    pass64 65 66TargetCert.componentType = namedtype.NamedTypes(67    namedtype.NamedType('targetCertificate', IssuerSerial()),68    namedtype.OptionalNamedType('targetName', rfc3280.GeneralName()),69    namedtype.OptionalNamedType('certDigestInfo', ObjectDigestInfo())70)71 72 73class Target(univ.Choice):74    pass75 76 77Target.componentType = namedtype.NamedTypes(78    namedtype.NamedType('targetName', rfc3280.GeneralName().subtype(79        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),80    namedtype.NamedType('targetGroup', rfc3280.GeneralName().subtype(81        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),82    namedtype.NamedType('targetCert',83                        TargetCert().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2)))84)85 86 87class Targets(univ.SequenceOf):88    pass89 90 91Targets.componentType = Target()92 93 94class ProxyInfo(univ.SequenceOf):95    pass96 97 98ProxyInfo.componentType = Targets()99 100id_at_role = _buildOid(rfc3280.id_at, 72)101 102id_pe_aaControls = _buildOid(rfc3280.id_pe, 6)103 104id_ce_targetInformation = _buildOid(rfc3280.id_ce, 55)105 106id_pe_ac_auditIdentity = _buildOid(rfc3280.id_pe, 4)107 108 109class ClassList(univ.BitString):110    pass111 112 113ClassList.namedValues = namedval.NamedValues(114    ('unmarked', 0),115    ('unclassified', 1),116    ('restricted', 2),117    ('confidential', 3),118    ('secret', 4),119    ('topSecret', 5)120)121 122 123class SecurityCategory(univ.Sequence):124    pass125 126 127SecurityCategory.componentType = namedtype.NamedTypes(128    namedtype.NamedType('type', univ.ObjectIdentifier().subtype(129        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),130    namedtype.NamedType('value', univ.Any().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))131)132 133 134class Clearance(univ.Sequence):135    pass136 137 138Clearance.componentType = namedtype.NamedTypes(139    namedtype.NamedType('policyId', univ.ObjectIdentifier().subtype(140        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),141    namedtype.DefaultedNamedType('classList',142                                 ClassList().subtype(implicitTag=tag.Tag(tag.tagClassContext,143                                                                         tag.tagFormatSimple, 1)).subtype(144                                     value="unclassified")),145    namedtype.OptionalNamedType('securityCategories', univ.SetOf(componentType=SecurityCategory()).subtype(146        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))147)148 149 150class AttCertVersion(univ.Integer):151    pass152 153 154AttCertVersion.namedValues = namedval.NamedValues(155    ('v2', 1)156)157 158id_aca = _buildOid(rfc3280.id_pkix, 10)159 160id_at_clearance = _buildOid(2, 5, 1, 5, 55)161 162 163class AttrSpec(univ.SequenceOf):164    pass165 166 167AttrSpec.componentType = univ.ObjectIdentifier()168 169 170class AAControls(univ.Sequence):171    pass172 173 174AAControls.componentType = namedtype.NamedTypes(175    namedtype.OptionalNamedType('pathLenConstraint',176                                univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, MAX))),177    namedtype.OptionalNamedType('permittedAttrs',178                                AttrSpec().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),179    namedtype.OptionalNamedType('excludedAttrs',180                                AttrSpec().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),181    namedtype.DefaultedNamedType('permitUnSpecified', univ.Boolean().subtype(value=1))182)183 184 185class AttCertValidityPeriod(univ.Sequence):186    pass187 188 189AttCertValidityPeriod.componentType = namedtype.NamedTypes(190    namedtype.NamedType('notBeforeTime', useful.GeneralizedTime()),191    namedtype.NamedType('notAfterTime', useful.GeneralizedTime())192)193 194 195id_aca_authenticationInfo = _buildOid(id_aca, 1)196 197 198class V2Form(univ.Sequence):199    pass200 201 202V2Form.componentType = namedtype.NamedTypes(203    namedtype.OptionalNamedType('issuerName', rfc3280.GeneralNames()),204    namedtype.OptionalNamedType('baseCertificateID', IssuerSerial().subtype(205        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),206    namedtype.OptionalNamedType('objectDigestInfo', ObjectDigestInfo().subtype(207        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))208)209 210 211class AttCertIssuer(univ.Choice):212    pass213 214 215AttCertIssuer.componentType = namedtype.NamedTypes(216    namedtype.NamedType('v1Form', rfc3280.GeneralNames()),217    namedtype.NamedType('v2Form',218                        V2Form().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))219)220 221 222class Holder(univ.Sequence):223    pass224 225 226Holder.componentType = namedtype.NamedTypes(227    namedtype.OptionalNamedType('baseCertificateID', IssuerSerial().subtype(228        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),229    namedtype.OptionalNamedType('entityName', rfc3280.GeneralNames().subtype(230        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),231    namedtype.OptionalNamedType('objectDigestInfo', ObjectDigestInfo().subtype(232        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2)))233)234 235 236class AttributeCertificateInfo(univ.Sequence):237    pass238 239 240AttributeCertificateInfo.componentType = namedtype.NamedTypes(241    namedtype.NamedType('version', AttCertVersion()),242    namedtype.NamedType('holder', Holder()),243    namedtype.NamedType('issuer', AttCertIssuer()),244    namedtype.NamedType('signature', rfc3280.AlgorithmIdentifier()),245    namedtype.NamedType('serialNumber', rfc3280.CertificateSerialNumber()),246    namedtype.NamedType('attrCertValidityPeriod', AttCertValidityPeriod()),247    namedtype.NamedType('attributes', univ.SequenceOf(componentType=rfc3280.Attribute())),248    namedtype.OptionalNamedType('issuerUniqueID', rfc3280.UniqueIdentifier()),249    namedtype.OptionalNamedType('extensions', rfc3280.Extensions())250)251 252 253class AttributeCertificate(univ.Sequence):254    pass255 256 257AttributeCertificate.componentType = namedtype.NamedTypes(258    namedtype.NamedType('acinfo', AttributeCertificateInfo()),259    namedtype.NamedType('signatureAlgorithm', rfc3280.AlgorithmIdentifier()),260    namedtype.NamedType('signatureValue', univ.BitString())261)262 263id_mod = _buildOid(rfc3280.id_pkix, 0)264 265id_mod_attribute_cert = _buildOid(id_mod, 12)266 267id_aca_accessIdentity = _buildOid(id_aca, 2)268 269 270class RoleSyntax(univ.Sequence):271    pass272 273 274RoleSyntax.componentType = namedtype.NamedTypes(275    namedtype.OptionalNamedType('roleAuthority', rfc3280.GeneralNames().subtype(276        implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),277    namedtype.NamedType('roleName',278                        rfc3280.GeneralName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))279)280 281id_aca_chargingIdentity = _buildOid(id_aca, 3)282 283 284class ACClearAttrs(univ.Sequence):285    pass286 287 288ACClearAttrs.componentType = namedtype.NamedTypes(289    namedtype.NamedType('acIssuer', rfc3280.GeneralName()),290    namedtype.NamedType('acSerial', univ.Integer()),291    namedtype.NamedType('attrs', univ.SequenceOf(componentType=rfc3280.Attribute()))292)293 294id_aca_group = _buildOid(id_aca, 4)295 296id_pe_ac_proxying = _buildOid(rfc3280.id_pe, 10)297 298 299class SvceAuthInfo(univ.Sequence):300    pass301 302 303SvceAuthInfo.componentType = namedtype.NamedTypes(304    namedtype.NamedType('service', rfc3280.GeneralName()),305    namedtype.NamedType('ident', rfc3280.GeneralName()),306    namedtype.OptionalNamedType('authInfo', univ.OctetString())307)308 309 310class IetfAttrSyntax(univ.Sequence):311    pass312 313 314IetfAttrSyntax.componentType = namedtype.NamedTypes(315    namedtype.OptionalNamedType(316        'policyAuthority', rfc3280.GeneralNames().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))317    ),318    namedtype.NamedType(319        'values', univ.SequenceOf(320            componentType=univ.Choice(321                componentType=namedtype.NamedTypes(322                    namedtype.NamedType('octets', univ.OctetString()),323                    namedtype.NamedType('oid', univ.ObjectIdentifier()),324                    namedtype.NamedType('string', char.UTF8String())325                )326            )327        )328    )329)330 331id_aca_encAttrs = _buildOid(id_aca, 6)332 
codekingpro/portable-devtools · Team Ai