]> Cypherpunks.ru repositories - pygost.git/blobdiff - pygost/asn1schemas/cms.py
Draft update PKCS#12 test vectors
[pygost.git] / pygost / asn1schemas / cms.py
index 747b984b5b8e38b08029cb6b691967a05c703928..c57f6f014e88267d332a002ba8b1c088d68859ea 100644 (file)
@@ -307,10 +307,31 @@ class UnprotectedAttributes(SetOf):
     bounds = (1, float("+inf"))
 
 
+class CertificateChoices(Choice):
+    schema = (
+        ("certificate", Certificate()),
+        # ("extendedCertificate", OctetString(impl=tag_ctxp(0))),
+        # ("v1AttrCert", AttributeCertificateV1(impl=tag_ctxc(1))),  # V1 is osbolete
+        # ("v2AttrCert", AttributeCertificateV2(impl=tag_ctxc(2))),
+        # ("other", OtherCertificateFormat(impl=tag_ctxc(3))),
+    )
+
+
+class CertificateSet(SetOf):
+    schema = CertificateChoices()
+
+
+class OriginatorInfo(Sequence):
+    schema = (
+        ("certs", CertificateSet(impl=tag_ctxc(0), optional=True)),
+        # ("crls", RevocationInfoChoices(impl=tag_ctxc(1), optional=True)),
+    )
+
+
 class EnvelopedData(Sequence):
     schema = (
         ("version", CMSVersion()),
-        ("originatorInfo", OriginatorInfo(impl=tag_ctxc(0), optional=True)),
+        ("originatorInfo", OriginatorInfo(impl=tag_ctxc(0), optional=True)),
         ("recipientInfos", RecipientInfos()),
         ("encryptedContentInfo", EncryptedContentInfo()),
         ("unprotectedAttrs", UnprotectedAttributes(impl=tag_ctxc(1), optional=True)),