From 7b6a78bfb86a14196573342928bc41a49320b13f Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 16 Mar 2020 17:31:06 -0400 Subject: [PATCH 1/2] don't check public key if there is none --- src/CrossSigningManager.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/CrossSigningManager.js b/src/CrossSigningManager.js index 2184eaf347..f428697e74 100644 --- a/src/CrossSigningManager.js +++ b/src/CrossSigningManager.js @@ -96,6 +96,9 @@ async function getSecretStorageKey({ keys: keyInfos }, ssssItemName) { { keyInfo: info, checkPrivateKey: async (input) => { + if (!info.pubkey) { + return true; + } const key = await inputToKey(input); return MatrixClientPeg.get().checkSecretStoragePrivateKey(key, info.pubkey); }, From f7dddfc1a7c773e2e66f82735b56e4d9f9dfa8d1 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 16 Mar 2020 17:31:26 -0400 Subject: [PATCH 2/2] show encryption upgrade when SSSS needs upgrading --- src/DeviceListener.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/DeviceListener.js b/src/DeviceListener.js index 4e7bc8470d..28f0d49c0e 100644 --- a/src/DeviceListener.js +++ b/src/DeviceListener.js @@ -143,6 +143,15 @@ export default class DeviceListener { } } return; + } else if (await cli.secretStorageKeyNeedsUpgrade()) { + // FIXME: do we a different message? + ToastStore.sharedInstance().addOrReplaceToast({ + key: THIS_DEVICE_TOAST_KEY, + title: _t("Encryption upgrade available"), + icon: "verification_warning", + props: {kind: 'upgrade_encryption'}, + component: sdk.getComponent("toasts.SetupEncryptionToast"), + }); } else { ToastStore.sharedInstance().dismissToast(THIS_DEVICE_TOAST_KEY); }