summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/keymanager
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/keymanager')
-rw-r--r--src/leap/bitmask/keymanager/__init__.py14
-rw-r--r--src/leap/bitmask/keymanager/keys.py5
-rw-r--r--src/leap/bitmask/keymanager/openpgp.py42
3 files changed, 4 insertions, 57 deletions
diff --git a/src/leap/bitmask/keymanager/__init__.py b/src/leap/bitmask/keymanager/__init__.py
index 2fa80c7c..c1095877 100644
--- a/src/leap/bitmask/keymanager/__init__.py
+++ b/src/leap/bitmask/keymanager/__init__.py
@@ -361,20 +361,6 @@ class KeyManager(object):
d.addCallback(signal_finished)
return d
- @defer.inlineCallbacks
- def regenerate_key(self):
- """
- Regenerate a key bound to the user's address.
-
- :return: A Deferred which fires with the generated EncryptionKey.
- :rtype: Deferred
- """
-
- self.log.info('Regenerating key for %s.' % self._address)
-
- new_key = yield self._openpgp.regenerate_key(self._address)
- defer.returnValue(new_key)
-
#
# Setters/getters
#
diff --git a/src/leap/bitmask/keymanager/keys.py b/src/leap/bitmask/keymanager/keys.py
index 6c0c64ff..0f68c06b 100644
--- a/src/leap/bitmask/keymanager/keys.py
+++ b/src/leap/bitmask/keymanager/keys.py
@@ -191,7 +191,7 @@ class OpenPGPKey(object):
return False
- def merge(self, newkey, key_renewal=False):
+ def merge(self, newkey):
if newkey.fingerprint != self.fingerprint:
self.log.critical(
"Can't put a key whith the same key_id and different "
@@ -223,8 +223,7 @@ class OpenPGPKey(object):
if newkey.last_audited_at > self.last_audited_at:
self.validation = newkey.last_audited_at
self.encr_used = newkey.encr_used or self.encr_used
- if not key_renewal:
- self.sign_used = newkey.sign_used or self.sign_used
+ self.sign_used = newkey.sign_used or self.sign_used
self.refreshed_at = datetime.now()
def get_json(self):
diff --git a/src/leap/bitmask/keymanager/openpgp.py b/src/leap/bitmask/keymanager/openpgp.py
index aea82156..ef77e30c 100644
--- a/src/leap/bitmask/keymanager/openpgp.py
+++ b/src/leap/bitmask/keymanager/openpgp.py
@@ -161,44 +161,6 @@ class OpenPGPScheme(object):
#
# Keys management
#
- @defer.inlineCallbacks
- def regenerate_key(self, address):
- """
- Deactivate Current keypair,
- Generate a new OpenPGP keypair bound to C{address},
- and sign the new key with the old key.
-
- :param address: The address bound to the key.
- :type address: str
-
- :return: A Deferred which fires with the new key bound to address.
- :rtype: Deferred
- """
- leap_assert(is_address(address), 'Not an user address: %s' % address)
- current_sec_key = yield self.get_key(address, private=True)
- current_pub_key = yield self.get_key(address, private=False)
- with TempGPGWrapper([current_sec_key], self._gpgbinary) as gpg:
- if current_sec_key.is_expired():
- temporary_extension_period = '1' # extend for 1 extra day
- gpg.expire(current_sec_key.fingerprint,
- expiration_time=temporary_extension_period)
- yield self.unactivate_key(address) # only one priv key allowed
- yield self.delete_key(current_pub_key)
- new_key = yield self.gen_key(address)
- gpg.import_keys(new_key.key_data)
- key_signing = yield from_thread(gpg.sign_key, new_key.fingerprint)
- if key_signing.status == 'ok':
- fetched_keys = gpg.list_keys(secret=False)
- fetched_key = filter(lambda k: k['fingerprint'] ==
- new_key.fingerprint, fetched_keys)[0]
- key_data = gpg.export_keys(new_key.fingerprint, secret=False)
- renewed_key = self._build_key_from_gpg(
- fetched_key,
- key_data,
- new_key.address)
- yield self.put_key(renewed_key)
- defer.returnValue(new_key)
-
def gen_key(self, address):
"""
Generate an OpenPGP keypair bound to C{address}.
@@ -411,7 +373,7 @@ class OpenPGPScheme(object):
d.addCallback(put_key, openpgp_privkey)
return d
- def put_key(self, key, key_renewal=False):
+ def put_key(self, key):
"""
Put C{key} in local storage.
@@ -431,7 +393,7 @@ class OpenPGPScheme(object):
active_content = activedoc.content
oldkey = build_key_from_dict(keydoc.content, active_content)
- key.merge(oldkey, key_renewal)
+ key.merge(oldkey)
keydoc.set_json(key.get_json())
d = self._soledad.put_doc(keydoc)
d.addCallback(put_active, activedoc)