diff options
-rw-r--r-- | CHANGELOG | 6 | ||||
-rw-r--r-- | README.rst | 4 | ||||
-rw-r--r-- | src/leap/keymanager/__init__.py | 15 | ||||
-rw-r--r-- | src/leap/keymanager/keys.py | 2 | ||||
-rw-r--r-- | src/leap/keymanager/openpgp.py | 4 |
5 files changed, 23 insertions, 8 deletions
@@ -1,3 +1,9 @@ +0.3.2 Sep 6: + o Do not raise exception when a GET request doesn't return 2XX + code. Nickserver uses error codes for more verbosity in the + result. + o Accept unicode ascii keys along with str. + 0.3.1 Aug 23: o Signal different key related events, like key generation, key upload. @@ -1,6 +1,8 @@ LEAP's Key Manager ================== +.. image:: https://pypip.in/v/leap.keymanager/badge.png + :target: https://crate.io/packages/leap.keymanager -The Key Manager is a Nicknym agent for LEAP client: +The Key Manager is a Nicknym agent for the LEAP project: https://leap.se/pt/docs/design/nicknym diff --git a/src/leap/keymanager/__init__.py b/src/leap/keymanager/__init__.py index 05cbccaa..2f39ad9e 100644 --- a/src/leap/keymanager/__init__.py +++ b/src/leap/keymanager/__init__.py @@ -127,11 +127,16 @@ class KeyManager(object): self._ca_cert_path is not None, 'We need the CA certificate path!') res = self._fetcher.get(uri, data=data, verify=self._ca_cert_path) - # assert that the response is valid - res.raise_for_status() - leap_assert( - res.headers['content-type'].startswith('application/json'), - 'Content-type is not JSON.') + # Nickserver now returns 404 for key not found and 500 for + # other cases (like key too small), so we are skipping this + # check for the time being + # res.raise_for_status() + + # Responses are now text/plain, although it's json anyway, but + # this will fail when it shouldn't + # leap_assert( + # res.headers['content-type'].startswith('application/json'), + # 'Content-type is not JSON.') return res def _put(self, uri, data=None): diff --git a/src/leap/keymanager/keys.py b/src/leap/keymanager/keys.py index 1c337451..b8e88d46 100644 --- a/src/leap/keymanager/keys.py +++ b/src/leap/keymanager/keys.py @@ -219,6 +219,8 @@ class EncryptionScheme(object): """ Initialize the database indexes. """ + leap_assert(self._soledad is not None, + "Cannot init indexes with null soledad") # Ask the database for currently existing indexes. db_indexes = dict(self._soledad.list_indexes()) # Loop through the indexes we expect to find. diff --git a/src/leap/keymanager/openpgp.py b/src/leap/keymanager/openpgp.py index aa04ed09..7946db85 100644 --- a/src/leap/keymanager/openpgp.py +++ b/src/leap/keymanager/openpgp.py @@ -301,9 +301,9 @@ class OpenPGPScheme(EncryptionScheme): Put key contained in ascii-armored C{key_data} in local storage. :param key_data: The key data to be stored. - :type key_data: str + :type key_data: str or unicode """ - leap_assert_type(key_data, str) + leap_assert_type(key_data, (str, unicode)) # TODO: add more checks for correct key data. leap_assert(key_data is not None, 'Data does not represent a key.') |