summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkg/requirements.pip1
-rw-r--r--src/leap/common/keymanager/__init__.py18
-rw-r--r--src/leap/common/keymanager/keys.py4
-rw-r--r--src/leap/common/keymanager/openpgp.py3
-rw-r--r--src/leap/common/tests/test_keymanager.py3
5 files changed, 16 insertions, 13 deletions
diff --git a/pkg/requirements.pip b/pkg/requirements.pip
index 99d8533..e8f8e87 100644
--- a/pkg/requirements.pip
+++ b/pkg/requirements.pip
@@ -5,3 +5,4 @@ protobuf.socketrpc
pyopenssl
python-dateutil
autopep8
+python-gnupg \ No newline at end of file
diff --git a/src/leap/common/keymanager/__init__.py b/src/leap/common/keymanager/__init__.py
index 8db3b3c..01dc0da 100644
--- a/src/leap/common/keymanager/__init__.py
+++ b/src/leap/common/keymanager/__init__.py
@@ -20,14 +20,16 @@
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):
"""
diff --git a/src/leap/common/keymanager/keys.py b/src/leap/common/keymanager/keys.py
index 453e0ed..2e6bfe9 100644
--- a/src/leap/common/keymanager/keys.py
+++ b/src/leap/common/keymanager/keys.py
@@ -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
diff --git a/src/leap/common/keymanager/openpgp.py b/src/leap/common/keymanager/openpgp.py
index 94d55cc..e2ffe76 100644
--- a/src/leap/common/keymanager/openpgp.py
+++ b/src/leap/common/keymanager/openpgp.py
@@ -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(
diff --git a/src/leap/common/tests/test_keymanager.py b/src/leap/common/tests/test_keymanager.py
index 9bf394d..32bd1fd 100644
--- a/src/leap/common/tests/test_keymanager.py
+++ b/src/leap/common/tests/test_keymanager.py
@@ -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