summaryrefslogtreecommitdiff
path: root/src/leap/common/keymanager
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/common/keymanager')
-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
3 files changed, 15 insertions, 10 deletions
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(