X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=blobdiff_plain;f=tests%2Ftest_crl.py;h=317355213365e389c5d17f5bc3a31857df8e3dd2;hp=7368d7fc707550bfe57643c87ae39ba2cf88602d;hb=011b627453f5bfe82bdd160edbb249a73f21082a;hpb=e1249a0c754920c57e6d7682458f50fd65b70026 diff --git a/tests/test_crl.py b/tests/test_crl.py index 7368d7f..3173552 100644 --- a/tests/test_crl.py +++ b/tests/test_crl.py @@ -14,10 +14,16 @@ # You should have received a copy of the GNU Lesser General Public # License along with this program. If not, see # . -"""CRL related schemes, just to test the performance with them +"""CRL related schemas, just to test the performance with them """ +from os.path import exists +from time import time +from unittest import skipIf +from unittest import TestCase + from pyderasn import BitString +from pyderasn import encode_cer from pyderasn import Sequence from pyderasn import SequenceOf from pyderasn import tag_ctxc @@ -60,3 +66,24 @@ class CertificateList(Sequence): ("signatureAlgorithm", AlgorithmIdentifier()), ("signatureValue", BitString()), ) + +@skipIf(not exists("revoke.crl"), "CACert's revoke.crl not found") +class TestCACert(TestCase): + def test_cer(self): + with open("revoke.crl", "rb") as fd: + raw = fd.read() + print("DER read") + start = time() + crl1 = CertificateList().decod(raw) + print("DER decoded", time() - start) + start = time() + cer_raw = encode_cer(crl1) + print("CER encoded", time() - start) + start = time() + crl2 = CertificateList().decod(cer_raw, ctx={"bered": True}) + print("CER decoded", time() - start) + self.assertEqual(crl2, crl1) + start = time() + der_raw = crl2.encode() + print("DER encoded", time() - start) + self.assertSequenceEqual(der_raw, raw)