aboutsummaryrefslogtreecommitdiff
path: root/pyasn1_modules/rfc4210.py
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2016-03-27 23:45:18 +0200
committerIlya Etingof <etingof@gmail.com>2016-03-27 23:45:18 +0200
commit2a5c89cd9890d34a77e8d9e2d715cf6bbef7bbd1 (patch)
tree4618d152b7cb1dc854844d26ba9955bf19bb9573 /pyasn1_modules/rfc4210.py
parentbc17ad0b90ec51a01b306a88e48fc22a7befb895 (diff)
downloadpyasn1-modules-2a5c89cd9890d34a77e8d9e2d715cf6bbef7bbd1.tar.gz
pep8 reformatted
Diffstat (limited to 'pyasn1_modules/rfc4210.py')
-rw-r--r--pyasn1_modules/rfc4210.py410
1 files changed, 236 insertions, 174 deletions
diff --git a/pyasn1_modules/rfc4210.py b/pyasn1_modules/rfc4210.py
index 9edbf89..5fde668 100644
--- a/pyasn1_modules/rfc4210.py
+++ b/pyasn1_modules/rfc4210.py
@@ -8,18 +8,27 @@
#
# Based on Alex Railean's work
#
-from pyasn1.type import tag,namedtype,namedval,univ,constraint,char,useful
+from pyasn1.type import tag, namedtype, namedval, univ, constraint, char, useful
from pyasn1_modules import rfc2459, rfc2511, rfc2314
MAX = 64
-class KeyIdentifier(univ.OctetString): pass
-class CMPCertificate(rfc2459.Certificate): pass
+class KeyIdentifier(univ.OctetString):
+ pass
-class OOBCert(CMPCertificate): pass
-class CertAnnContent(CMPCertificate): pass
+class CMPCertificate(rfc2459.Certificate):
+ pass
+
+
+class OOBCert(CMPCertificate):
+ pass
+
+
+class CertAnnContent(CMPCertificate):
+ pass
+
class PKIFreeText(univ.SequenceOf):
"""
@@ -28,6 +37,7 @@ class PKIFreeText(univ.SequenceOf):
componentType = char.UTF8String()
subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
+
class PollRepContent(univ.SequenceOf):
"""
PollRepContent ::= SEQUENCE OF SEQUENCE {
@@ -36,14 +46,17 @@ class PollRepContent(univ.SequenceOf):
reason PKIFreeText OPTIONAL
}
"""
+
class CertReq(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('certReqId', univ.Integer()),
namedtype.NamedType('checkAfter', univ.Integer()),
namedtype.OptionalNamedType('reason', PKIFreeText())
)
+
componentType = CertReq()
+
class PollReqContent(univ.SequenceOf):
"""
PollReqContent ::= SEQUENCE OF SEQUENCE {
@@ -51,12 +64,15 @@ class PollReqContent(univ.SequenceOf):
}
"""
+
class CertReq(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('certReqId', univ.Integer())
)
+
componentType = CertReq()
+
class InfoTypeAndValue(univ.Sequence):
"""
InfoTypeAndValue ::= SEQUENCE {
@@ -68,17 +84,23 @@ class InfoTypeAndValue(univ.Sequence):
namedtype.OptionalNamedType('infoValue', univ.Any())
)
+
class GenRepContent(univ.SequenceOf):
componentType = InfoTypeAndValue()
+
class GenMsgContent(univ.SequenceOf):
componentType = InfoTypeAndValue()
-class PKIConfirmContent(univ.Null): pass
+
+class PKIConfirmContent(univ.Null):
+ pass
+
class CRLAnnContent(univ.SequenceOf):
componentType = rfc2459.CertificateList()
+
class CAKeyUpdAnnContent(univ.Sequence):
"""
CAKeyUpdAnnContent ::= SEQUENCE {
@@ -93,6 +115,7 @@ class CAKeyUpdAnnContent(univ.Sequence):
namedtype.NamedType('newWithNew', CMPCertificate())
)
+
class RevDetails(univ.Sequence):
"""
RevDetails ::= SEQUENCE {
@@ -104,10 +127,12 @@ class RevDetails(univ.Sequence):
namedtype.NamedType('certDetails', rfc2511.CertTemplate()),
namedtype.OptionalNamedType('crlEntryDetails', rfc2459.Extensions())
)
-
+
+
class RevReqContent(univ.SequenceOf):
componentType = RevDetails()
+
class CertOrEncCert(univ.Choice):
"""
CertOrEncCert ::= CHOICE {
@@ -118,14 +143,15 @@ class CertOrEncCert(univ.Choice):
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)
- )
)
+ )
)
+
class CertifiedKeyPair(univ.Sequence):
"""
CertifiedKeyPair ::= SEQUENCE {
@@ -137,19 +163,20 @@ class CertifiedKeyPair(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('certOrEncCert', CertOrEncCert()),
namedtype.OptionalNamedType('privateKey', rfc2511.EncryptedValue().subtype(
- explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)
+ )
+ ),
namedtype.OptionalNamedType('publicationInfo', rfc2511.PKIPublicationInfo().subtype(
- explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)
- )
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)
)
+ )
)
-
+
class POPODecKeyRespContent(univ.SequenceOf):
componentType = univ.Integer()
+
class Challenge(univ.Sequence):
"""
Challenge ::= SEQUENCE {
@@ -164,6 +191,7 @@ class Challenge(univ.Sequence):
namedtype.NamedType('challenge', univ.OctetString())
)
+
class PKIStatus(univ.Integer):
"""
PKIStatus ::= INTEGER {
@@ -185,7 +213,8 @@ class PKIStatus(univ.Integer):
('revocationNotification', 5),
('keyUpdateWarning', 6)
)
-
+
+
class PKIFailureInfo(univ.BitString):
"""
PKIFailureInfo ::= BIT STRING {
@@ -247,6 +276,7 @@ class PKIFailureInfo(univ.BitString):
('duplicateCertReq', 26)
)
+
class PKIStatusInfo(univ.Sequence):
"""
PKIStatusInfo ::= SEQUENCE {
@@ -259,7 +289,8 @@ class PKIStatusInfo(univ.Sequence):
namedtype.NamedType('status', PKIStatus()),
namedtype.OptionalNamedType('statusString', PKIFreeText()),
namedtype.OptionalNamedType('failInfo', PKIFailureInfo())
- )
+ )
+
class ErrorMsgContent(univ.Sequence):
"""
@@ -277,6 +308,7 @@ class ErrorMsgContent(univ.Sequence):
namedtype.OptionalNamedType('errorDetails', PKIFreeText())
)
+
class CertStatus(univ.Sequence):
"""
CertStatus ::= SEQUENCE {
@@ -291,9 +323,11 @@ class CertStatus(univ.Sequence):
namedtype.OptionalNamedType('statusInfo', PKIStatusInfo())
)
+
class CertConfirmContent(univ.SequenceOf):
componentType = CertStatus()
+
class RevAnnContent(univ.Sequence):
"""
RevAnnContent ::= SEQUENCE {
@@ -312,6 +346,7 @@ class RevAnnContent(univ.Sequence):
namedtype.OptionalNamedType('crlDetails', rfc2459.Extensions())
)
+
class RevRepContent(univ.Sequence):
"""
RevRepContent ::= SEQUENCE {
@@ -324,21 +359,22 @@ class RevRepContent(univ.Sequence):
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)
- )
- ),
+ 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)
- )
+ componentType=rfc2459.CertificateList()
+ ).subtype(
+ subtypeSpec=constraint.ValueSizeConstraint(1, MAX),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)
)
+ )
)
+
class KeyRecRepContent(univ.Sequence):
"""
KeyRecRepContent ::= SEQUENCE {
@@ -354,24 +390,25 @@ class KeyRecRepContent(univ.Sequence):
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)
- )
- ),
+ 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)
- )
+ componentType=CertifiedKeyPair()
+ ).subtype(
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2),
+ subtypeSpec=constraint.ValueSizeConstraint(1, MAX)
)
+ )
)
-
+
+
class CertResponse(univ.Sequence):
"""
CertResponse ::= SEQUENCE {
@@ -388,6 +425,7 @@ class CertResponse(univ.Sequence):
namedtype.OptionalNamedType('rspInfo', univ.OctetString())
)
+
class CertRepMessage(univ.Sequence):
"""
CertRepMessage ::= SEQUENCE {
@@ -398,20 +436,22 @@ class CertRepMessage(univ.Sequence):
"""
componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('caPubs', univ.SequenceOf(
- componentType=CMPCertificate()
- ).subtype(
- subtypeSpec=constraint.ValueSizeConstraint(1, MAX),
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,1)
- )
- ),
+ componentType=CMPCertificate()
+ ).subtype(
+ subtypeSpec=constraint.ValueSizeConstraint(1, MAX),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)
+ )
+ ),
namedtype.NamedType('response', univ.SequenceOf(
- componentType=CertResponse())
- )
+ componentType=CertResponse())
+ )
)
+
class POPODecKeyChallContent(univ.SequenceOf):
componentType = Challenge()
+
class OOBCertHash(univ.Sequence):
"""
OOBCertHash ::= SEQUENCE {
@@ -423,16 +463,17 @@ class OOBCertHash(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.OptionalNamedType('hashAlg',
rfc2459.AlgorithmIdentifier().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,0)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)
+ )
+ ),
namedtype.OptionalNamedType('certId', rfc2511.CertId().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,1)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)
+ )
+ ),
namedtype.NamedType('hashVal', univ.BitString())
)
+
# pyasn1 does not naturally handle recursive definitions, thus this hack:
# NestedMessageContent ::= PKIMessages
class NestedMessageContent(univ.SequenceOf):
@@ -441,6 +482,7 @@ class NestedMessageContent(univ.SequenceOf):
"""
componentType = univ.Any()
+
class DHBMParameter(univ.Sequence):
"""
DHBMParameter ::= SEQUENCE {
@@ -455,8 +497,10 @@ class DHBMParameter(univ.Sequence):
namedtype.NamedType('mac', rfc2459.AlgorithmIdentifier())
)
+
id_DHBasedMac = univ.ObjectIdentifier('1.2.840.113533.7.66.30')
+
class PBMParameter(univ.Sequence):
"""
PBMParameter ::= SEQUENCE {
@@ -468,22 +512,28 @@ class PBMParameter(univ.Sequence):
"""
componentType = namedtype.NamedTypes(
namedtype.NamedType('salt', univ.OctetString().subtype(
- subtypeSpec=constraint.ValueSizeConstraint(0, 128)
- )
- ),
+ subtypeSpec=constraint.ValueSizeConstraint(0, 128)
+ )
+ ),
namedtype.NamedType('owf', rfc2459.AlgorithmIdentifier()),
namedtype.NamedType('iterationCount', univ.Integer()),
namedtype.NamedType('mac', rfc2459.AlgorithmIdentifier())
)
+
id_PasswordBasedMac = univ.ObjectIdentifier('1.2.840.113533.7.66.13')
-class PKIProtection(univ.BitString): pass
+
+class PKIProtection(univ.BitString):
+ pass
+
# pyasn1 does not naturally handle recursive definitions, thus this hack:
# NestedMessageContent ::= PKIMessages
-nestedMessageContent = NestedMessageContent().subtype(explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,20))
-
+nestedMessageContent = NestedMessageContent().subtype(
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 20))
+
+
class PKIBody(univ.Choice):
"""
PKIBody ::= CHOICE { -- message-specific body elements
@@ -518,114 +568,114 @@ class PKIBody(univ.Choice):
"""
componentType = namedtype.NamedTypes(
namedtype.NamedType('ir', rfc2511.CertReqMessages().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,0)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)
+ )
+ ),
namedtype.NamedType('ip', CertRepMessage().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,1)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)
+ )
+ ),
namedtype.NamedType('cr', rfc2511.CertReqMessages().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,2)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2)
+ )
+ ),
namedtype.NamedType('cp', CertRepMessage().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,3)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3)
+ )
+ ),
namedtype.NamedType('p10cr', rfc2314.CertificationRequest().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,4)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4)
+ )
+ ),
namedtype.NamedType('popdecc', POPODecKeyChallContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,5)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5)
+ )
+ ),
namedtype.NamedType('popdecr', POPODecKeyRespContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,6)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 6)
+ )
+ ),
namedtype.NamedType('kur', rfc2511.CertReqMessages().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,7)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 7)
+ )
+ ),
namedtype.NamedType('kup', CertRepMessage().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,8)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 8)
+ )
+ ),
namedtype.NamedType('krr', rfc2511.CertReqMessages().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,9)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 9)
+ )
+ ),
namedtype.NamedType('krp', KeyRecRepContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,10)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 10)
+ )
+ ),
namedtype.NamedType('rr', RevReqContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,11)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 11)
+ )
+ ),
namedtype.NamedType('rp', RevRepContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,12)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 12)
+ )
+ ),
namedtype.NamedType('ccr', rfc2511.CertReqMessages().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,13)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 13)
+ )
+ ),
namedtype.NamedType('ccp', CertRepMessage().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,14)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 14)
+ )
+ ),
namedtype.NamedType('ckuann', CAKeyUpdAnnContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,15)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 15)
+ )
+ ),
namedtype.NamedType('cann', CertAnnContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,16)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 16)
+ )
+ ),
namedtype.NamedType('rann', RevAnnContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,17)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 17)
+ )
+ ),
namedtype.NamedType('crlann', CRLAnnContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,18)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 18)
+ )
+ ),
namedtype.NamedType('pkiconf', PKIConfirmContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,19)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 19)
+ )
+ ),
namedtype.NamedType('nested', nestedMessageContent),
-# namedtype.NamedType('nested', NestedMessageContent().subtype(
-# explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,20)
-# )
-# ),
+ # namedtype.NamedType('nested', NestedMessageContent().subtype(
+ # explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,20)
+ # )
+ # ),
namedtype.NamedType('genm', GenMsgContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,21)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 21)
+ )
+ ),
namedtype.NamedType('gen', GenRepContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,22)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 22)
+ )
+ ),
namedtype.NamedType('error', ErrorMsgContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,23)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 23)
+ )
+ ),
namedtype.NamedType('certConf', CertConfirmContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,24)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 24)
+ )
+ ),
namedtype.NamedType('pollReq', PollReqContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,25)
- )
- ),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 25)
+ )
+ ),
namedtype.NamedType('pollRep', PollRepContent().subtype(
- explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,26)
- )
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 26)
)
+ )
)
@@ -650,32 +700,40 @@ class PKIHeader(univ.Sequence):
"""
componentType = namedtype.NamedTypes(
namedtype.NamedType('pvno', univ.Integer(
- namedValues=namedval.NamedValues(
- ('cmp1999', 1),
- ('cmp2000', 2)
- )
+ 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('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('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)
- )
- )
- )
- )
+ univ.SequenceOf(
+ componentType=InfoTypeAndValue().subtype(
+ subtypeSpec=constraint.ValueSizeConstraint(1, MAX),
+ explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)
+ )
+ )
+ )
+ )
+
class ProtectedPart(univ.Sequence):
"""
@@ -687,7 +745,8 @@ class ProtectedPart(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('header', PKIHeader()),
namedtype.NamedType('infoValue', PKIBody())
- )
+ )
+
class PKIMessage(univ.Sequence):
"""
@@ -701,17 +760,19 @@ class PKIMessage(univ.Sequence):
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)
- )
- )
+ 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)
+ )
+ )
)
+
class PKIMessages(univ.SequenceOf):
"""
PKIMessages ::= SEQUENCE SIZE (1..MAX) OF PKIMessage
@@ -719,6 +780,7 @@ class PKIMessages(univ.SequenceOf):
componentType = PKIMessage()
subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX)
+
# pyasn1 does not naturally handle recursive definitions, thus this hack:
# NestedMessageContent ::= PKIMessages
NestedMessageContent.componentType = PKIMessages()