Use server-side room keys backup
Part of #717.
From the spec:
Devices may upload encrypted copies of keys to the server. When a device tries to read a message that it does not have keys for, it may request the key from the server and decrypt it. Backups are per-user, and users may replace backups with new backups.
In contrast with Key requests, Server-side key backups do not require another device to be online from which to request keys. However, as the session keys are stored on the server encrypted, it requires users to enter a decryption key to decrypt the session keys.
-
Set up server-side key backup if it isn't already done. -
Possibility to reinitialize backup.
Right now, it lacks support in the Matrix Rust SDK. I believe that it is blocked on implementing an MSC that changes the encryption from using asymmetric keys to using symmetric keys, see matrix-rust-sdk#473.
This also depends on Implement secret storage for signing keys backup (#902 - closed), to store the key used to encrypt the backup.