Merge branch 'release-0.3.2'
authorIvan Alejandro <ivanalejandro0@gmail.com>
Fri, 6 Sep 2013 18:32:48 +0000 (15:32 -0300)
committerIvan Alejandro <ivanalejandro0@gmail.com>
Fri, 6 Sep 2013 18:32:48 +0000 (15:32 -0300)
CHANGELOG
README.rst
src/leap/keymanager/__init__.py
src/leap/keymanager/keys.py
src/leap/keymanager/openpgp.py

index d2e45aa..9cd53b3 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -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.
index f542214..8aedfb4 100644 (file)
@@ -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
index 05cbcca..2f39ad9 100644 (file)
@@ -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):
index 1c33745..b8e88d4 100644 (file)
@@ -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.
index aa04ed0..7946db8 100644 (file)
@@ -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.')