Description
Part of MSC4153 (Invisible Crypto).
Follow up of #3565
Expose a new SDK setting, dynamic that can for example be enabled in app via a toggle to allow to use the new invisible crypto distribution mode.
Also update FFI (and wasm?) bindings.
Detailed description
We need a new global setting to enable Invisible crypto. This setting will affect all rooms.
This setting can be toggle on/off on the BaseClient
.
For context, when enabled, the invisible crypto mode will impact:
-
Sending encrypted messages (see CollectStrategy): Message keys will only be distributed to devices signed by their owners. There will be new errors when encrypting messages (cross signing not setup, own identity not verified, a recipient previously verified is not anymore). The base UX work to support these new sending errors should be covered by https://github.com/element-hq/element-internal/issues/614.
-
Receiving encrypted message (see Decryption trust checking) :
- There will be new decryption errors, messages sent by devices not verified by their owner will fail to decrypt and should not be displayed in the timeline, and should not be displayed in notifications