Skip to content

matrix-sdk-crypto-ffi-0.11.0

Choose a tag to compare

@Velin92 Velin92 released this 29 May 09:04
· 1930 commits to main since this release
1e938df

Features

  • [breaking] OlmMachine.receive_sync_changes returns now a list of ProcessedToDeviceEvent
    instead of a list of Raw<AnyToDeviceEvent>. With variants like Decrypted|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 helper ProcessedToDeviceEvent::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 for room_key::MegolmV1AesSha2Content
    has been added and PickledInboundGroupSession has received a new
    shared_history field that defaults to false.
    (#4700)

  • Have the RoomIdentityProvider return processing changes when identities transition
    to IdentityState::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 the DehydratedDeviceKey as parameter
    instead of a raw byte array. Use DehydratedDeviceKey::from_bytes to migrate.
    (#4383)

  • Add extra logging in OtherUserIdentity::pin_current_master_key and
    OtherUserIdentity::withdraw_verification.
    (#4415)

  • Added new UtdCause variants WithheldForUnverifiedOrInsecureDevice and WithheldBySender.
    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 existing HistoricalMessage:
    HistoricalMessageAndBackupIsDisabled and HistoricalMessageAndDeviceIsUnverified.
    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)