Expand description
Submodule for device dehydration support.
Dehydrated devices intend to solve the use-case where users might want to frequently delete their device, in which case other users won’t be able to send end-to-end encrypted messages to them as no device exists to receive and decrypt them.
A dehydrated device is a kind-of omnipresent virtual device that lives on the homeserver. A dehydrated device acts as a normal device from the point of view of other devices. It uploads device and one-time keys to the homeserver which other devices can download and start 1-to-1 encrypted sessions with the device just like with any other device.
The one important difference is that the private parts of the uploaded device and one-time keys are encrypted and uploaded to the homeserver as well.
Once the user creates a new real device, the real device can download the private keys of the dehydrated device from the homeserver, decrypt them and download all the encrypted to-device events the dehydrated device has received. This process is called rehydration.
After the rehydration process is completed, the user’s real device should create a new dehydrated device.
Structs§
- A dehydrated device that can uploaded to the homeserver.
- Struct collecting methods to create and rehydrate dehydrated devices.
- A rehydraded device.
Enums§
- Error type for device dehydration issues.