Open
1 of 1 issue completedDescription
User story
As a user, if I log out my last device, other users should still be able to send messages to me and I should be able to read them once I come back and log in with some device.
Concept
Initial device dehydration feature has several issues:
- Tricky to implement, as it requires that the device rehydration be done before any other API calls
- User loses the advantage of verifying their other devices via emoji or QR code (passphrase needed anyhow to rehydrate)
It's now replaced with MSC3814.
Tasks
Groundwork
- Ruma support for MSC3814 #1898
- Rust crypto SDK Support for MSC3814 - Dehydrated devices v2 matrix-org/matrix-rust-sdk#2349
- https://github.com/vector-im/crypto-internal/issues/126
- MSC updates/Polishing MSC3814: Document new dehydrated device format (probably just a concatenation of the various bits of information needed, similar to existing pickle format) #2602
- Synapse support part 2 Support MSC3814: Dehydrated Devices Part 2 matrix-org/synapse#16010
- Fix endpoint improperly declaring support for MSC3814 matrix-org/synapse#16068
Initial Dehydrated device support
- IOS SDK Device dehydration v2 matrix-org/matrix-ios-sdk#1807
- iOS App Device dehydration v2 element-ios#7630
- WebR full support for dehydrated device v2 #2278
- Implement new dehydration format for Dehydrated Devices #2601
- KeySharing, DevicebasedStrategy | Exclude insecure dehydrated devices when sending messages matrix-org/matrix-rust-sdk#4313
- Dehydrated devices: drop incoming to-device messages from dehydrated devices matrix-org/matrix-rust-sdk#4466
- Device Dehydration: Cache Dehydration Key #2603
Production ready on Web
- Dehydrated devices: drop .well-known check element-web#29387
- Dehydrated devices: gossip the dehydration key between devices when you verify #2703
- Dehydrated devices: gossip the dehydration key to verified devices when you create/change the dehydration key #2753
- Dehydrated devices: API change POST->GET #2704
- Dehydrated devices: API change to make paging consistent with other APIs #2799
- Dehydrated devices: when resetting SSSS, if some prior step fails, we won't reset device dehydration element-web#29084
- Dehydrated devices: Add some stuff to the crypto dev tools element-web#29081
- Device dehydration: upgrade existing user accounts to add a dehydrated device element-web#29080
- Device dehydration: users should be able to see their own dehydrated device(s) element-web#29264
- Dehydrated devices: does not detect if another client changed the dehydration key in 4S element-web#28760
- Device dehydration: detect and handle when user has a dehydrated device for which we don't have the key element-web#29579
- Device dehydration: state explicitly on UI that recovery enables/disables dehydration #2828
Future work
- Rust SDK: Support the resumption of the rehydration process #1978
- Deprecate and remove legacy device dehydration (MSC2697)
- EX: indicate when I have a dehydrated device #2635
- EX full support for dehydrated device v2
- https://github.com/element-hq/crypto-internal/issues/402