summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2014-10-08 19:28:33 -0500
committerRuben Pollan <meskio@sindominio.net>2014-10-09 10:22:08 -0500
commit13eafd0ad9a34581f37f5c0adde4ab59d13f0b85 (patch)
tree0918cb5bc1d35170ea57685ecd7ee45af4248297 /src
parent613e59c5a34e99e669e727caff00e1516369e3d0 (diff)
Accept ascii keys on put_key
Diffstat (limited to 'src')
-rw-r--r--src/leap/keymanager/__init__.py9
-rw-r--r--src/leap/keymanager/tests/test_keymanager.py11
2 files changed, 17 insertions, 3 deletions
diff --git a/src/leap/keymanager/__init__.py b/src/leap/keymanager/__init__.py
index bd85c2d4..da679acb 100644
--- a/src/leap/keymanager/__init__.py
+++ b/src/leap/keymanager/__init__.py
@@ -515,11 +515,14 @@ class KeyManager(object):
"""
Put C{key} in local storage.
- :param key: The key to be stored.
- :type key: OpenPGPKey
+ :param key: The key to be stored. It can be ascii key or an OpenPGPKey
+ :type key: str or OpenPGPKey
"""
try:
- self._wrapper_map[type(key)].put_key(key)
+ if isinstance(key, basestring):
+ self._wrapper_map[OpenPGPKey].put_ascii_key(key)
+ else:
+ self._wrapper_map[type(key)].put_key(key)
except IndexError as e:
leap_assert(False, "Unsupported key type. Error {0!r}".format(e))
diff --git a/src/leap/keymanager/tests/test_keymanager.py b/src/leap/keymanager/tests/test_keymanager.py
index 7192bfb1..39b729d8 100644
--- a/src/leap/keymanager/tests/test_keymanager.py
+++ b/src/leap/keymanager/tests/test_keymanager.py
@@ -466,6 +466,17 @@ class KeyManagerKeyManagementTestCase(KeyManagerWithSoledadTestCase):
self.assertIsInstance(key, OpenPGPKey)
self.assertEqual(ADDRESS, key.address)
+ def test_put_key_ascii(self):
+ """
+ Test that putting ascii key works
+ """
+ km = self._key_manager(url='http://nickserver.domain')
+
+ km.put_key(PUBLIC_KEY)
+ key = km.get_key(ADDRESS, OpenPGPKey)
+ self.assertIsInstance(key, OpenPGPKey)
+ self.assertEqual(ADDRESS, key.address)
+
class KeyManagerCryptoTestCase(KeyManagerWithSoledadTestCase):