Various fixes
authorTomas Touceda <chiiph@leap.se>
Thu, 2 May 2013 18:02:33 +0000 (15:02 -0300)
committerdrebs <drebs@leap.se>
Fri, 3 May 2013 00:18:20 +0000 (21:18 -0300)
pkg/requirements.pip
src/leap/common/keymanager/__init__.py
src/leap/common/keymanager/keys.py
src/leap/common/keymanager/openpgp.py
src/leap/common/tests/test_keymanager.py

index 99d8533..e8f8e87 100644 (file)
@@ -5,3 +5,4 @@ protobuf.socketrpc
 pyopenssl
 python-dateutil
 autopep8
+python-gnupg
\ No newline at end of file
index 8db3b3c..01dc0da 100644 (file)
 Key Manager is a Nicknym agent for LEAP client.
 """
 
-import httplib
 import requests
 
+try:
+    import simplejson as json
+except ImportError:
+    import json  # noqa
 
 from leap.common.check import leap_assert
 from leap.common.keymanager.errors import (
     KeyNotFound,
-    KeyAlreadyExists,
 )
 from leap.common.keymanager.keys import (
     build_key_from_dict,
@@ -108,12 +110,12 @@ class KeyManager(object):
         response.
         """
         response = requests.get(self._nickserver_url+path)
-        leap_assert(r.status_code == 200, 'Invalid response.')
+        leap_assert(response.status_code == 200, 'Invalid response.')
         leap_assert(
             response.headers['content-type'].startswith('application/json')
                 is True,
             'Content-type is not JSON.')
-        return r.json()
+        return response.json()
 
     #
     # key management
@@ -132,8 +134,6 @@ class KeyManager(object):
         will be saved in the server in a way it is publicly retrievable
         through the hash string.
 
-        @param address: The address bound to the key.
-        @type address: str
         @param ktype: The type of the key.
         @type ktype: KeyType
 
@@ -154,10 +154,10 @@ class KeyManager(object):
         if send_private:
             privkey = json.loads(
                 self.get_key(self._address, ktype, private=True).get_json())
-            privkey.key_data = encrypt_sym(data, passphrase)
+            privkey.key_data = encrypt_sym(data, password)
             data['keys'].append(privkey)
         requests.put(
-            self._nickserver_url + '/key/' + address,
+            self._nickserver_url + '/key/' + self._address,
             data=data,
             auth=(self._address, None))  # TODO: replace for token-based auth.
 
@@ -198,7 +198,7 @@ class KeyManager(object):
                 'Got more than one key of type %s for %s.' %
                 (str(ktype), address))
             self._wrapper_map[ktype].put_key(keys[0])
-            return key
+            return self._wrapper_map[ktype].get_key(address, private=private)
 
     def fetch_keys_from_server(self, address):
         """
index 453e0ed..2e6bfe9 100644 (file)
@@ -194,6 +194,7 @@ class EncryptionScheme(object):
         @rtype: EncryptionKey
         @raise KeyNotFound: If the key was not found on local storage.
         """
+        pass
 
     @abstractmethod
     def put_key(self, key):
@@ -203,6 +204,7 @@ class EncryptionScheme(object):
         @param key: The key to be stored.
         @type key: EncryptionKey
         """
+        pass
 
     @abstractmethod
     def gen_key(self, address):
@@ -215,6 +217,7 @@ class EncryptionScheme(object):
         @return: The key bound to C{address}.
         @rtype: EncryptionKey
         """
+        pass
 
     @abstractmethod
     def delete_key(self, key):
@@ -224,3 +227,4 @@ class EncryptionScheme(object):
         @param key: The key to be removed.
         @type key: EncryptionKey
         """
+        pass
index 94d55cc..e2ffe76 100644 (file)
@@ -29,6 +29,7 @@ from leap.common.check import leap_assert
 from leap.common.keymanager.errors import (
     KeyNotFound,
     KeyAlreadyExists,
+    KeyAttributesDiffer
 )
 from leap.common.keymanager.keys import (
     EncryptionKey,
@@ -450,7 +451,7 @@ class OpenPGPScheme(EncryptionScheme):
         leap_assert(key.__class__ is OpenPGPKey, 'Wrong key type.')
         stored_key = self.get_key(key.address, private=key.private)
         if stored_key is None:
-            raise KeyDoesNotExist(key)
+            raise KeyNotFound(key)
         if stored_key.__dict__ != key.__dict__:
             raise KeyAttributesDiffer(key)
         doc = self._soledad.get_doc(
index 9bf394d..32bd1fd 100644 (file)
@@ -21,9 +21,6 @@ Tests for the Key Manager.
 """
 
 
-import unittest
-
-
 from leap.common.testing.basetest import BaseLeapTest
 from leap.soledad import Soledad
 from leap.soledad.crypto import SoledadCrypto