summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/feature_5120_update-keymanager-to-webapp-v21
-rw-r--r--src/leap/bitmask/services/soledad/soledadbootstrapper.py18
2 files changed, 13 insertions, 6 deletions
diff --git a/changes/feature_5120_update-keymanager-to-webapp-v2 b/changes/feature_5120_update-keymanager-to-webapp-v2
new file mode 100644
index 00000000..71aa3d5e
--- /dev/null
+++ b/changes/feature_5120_update-keymanager-to-webapp-v2
@@ -0,0 +1 @@
+- Update key manager auth to interact with webapp v2 (#5120).
diff --git a/src/leap/bitmask/services/soledad/soledadbootstrapper.py b/src/leap/bitmask/services/soledad/soledadbootstrapper.py
index b61d0d43..797508a7 100644
--- a/src/leap/bitmask/services/soledad/soledadbootstrapper.py
+++ b/src/leap/bitmask/services/soledad/soledadbootstrapper.py
@@ -287,13 +287,13 @@ class SoledadBootstrapper(AbstractBootstrapper):
"Null soledad, error while initializing")
if flags.OFFLINE is True:
- self._init_keymanager(self._address)
+ self._init_keymanager(self._address, token)
self.local_only_ready.emit({self.PASSED_KEY: True})
else:
try:
address = make_address(
self._user, self._provider_config.get_domain())
- self._init_keymanager(address)
+ self._init_keymanager(address, token)
self._keymanager.get_key(
address, openpgp.OpenPGPKey,
private=True, fetch_remote=False)
@@ -502,12 +502,14 @@ class SoledadBootstrapper(AbstractBootstrapper):
leap_check(gpgbin is not None, "Could not find gpg binary")
return gpgbin
- def _init_keymanager(self, address):
+ def _init_keymanager(self, address, token):
"""
Initialize the keymanager.
:param address: the address to initialize the keymanager with.
:type address: str
+ :param token: the auth token for accessing webapp.
+ :type token: str
"""
srp_auth = self.srpauth
logger.debug('initializing keymanager...')
@@ -515,7 +517,6 @@ class SoledadBootstrapper(AbstractBootstrapper):
if flags.OFFLINE is True:
args = (address, "https://localhost", self._soledad)
kwargs = {
- "session_id": "",
"ca_cert_path": "",
"api_uri": "",
"api_version": "",
@@ -530,7 +531,7 @@ class SoledadBootstrapper(AbstractBootstrapper):
self._soledad
)
kwargs = {
- "session_id": srp_auth.get_session_id(),
+ "token": token,
"ca_cert_path": self._provider_config.get_ca_cert_path(),
"api_uri": self._provider_config.get_api_uri(),
"api_version": self._provider_config.get_api_version(),
@@ -539,15 +540,20 @@ class SoledadBootstrapper(AbstractBootstrapper):
}
try:
self._keymanager = KeyManager(*args, **kwargs)
+ except KeyNotFound:
+ logger.debug('key for %s not found.' % address)
except Exception as exc:
logger.exception(exc)
raise
if flags.OFFLINE is False:
# make sure key is in server
- logger.debug('sending key to server...')
+ logger.debug('Trying to send key to server...')
try:
self._keymanager.send_key(openpgp.OpenPGPKey)
+ except KeyNotFound:
+ logger.debug('No key found for %s, will generate soon.'
+ % address)
except Exception as exc:
logger.error("Error sending key to server.")
logger.exception(exc)