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§

Enums§