summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@stuvel.eu>2016-01-22 15:41:40 +0100
committerSybren A. Stüvel <sybren@stuvel.eu>2016-01-22 15:41:40 +0100
commit4bc9733b78cd115a742b9486ab11ccbdcb9ca001 (patch)
tree53df23ee4826dcfa00cc835cd437df6b8acb4d2f /tests
parentf1c55540438fb88dbbc30c9c3bf7c4d82f5d59a2 (diff)
downloadrsa-git-4bc9733b78cd115a742b9486ab11ccbdcb9ca001.tar.gz
Fix #12 Allow pickling of keys.
Pickling is now possible, with the added note that one should never unpickle from an untrusted or unauthenticated source.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_load_save_keys.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/test_load_save_keys.py b/tests/test_load_save_keys.py
index 8fc3b22..5ae1596 100644
--- a/tests/test_load_save_keys.py
+++ b/tests/test_load_save_keys.py
@@ -19,6 +19,7 @@
import base64
import unittest
import os.path
+import pickle
from rsa._compat import b
@@ -152,3 +153,22 @@ class PemTest(unittest.TestCase):
self.assertEqual(15945948582725241569, privkey.p)
self.assertEqual(14617195220284816877, privkey.q)
+
+
+class PickleTest(unittest.TestCase):
+ """Test saving and loading keys by pickling."""
+
+ def test_private_key(self):
+ pk = rsa.key.PrivateKey(3727264081, 65537, 3349121513, 65063, 57287)
+
+ pickled = pickle.dumps(pk)
+ unpickled = pickle.loads(pickled)
+ self.assertEqual(pk, unpickled)
+
+ def test_public_key(self):
+ pk = rsa.key.PublicKey(3727264081, 65537)
+
+ pickled = pickle.dumps(pk)
+ unpickled = pickle.loads(pickled)
+
+ self.assertEqual(pk, unpickled)