NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

rfc4210.py (14891B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\pyasn1_modules\rfc4210.py
      2 from pyasn1.type import tag, namedtype, namedval, univ, constraint, char, useful
      3 from pyasn1_modules import rfc2459, rfc2511, rfc2314
      4 MAX = 64
      5 
      6 class KeyIdentifier(univ.OctetString):
      7     pass
      8 
      9 
     10 class CMPCertificate(rfc2459.Certificate):
     11     pass
     12 
     13 
     14 class OOBCert(CMPCertificate):
     15     pass
     16 
     17 
     18 class CertAnnContent(CMPCertificate):
     19     pass
     20 
     21 
     22 class PKIFreeText(univ.SequenceOf):
     23     componentType = char.UTF8String()
     24     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
     25 
     26 
     27 class PollRepContent(univ.SequenceOf):
     28 
     29     class CertReq(univ.Sequence):
     30         componentType = namedtype.NamedTypes(namedtype.NamedType('certReqId', univ.Integer()), namedtype.NamedType('checkAfter', univ.Integer()), namedtype.OptionalNamedType('reason', PKIFreeText()))
     31 
     32     componentType = CertReq()
     33 
     34 
     35 class PollReqContent(univ.SequenceOf):
     36 
     37     class CertReq(univ.Sequence):
     38         componentType = namedtype.NamedTypes(namedtype.NamedType('certReqId', univ.Integer()))
     39 
     40     componentType = CertReq()
     41 
     42 
     43 class InfoTypeAndValue(univ.Sequence):
     44     componentType = namedtype.NamedTypes(namedtype.NamedType('infoType', univ.ObjectIdentifier()), namedtype.OptionalNamedType('infoValue', univ.Any()))
     45 
     46 
     47 class GenRepContent(univ.SequenceOf):
     48     componentType = InfoTypeAndValue()
     49 
     50 
     51 class GenMsgContent(univ.SequenceOf):
     52     componentType = InfoTypeAndValue()
     53 
     54 
     55 class PKIConfirmContent(univ.Null):
     56     pass
     57 
     58 
     59 class CRLAnnContent(univ.SequenceOf):
     60     componentType = rfc2459.CertificateList()
     61 
     62 
     63 class CAKeyUpdAnnContent(univ.Sequence):
     64     componentType = namedtype.NamedTypes(namedtype.NamedType('oldWithNew', CMPCertificate()), namedtype.NamedType('newWithOld', CMPCertificate()), namedtype.NamedType('newWithNew', CMPCertificate()))
     65 
     66 
     67 class RevDetails(univ.Sequence):
     68     componentType = namedtype.NamedTypes(namedtype.NamedType('certDetails', rfc2511.CertTemplate()), namedtype.OptionalNamedType('crlEntryDetails', rfc2459.Extensions()))
     69 
     70 
     71 class RevReqContent(univ.SequenceOf):
     72     componentType = RevDetails()
     73 
     74 
     75 class CertOrEncCert(univ.Choice):
     76     componentType = namedtype.NamedTypes(namedtype.NamedType('certificate', CMPCertificate().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('encryptedCert', rfc2511.EncryptedValue().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))))
     77 
     78 
     79 class CertifiedKeyPair(univ.Sequence):
     80     componentType = namedtype.NamedTypes(namedtype.NamedType('certOrEncCert', CertOrEncCert()), namedtype.OptionalNamedType('privateKey', rfc2511.EncryptedValue().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('publicationInfo', rfc2511.PKIPublicationInfo().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))))
     81 
     82 
     83 class POPODecKeyRespContent(univ.SequenceOf):
     84     componentType = univ.Integer()
     85 
     86 
     87 class Challenge(univ.Sequence):
     88     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('owf', rfc2459.AlgorithmIdentifier()), namedtype.NamedType('witness', univ.OctetString()), namedtype.NamedType('challenge', univ.OctetString()))
     89 
     90 
     91 class PKIStatus(univ.Integer):
     92     namedValues = namedval.NamedValues(('accepted', 0), ('grantedWithMods', 1), ('rejection', 2), ('waiting', 3), ('revocationWarning', 4), ('revocationNotification', 5), ('keyUpdateWarning', 6))
     93 
     94 
     95 class PKIFailureInfo(univ.BitString):
     96     namedValues = namedval.NamedValues(('badAlg', 0), ('badMessageCheck', 1), ('badRequest', 2), ('badTime', 3), ('badCertId', 4), ('badDataFormat', 5), ('wrongAuthority', 6), ('incorrectData', 7), ('missingTimeStamp', 8), ('badPOP', 9), ('certRevoked', 10), ('certConfirmed', 11), ('wrongIntegrity', 12), ('badRecipientNonce', 13), ('timeNotAvailable', 14), ('unacceptedPolicy', 15), ('unacceptedExtension', 16), ('addInfoNotAvailable', 17), ('badSenderNonce', 18), ('badCertTemplate', 19), ('signerNotTrusted', 20), ('transactionIdInUse', 21), ('unsupportedVersion', 22), ('notAuthorized', 23), ('systemUnavail', 24), ('systemFailure', 25), ('duplicateCertReq', 26))
     97 
     98 
     99 class PKIStatusInfo(univ.Sequence):
    100     componentType = namedtype.NamedTypes(namedtype.NamedType('status', PKIStatus()), namedtype.OptionalNamedType('statusString', PKIFreeText()), namedtype.OptionalNamedType('failInfo', PKIFailureInfo()))
    101 
    102 
    103 class ErrorMsgContent(univ.Sequence):
    104     componentType = namedtype.NamedTypes(namedtype.NamedType('pKIStatusInfo', PKIStatusInfo()), namedtype.OptionalNamedType('errorCode', univ.Integer()), namedtype.OptionalNamedType('errorDetails', PKIFreeText()))
    105 
    106 
    107 class CertStatus(univ.Sequence):
    108     componentType = namedtype.NamedTypes(namedtype.NamedType('certHash', univ.OctetString()), namedtype.NamedType('certReqId', univ.Integer()), namedtype.OptionalNamedType('statusInfo', PKIStatusInfo()))
    109 
    110 
    111 class CertConfirmContent(univ.SequenceOf):
    112     componentType = CertStatus()
    113 
    114 
    115 class RevAnnContent(univ.Sequence):
    116     componentType = namedtype.NamedTypes(namedtype.NamedType('status', PKIStatus()), namedtype.NamedType('certId', rfc2511.CertId()), namedtype.NamedType('willBeRevokedAt', useful.GeneralizedTime()), namedtype.NamedType('badSinceDate', useful.GeneralizedTime()), namedtype.OptionalNamedType('crlDetails', rfc2459.Extensions()))
    117 
    118 
    119 class RevRepContent(univ.Sequence):
    120     componentType = namedtype.NamedTypes(namedtype.NamedType('status', PKIStatusInfo()), namedtype.OptionalNamedType('revCerts', univ.SequenceOf(componentType=rfc2511.CertId()).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('crls', univ.SequenceOf(componentType=rfc2459.CertificateList()).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))))
    121 
    122 
    123 class KeyRecRepContent(univ.Sequence):
    124     componentType = namedtype.NamedTypes(namedtype.NamedType('status', PKIStatusInfo()), namedtype.OptionalNamedType('newSigCert', CMPCertificate().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('caCerts', univ.SequenceOf(componentType=CMPCertificate()).subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1), subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), namedtype.OptionalNamedType('keyPairHist', univ.SequenceOf(componentType=CertifiedKeyPair()).subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2), subtypeSpec=constraint.ValueSizeConstraint(1, MAX))))
    125 
    126 
    127 class CertResponse(univ.Sequence):
    128     componentType = namedtype.NamedTypes(namedtype.NamedType('certReqId', univ.Integer()), namedtype.NamedType('status', PKIStatusInfo()), namedtype.OptionalNamedType('certifiedKeyPair', CertifiedKeyPair()), namedtype.OptionalNamedType('rspInfo', univ.OctetString()))
    129 
    130 
    131 class CertRepMessage(univ.Sequence):
    132     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('caPubs', univ.SequenceOf(componentType=CMPCertificate()).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))), namedtype.NamedType('response', univ.SequenceOf(componentType=CertResponse())))
    133 
    134 
    135 class POPODecKeyChallContent(univ.SequenceOf):
    136     componentType = Challenge()
    137 
    138 
    139 class OOBCertHash(univ.Sequence):
    140     componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('hashAlg', rfc2459.AlgorithmIdentifier().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('certId', rfc2511.CertId().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))), namedtype.NamedType('hashVal', univ.BitString()))
    141 
    142 
    143 class NestedMessageContent(univ.SequenceOf):
    144     componentType = univ.Any()
    145 
    146 
    147 class DHBMParameter(univ.Sequence):
    148     componentType = namedtype.NamedTypes(namedtype.NamedType('owf', rfc2459.AlgorithmIdentifier()), namedtype.NamedType('mac', rfc2459.AlgorithmIdentifier()))
    149 
    150 
    151 id_DHBasedMac = univ.ObjectIdentifier('1.2.840.113533.7.66.30')
    152 
    153 class PBMParameter(univ.Sequence):
    154     componentType = namedtype.NamedTypes(namedtype.NamedType('salt', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(0, 128))), namedtype.NamedType('owf', rfc2459.AlgorithmIdentifier()), namedtype.NamedType('iterationCount', univ.Integer()), namedtype.NamedType('mac', rfc2459.AlgorithmIdentifier()))
    155 
    156 
    157 id_PasswordBasedMac = univ.ObjectIdentifier('1.2.840.113533.7.66.13')
    158 
    159 class PKIProtection(univ.BitString):
    160     pass
    161 
    162 
    163 nestedMessageContent = NestedMessageContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 20))
    164 
    165 class PKIBody(univ.Choice):
    166     componentType = namedtype.NamedTypes(namedtype.NamedType('ir', rfc2511.CertReqMessages().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('ip', CertRepMessage().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))), namedtype.NamedType('cr', rfc2511.CertReqMessages().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2))), namedtype.NamedType('cp', CertRepMessage().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))), namedtype.NamedType('p10cr', rfc2314.CertificationRequest().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4))), namedtype.NamedType('popdecc', POPODecKeyChallContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))), namedtype.NamedType('popdecr', POPODecKeyRespContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 6))), namedtype.NamedType('kur', rfc2511.CertReqMessages().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 7))), namedtype.NamedType('kup', CertRepMessage().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 8))), namedtype.NamedType('krr', rfc2511.CertReqMessages().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 9))), namedtype.NamedType('krp', KeyRecRepContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 10))), namedtype.NamedType('rr', RevReqContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 11))), namedtype.NamedType('rp', RevRepContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 12))), namedtype.NamedType('ccr', rfc2511.CertReqMessages().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 13))), namedtype.NamedType('ccp', CertRepMessage().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 14))), namedtype.NamedType('ckuann', CAKeyUpdAnnContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 15))), namedtype.NamedType('cann', CertAnnContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 16))), namedtype.NamedType('rann', RevAnnContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 17))), namedtype.NamedType('crlann', CRLAnnContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 18))), namedtype.NamedType('pkiconf', PKIConfirmContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 19))), namedtype.NamedType('nested', nestedMessageContent), namedtype.NamedType('genm', GenMsgContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 21))), namedtype.NamedType('gen', GenRepContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 22))), namedtype.NamedType('error', ErrorMsgContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 23))), namedtype.NamedType('certConf', CertConfirmContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 24))), namedtype.NamedType('pollReq', PollReqContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 25))), namedtype.NamedType('pollRep', PollRepContent().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 26))))
    167 
    168 
    169 class PKIHeader(univ.Sequence):
    170     componentType = namedtype.NamedTypes(namedtype.NamedType('pvno', univ.Integer(namedValues=namedval.NamedValues(('cmp1999', 1), ('cmp2000', 2)))), namedtype.NamedType('sender', rfc2459.GeneralName()), namedtype.NamedType('recipient', rfc2459.GeneralName()), namedtype.OptionalNamedType('messageTime', useful.GeneralizedTime().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('protectionAlg', rfc2459.AlgorithmIdentifier().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))), namedtype.OptionalNamedType('senderKID', rfc2459.KeyIdentifier().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('recipKID', rfc2459.KeyIdentifier().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), namedtype.OptionalNamedType('transactionID', univ.OctetString().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))), namedtype.OptionalNamedType('senderNonce', univ.OctetString().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))), namedtype.OptionalNamedType('recipNonce', univ.OctetString().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))), namedtype.OptionalNamedType('freeText', PKIFreeText().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 7))), namedtype.OptionalNamedType('generalInfo', univ.SequenceOf(componentType=InfoTypeAndValue().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))))
    171 
    172 
    173 class ProtectedPart(univ.Sequence):
    174     componentType = namedtype.NamedTypes(namedtype.NamedType('header', PKIHeader()), namedtype.NamedType('infoValue', PKIBody()))
    175 
    176 
    177 class PKIMessage(univ.Sequence):
    178     componentType = namedtype.NamedTypes(namedtype.NamedType('header', PKIHeader()), namedtype.NamedType('body', PKIBody()), namedtype.OptionalNamedType('protection', PKIProtection().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('extraCerts', univ.SequenceOf(componentType=CMPCertificate()).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))))
    179 
    180 
    181 class PKIMessages(univ.SequenceOf):
    182     componentType = PKIMessage()
    183     subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
    184 
    185 
    186 NestedMessageContent.componentType = PKIMessages()
    187 nestedMessageContent.componentType = PKIMessages()