# coding: utf-8
# PyDERASN -- Python ASN.1 DER codec with abstract structures
-# Copyright (C) 2017-2018 Sergey Matveev <stargrave@stargrave.org>
+# Copyright (C) 2017-2020 Sergey Matveev <stargrave@stargrave.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# published by the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
+from copy import copy
from datetime import datetime
from unittest import TestCase
+from six.moves.cPickle import dumps as pickle_dumps
+from six.moves.cPickle import HIGHEST_PROTOCOL as pickle_proto
+from six.moves.cPickle import loads as pickle_loads
+
from pyderasn import Any
from pyderasn import BitString
from pyderasn import Boolean
"ba3ca12568fdc6c7b4511cd40a7f659980402df2b998bb9a4a8cbeb34c0f0a78c",
"f8d91ede14a5ed76bf116fe360aafa8821490435",
)))
- crt, tail = Certificate().decode(raw)
- self.assertSequenceEqual(tail, b"")
+ crt = Certificate().decod(raw)
tbs = crt["tbsCertificate"]
self.assertEqual(tbs["version"], 0)
self.assertFalse(tbs["version"].decoded)
self.assertSequenceEqual(crt.encode(), raw)
pprint(crt)
repr(crt)
+ pickle_loads(pickle_dumps(crt, pickle_proto))
tbs = TBSCertificate()
tbs["serialNumber"] = CertificateSerialNumber(10143011886257155224)
tbs["validity"] = validity
spki = SubjectPublicKeyInfo()
- spki_algo_id = sign_algo_id.copy()
+ spki_algo_id = copy(sign_algo_id)
spki_algo_id["algorithm"] = ObjectIdentifier("1.2.840.113549.1.1.1")
spki["algorithm"] = spki_algo_id
spki["subjectPublicKey"] = BitString(hexdec("".join((
"07ba44cce54a2d723f9847f626dc054605076321ab469b9c78d5545b3d0c1ec86",
"48cb55023826fdbb8221c439607a8bb",
)))
- crt, tail = Certificate().decode(raw)
- self.assertSequenceEqual(tail, b"")
+ crt = Certificate().decod(raw)
self.assertSequenceEqual(crt.encode(), raw)
pprint(crt)
repr(crt)
+ pickle_loads(pickle_dumps(crt, pickle_proto))