summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/keymanager/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/keymanager/__init__.py')
-rw-r--r--src/leap/bitmask/keymanager/__init__.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/leap/bitmask/keymanager/__init__.py b/src/leap/bitmask/keymanager/__init__.py
index c1095877..dc6b88d3 100644
--- a/src/leap/bitmask/keymanager/__init__.py
+++ b/src/leap/bitmask/keymanager/__init__.py
@@ -254,6 +254,13 @@ class KeyManager(object):
self.log.debug('Getting key for %s' % (address,))
emit_async(catalog.KEYMANAGER_LOOKING_FOR_KEY, address)
+ @defer.inlineCallbacks
+ def maybe_extend_expiration(key):
+ if key.needs_renewal():
+ key = yield self._openpgp.expire(key, expiration_time='1y')
+ yield self.send_key()
+ defer.returnValue(key)
+
def key_found(key):
emit_async(catalog.KEYMANAGER_KEY_FOUND, address)
return key
@@ -288,6 +295,8 @@ class KeyManager(object):
# return key if it exists in local database
d = self._openpgp.get_key(address, private=private)
+ if private:
+ d.addCallback(maybe_extend_expiration)
d.addCallbacks(ensure_valid, key_not_found)
return d