Commit graph

56 commits

Author SHA1 Message Date
J. Ryan Stinnett
f634c3a71e Add secret storage cache callback to avoid prompts
This supplies a cache callback to the JS SDK so that we can be notified if a new
storage key is created e.g. by resetting secret storage. This allows it to be
supplied automatically in case it's needed in the same user operation, as it is
when resetting both secret storage and cross-signing together.
2020-08-28 12:10:17 +01:00
J. Ryan Stinnett
3a98b4b4e9 Rename reset secret storage prop
The bare word `force` has bothered me, so this adds a tiny amount more meaning.
2020-08-27 13:50:50 +01:00
J. Ryan Stinnett
4a807f9385 Migrate to new, separate APIs for cross-signing and secret storage
This migrates to the new JS SDK APIs, which now use separate paths for
cross-signing and secret storage setup. There should be no functional change
here.

Part of https://github.com/vector-im/element-web/issues/13895
2020-08-27 13:41:03 +01:00
J. Ryan Stinnett
e8e691b746 Avoid adding setup toast in the middle of setup
This improves the experience of going through secret storage setup / reset flows
by avoiding intermittent toasts that appear and disappear in the middle of the
operation.
2020-08-19 16:23:27 +01:00
J. Ryan Stinnett
1932505d3b Enforce Secure Backup completion when requested by HS
This removes all buttons to escape the Secure Backup setup flow when the
matching `.well-known` setting is set by homeserver.

Part of https://github.com/vector-im/element-web/issues/14954
2020-08-19 16:23:27 +01:00
J. Ryan Stinnett
9e40e079ff Use an explicit list of keys to share 2020-08-07 15:54:05 +01:00
J. Ryan Stinnett
060f2cf54f Enable sharing of master cross-signing key
We've realised it's beneficial to support sharing the master cross-singing key
so that new devices can fully manage cross-signing on your account.

Part of https://github.com/vector-im/element-web/issues/13896
2020-08-06 15:17:39 +01:00
David Baker
ac771f6a60 New copy on passphrase cancel dialog 2020-07-06 15:26:40 +01:00
David Baker
497ab0f212 Hopefully ake cancel dialog a bit less weird
There's no design on how to fix this so I've switched the buttons
and made the primary not a danger button. We could also try some
different wording, eg. 'abort' rather than 'cancel' because with
'ancel' it's not clear if you're cancelling whatever you were trying
to do or the dialog asking you if you want to cancel...

Ideal might be to make the cancel button red but that means making
it a separate button or adding support for doing so to DialogButtons,
so not going to do that unless we're sure that's what we want.

Fixes https://github.com/vector-im/riot-web/issues/14140
2020-06-25 14:52:59 +01:00
David Baker
5b27a570a8
Merge pull request #4790 from matrix-org/revert-4686-dbkr/recovery_keys_over_passphrases
Revert "Use recovery keys over passphrases"
2020-06-18 14:51:22 +01:00
David Baker
793c6c549e Unused import 2020-06-18 10:45:15 +01:00
David Baker
54e235b0b9 Remove labs option to cache 'passphrase'
(which actually meant SSSS secrets)

Fixes https://github.com/vector-im/riot-web/issues/1392
2020-06-18 10:42:33 +01:00
David Baker
e0a34d9dea
Revert "Use recovery keys over passphrases" 2020-06-18 09:35:11 +01:00
David Baker
e06ba2003b Prompt for recovery key on login rather than passphrase
Only show passphrase options at all if the user has a passphrase on
their SSSS key.
2020-06-02 16:32:15 +01:00
Michael Telatynski
f65c31383d Copy tweaks with Nad
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-16 12:52:35 +01:00
J. Ryan Stinnett
e1a496f231 Pass along key backup for bootstrap
If we ask for the key backup key early in creating secret storage to ensure we
trust the backup, then we stash it to ensure it's available to bootstrap as well
without prompting again.

Fixes https://github.com/vector-im/riot-web/issues/12958
2020-04-09 17:32:57 +01:00
Hubert Chathi
6596b7223a Merge branch 'develop' into uhoreg/check_sssss_passphrase 2020-03-31 10:39:56 -04:00
Hubert Chathi
bbb9a67ced use new method for checking key 2020-03-30 17:28:01 -04:00
Zoe
a02731f632 Merge branch 'develop' into foldleft/reset-refactor 2020-03-27 10:50:05 +00:00
Zoe
f891f3e9fa lint 2020-03-25 16:08:26 +00:00
Zoe
4d63c11f26 Respond to backup key sharing requests 2020-03-25 15:16:07 +00:00
Zoe
9dd81216fb rename secret storage force-reset variable to avoid confusion 2020-03-25 14:22:33 +00:00
J. Ryan Stinnett
c53b07a35a Add logging when secrets are missing from cache 2020-03-24 15:49:51 +00:00
David Baker
b05e704524 Use staic dialog 2020-03-23 19:04:59 +00:00
David Baker
c8691c73ff Allow key backup restore to get the key backup passphrase
And pass this in as the new callback to bootstrap to get the old
key backup passphrase.
2020-03-19 20:42:16 +00:00
Hubert Chathi
7b6a78bfb8 don't check public key if there is none 2020-03-16 17:31:06 -04:00
J. Ryan Stinnett
47b1552ccc Fix secret sharing names to match spec
When sharing keys, we should use `m.cross_signing` prefix.

Part of https://github.com/vector-im/riot-web/issues/12661
2020-03-09 13:36:02 +00:00
Zoe
26177a19d5 access cross-signing callbacks via method 2020-03-05 10:49:06 +00:00
Zoe
4396d85d1f Share secrets with another device on request 2020-03-04 14:58:42 +00:00
Zoe
d47d13256f
Merge pull request #4041 from matrix-org/foldleft/12221-reset-cross-signing
Button to reset cross-signing and SSSS keys
2020-02-10 17:14:05 +00:00
Zoe
a260d7a147 manual lint 2020-02-07 15:53:43 +00:00
Zoe
b08c5d8410 lint 2020-02-07 15:46:31 +00:00
Zoe
8fdae73e03 Button to reset cross-signing and SSSS keys 2020-02-07 14:55:01 +00:00
Bruno Windels
02d169060d differentiate dismiss dialog based on name passed from js-sdk
also make dialog a bit nicer with more descriptive button
2020-02-06 16:51:02 +01:00
Bruno Windels
cf7ad725a6 copy and i18n 2020-02-06 15:18:25 +01:00
Bruno Windels
70a4d3415e confirm to close the passphrase dialog if it was done by backgroundClick
as it is easy to do by accident
2020-02-06 13:11:24 +01:00
J. Ryan Stinnett
d5811cad28 Change UI auth title for cross-signing 2020-01-31 15:04:51 +00:00
David Baker
c111d70deb
Merge pull request #4009 from matrix-org/dbkr/log_exceptions_other_than_cancel
Log exceptions from accessSecretStorage
2020-01-31 11:00:16 +00:00
David Baker
26c9b64c3b Log exceptions from accessSecretStorage
Rather than ignoring everything assuming the user cancelled
2020-01-31 10:35:05 +00:00
J. Ryan Stinnett
788cb24093 Add advanced option to keep secret storage in memory for session
This adds a default-off option to keep the secret storage passphrase cached in
memory for the current session to avoid death by prompts.
2020-01-30 14:18:12 +00:00
J. Ryan Stinnett
4a82e86859 Adjust secret storage to work before sync
This adjusts to changed JS SDK APIs that allow secret storage to optionally ask
the server for any account data needed at login.

Fixes https://github.com/vector-im/riot-web/issues/11901
2020-01-17 17:59:12 +00:00
Travis Ralston
fde32f13a5 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop 2020-01-09 14:15:09 -07:00
J. Ryan Stinnett
d5a82a5fc2 Finish sentence in accessSecretStorage docs 2020-01-03 13:45:57 +00:00
Travis Ralston
042bd35d79 Fix MatrixClientPeg imports 2019-12-22 21:15:54 -07:00
Travis Ralston
806d728d59 Import from the js-sdk's src/ directory
Because ES6 and such.
2019-12-22 21:14:33 -07:00
Travis Ralston
d56f0f2a25 Convert many imports to handle ES6 exports
Reliant upon https://github.com/matrix-org/matrix-react-sdk/pull/3761
2019-12-22 21:04:42 -07:00
J. Ryan Stinnett
6338ee9683 Only allow key caching inside the access helper 2019-12-12 15:34:01 +00:00
J. Ryan Stinnett
66f7600969 Add accessSecretStorage helper with common flow setup
This moves the details of dialogs that may be needed when accessing secret
storage to centralised helper. In addition, this clears the secret storage key
cache so that keys are only live for a single operation.
2019-12-11 15:07:46 +00:00
J. Ryan Stinnett
c5099b9b96 Re-add the secret storage key cache 2019-12-11 14:28:02 +00:00
J. Ryan Stinnett
4956e83228 Remove secret storage key cache for now 2019-12-10 16:53:15 +00:00