diff options
| -rw-r--r-- | keymanager/changes/feature-put_key_ascii | 1 | ||||
| -rw-r--r-- | keymanager/src/leap/keymanager/__init__.py | 9 | ||||
| -rw-r--r-- | keymanager/src/leap/keymanager/tests/test_keymanager.py | 11 | 
3 files changed, 18 insertions, 3 deletions
| diff --git a/keymanager/changes/feature-put_key_ascii b/keymanager/changes/feature-put_key_ascii new file mode 100644 index 0000000..78f2907 --- /dev/null +++ b/keymanager/changes/feature-put_key_ascii @@ -0,0 +1 @@ +- KeyManager.put_key now accepts also ascii keys diff --git a/keymanager/src/leap/keymanager/__init__.py b/keymanager/src/leap/keymanager/__init__.py index bd85c2d..da679ac 100644 --- a/keymanager/src/leap/keymanager/__init__.py +++ b/keymanager/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/keymanager/src/leap/keymanager/tests/test_keymanager.py b/keymanager/src/leap/keymanager/tests/test_keymanager.py index 7192bfb..39b729d 100644 --- a/keymanager/src/leap/keymanager/tests/test_keymanager.py +++ b/keymanager/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): | 
