From f0966dd627ec37789bc885bc951df988b9e46d61 Mon Sep 17 00:00:00 2001 From: NavaL Date: Mon, 28 Nov 2016 17:13:54 +0100 Subject: [#850] keys will now be renewed two months before expiry date --- service/pixelated/bitmask_libraries/keymanager.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'service/pixelated') diff --git a/service/pixelated/bitmask_libraries/keymanager.py b/service/pixelated/bitmask_libraries/keymanager.py index 464604db..cba9c6bd 100644 --- a/service/pixelated/bitmask_libraries/keymanager.py +++ b/service/pixelated/bitmask_libraries/keymanager.py @@ -13,6 +13,7 @@ # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see . +import datetime from twisted.internet import defer from twisted.logger import Logger @@ -27,7 +28,12 @@ class UploadKeyError(Exception): pass +TWO_MONTHS = 60 +DEFAULT_EXTENSION_THRESHOLD = TWO_MONTHS + + class Keymanager(object): + def __init__(self, provider, soledad, email_address, token, uuid): nicknym_url = provider._discover_nicknym_server() self._email = email_address @@ -43,7 +49,7 @@ class Keymanager(object): current_key = yield self._key_exists(self._email) if not current_key: yield self._generate_key_and_send_to_leap() - elif current_key.has_expired(): + elif self.should_renew(current_key): yield self._regenerate_key() yield self._send_key_to_leap() @@ -69,6 +75,11 @@ class Keymanager(object): except KeyNotFound: defer.returnValue(None) + def should_renew(self, key): + # feature envy -- should be in keymanager + till_expiry_date = (key.expiry_date - datetime.datetime.now()) + return till_expiry_date.days < DEFAULT_EXTENSION_THRESHOLD + @defer.inlineCallbacks def get_key(self, email, private=False, fetch_remote=True): key = yield self.keymanager.get_key(email, private=private, fetch_remote=fetch_remote) -- cgit v1.2.3