matrix-sdk-crypto-ffi-0.11.0
Features
-
[breaking]
OlmMachine.receive_sync_changes
returns now a list ofProcessedToDeviceEvent
instead of a list ofRaw<AnyToDeviceEvent>
. With variants likeDecrypted
|UnableToDecrypt
|PlainText
|NotProcessed
.
This allows for example to make the difference between an event sent in clear and an event successfully decrypted.
For quick compatibility a helperProcessedToDeviceEvent::to_raw
allows to map back to the previous behaviour. -
[breaking] Add support for the shared history flag defined in
MSC3061.
The shared history flag is now respected when room keys are received as an
m.room_key
event as well as when they are imported from a backup or a file
export. We also ensure to set the flag when we send out room keys. Due to
this, a new argument to the constructor forroom_key::MegolmV1AesSha2Content
has been added andPickledInboundGroupSession
has received a new
shared_history
field that defaults tofalse.
(#4700) -
Have the
RoomIdentityProvider
return processing changes when identities transition
toIdentityState::Verified
too.
(#4670) -
[breaking]
CollectStrategy::DeviceBasedStrategy
is now split into three
separate strategies (AllDevices
,ErrorOnVerifiedUserProblem
,
OnlyTrustedDevices
), to make the behaviour clearer.
(#4581) -
Accept stable identifier
sender_device_keys
for MSC4147 (Including device
keys with Olm-encrypted events).
(#4420) -
Room keys are not shared with unsigned dehydrated devices.
(#4551) -
[breaking] Expose new API
DehydratedDevices::get_dehydrated_device_pickle_key
,
DehydratedDevices::save_dehydrated_device_pickle_key
and
DehydratedDevices::delete_dehydrated_device_pickle_key
to store/load the
dehydrated device pickle key. This allows client to automatically rotate
the dehydrated device to avoid one-time-keys exhaustion and to_device
accumulation.
DehydratedDevices::keys_for_upload
and
DehydratedDevices::rehydrate
now use theDehydratedDeviceKey
as parameter
instead of a raw byte array. UseDehydratedDeviceKey::from_bytes
to migrate.
(#4383) -
Add extra logging in
OtherUserIdentity::pin_current_master_key
and
OtherUserIdentity::withdraw_verification
.
(#4415) -
Added new
UtdCause
variantsWithheldForUnverifiedOrInsecureDevice
andWithheldBySender
.
These variants provide clearer categorization for expected Unable-To-Decrypt (UTD) errors
when the sender either did not wish to share or was unable to share the room_key.
(#4305) -
UtdCause
has two new variants that replace the existingHistoricalMessage
:
HistoricalMessageAndBackupIsDisabled
andHistoricalMessageAndDeviceIsUnverified
.
These give more detail about what went wrong and allow us to suggest to users
what actions they can take to fix the problem. See the doc comments on these
variants for suggested wording.
(#4384)