# coding: utf-8
# PyGOST -- Pure Python GOST cryptographic functions library
-# Copyright (C) 2015-2020 Sergey Matveev <stargrave@stargrave.org>
+# Copyright (C) 2015-2021 Sergey Matveev <stargrave@stargrave.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# along with this program. If not, see <http://www.gnu.org/licenses/>.
""":rfc:`5280` related structures (**NOT COMPLETE**)
-They are taken from `PyDERASN <http://pyderasn.cypherpunks.ru/`__ tests.
+They are taken from `PyDERASN <http://www.pyderasn.cypherpunks.ru/`__ tests.
"""
from pyderasn import Any
)
-id_tc26_gost_28147_param_Z = ObjectIdentifier("1.2.643.7.1.2.5.1.1")
-
-
class GostR34102012PublicKeyParameters(Sequence):
schema = (
("publicKeyParamSet", ObjectIdentifier()),
- ("digestParamSet", ObjectIdentifier()),
- ("encryptionParamSet", ObjectIdentifier(
- default=id_tc26_gost_28147_param_Z,
- )),
+ ("digestParamSet", ObjectIdentifier(optional=True)),
)
pass
+class BasicConstraints(Sequence):
+ schema = (
+ ("cA", Boolean(default=False)),
+ # ("pathLenConstraint", PathLenConstraint(optional=True)),
+ )
+
+
class Extension(Sequence):
schema = (
("extnID", ObjectIdentifier()),
("signatureAlgorithm", AlgorithmIdentifier()),
("signatureValue", BitString()),
)
+
+
+class RevokedCertificates(SequenceOf):
+ # schema = RevokedCertificate()
+ schema = OctetString() # dummy
+
+
+class TBSCertList(Sequence):
+ schema = (
+ ("version", Version(optional=True)),
+ ("signature", AlgorithmIdentifier()),
+ ("issuer", Name()),
+ ("thisUpdate", Time()),
+ ("nextUpdate", Time(optional=True)),
+ ("revokedCertificates", RevokedCertificates(optional=True)),
+ ("crlExtensions", Extensions(expl=tag_ctxc(0), optional=True)),
+ )
+
+
+class CertificateList(Sequence):
+ schema = (
+ ("tbsCertList", TBSCertList()),
+ ("signatureAlgorithm", AlgorithmIdentifier()),
+ ("signatureValue", BitString()),
+ )