X-Git-Url: http://www.git.cypherpunks.ru/?p=pygost.git;a=blobdiff_plain;f=pygost%2Fasn1schemas%2Fx509.py;h=831f9abc2f248275c22b5e96578886994098fb19;hp=bbeca669c5f5f3412a1ddfa0135c6fb62a1a912a;hb=ccf38ecbf1c166c0817893afd85bcb0976e09789;hpb=ec39453b4f1c8d7b40383fa2af43d8a7cfeb4b22 diff --git a/pygost/asn1schemas/x509.py b/pygost/asn1schemas/x509.py index bbeca66..831f9ab 100644 --- a/pygost/asn1schemas/x509.py +++ b/pygost/asn1schemas/x509.py @@ -112,16 +112,10 @@ class Validity(Sequence): ) -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)), ) @@ -144,6 +138,13 @@ class SubjectKeyIdentifier(KeyIdentifier): pass +class BasicConstraints(Sequence): + schema = ( + ('cA', Boolean(default=False)), + # ('pathLenConstraint', PathLenConstraint(optional=True)), + ) + + class Extension(Sequence): schema = ( ("extnID", ObjectIdentifier()), @@ -178,3 +179,28 @@ class Certificate(Sequence): ("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()), + )