]> Cypherpunks.ru repositories - pygost.git/blobdiff - pygost/asn1schemas/pfx.py
Draft update PKCS#12 test vectors
[pygost.git] / pygost / asn1schemas / pfx.py
index ecbf7b72d490b58a9da8b5f2399b95f4d23bb932..8b9a422018b015ec4238f6c317410f90bbb3492e 100644 (file)
@@ -30,12 +30,20 @@ from pyderasn import tag_ctxp
 from pygost.asn1schemas.cms import CMSVersion
 from pygost.asn1schemas.cms import ContentType
 from pygost.asn1schemas.cms import Gost2814789Parameters
+from pygost.asn1schemas.cms import Gost341215EncryptionParameters
 from pygost.asn1schemas.oids import id_data
 from pygost.asn1schemas.oids import id_encryptedData
 from pygost.asn1schemas.oids import id_Gost28147_89
+from pygost.asn1schemas.oids import id_gostr3412_2015_kuznyechik_ctracpkm
+from pygost.asn1schemas.oids import id_gostr3412_2015_kuznyechik_ctracpkm_omac
+from pygost.asn1schemas.oids import id_gostr3412_2015_magma_ctracpkm
+from pygost.asn1schemas.oids import id_gostr3412_2015_magma_ctracpkm_omac
 from pygost.asn1schemas.oids import id_pbes2
 from pygost.asn1schemas.oids import id_pbkdf2
+from pygost.asn1schemas.oids import id_pkcs9_certTypes_x509Certificate
+from pygost.asn1schemas.prvkey import PrivateKeyInfo
 from pygost.asn1schemas.x509 import AlgorithmIdentifier
+from pygost.asn1schemas.x509 import Certificate
 
 
 class PBKDF2Salt(Choice):
@@ -84,7 +92,13 @@ class PBES2KDFs(AlgorithmIdentifier):
 class PBES2Encs(AlgorithmIdentifier):
     schema = (
         ("algorithm", ObjectIdentifier(defines=(
-            (("parameters",), {id_Gost28147_89: Gost2814789Parameters()}),
+            (("parameters",), {
+                id_Gost28147_89: Gost2814789Parameters(),
+                id_gostr3412_2015_magma_ctracpkm: Gost341215EncryptionParameters(),
+                id_gostr3412_2015_magma_ctracpkm_omac: Gost341215EncryptionParameters(),
+                id_gostr3412_2015_kuznyechik_ctracpkm: Gost341215EncryptionParameters(),
+                id_gostr3412_2015_kuznyechik_ctracpkm_omac: Gost341215EncryptionParameters(),
+            }),
         ))),
         ("parameters", Any(optional=True)),
     )
@@ -212,3 +226,25 @@ class EncryptedPrivateKeyInfo(Sequence):
 
 class PKCS8ShroudedKeyBag(EncryptedPrivateKeyInfo):
     pass
+
+
+OctetStringX509Certificate = Certificate(expl=OctetString.tag_default)
+
+
+class CertTypes(Any):
+    pass
+
+
+class CertBag(Sequence):
+    schema = (
+        ("certId", ObjectIdentifier(defines=(
+            (("certValue",), {
+                id_pkcs9_certTypes_x509Certificate: OctetStringX509Certificate(),
+            }),
+        ))),
+        ("certValue", CertTypes(expl=tag_ctxc(0))),
+    )
+
+
+class KeyBag(PrivateKeyInfo):
+    pass