atagen

matrix-rust-sdk

public
Star0
Watch0
ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk.git

Blame: crates/matrix-sdk-crypto/CHANGELOG.md

7ff8adafe9e4atagen2026-10-22 12:30 UTC1
# Changelog
7ff8adafe9e4atagen2026-10-22 12:30 UTC2
7ff8adafe9e4atagen2026-10-22 12:30 UTC3
All notable changes to this project will be documented in this file.
7ff8adafe9e4atagen2026-10-22 12:30 UTC4
7ff8adafe9e4atagen2026-10-22 12:30 UTC5
<!-- changelog start -->
7ff8adafe9e4atagen2026-10-22 12:30 UTC6
7ff8adafe9e4atagen2026-10-22 12:30 UTC7
## [0.18.0](https://github.com/matrix-org/matrix-rust-sdk/tree/0.18.0) - 2026-06-02
7ff8adafe9e4atagen2026-10-22 12:30 UTC8
7ff8adafe9e4atagen2026-10-22 12:30 UTC9
No significant changes.
7ff8adafe9e4atagen2026-10-22 12:30 UTC10
7ff8adafe9e4atagen2026-10-22 12:30 UTC11
## [0.17.0] - 2026-05-08
7ff8adafe9e4atagen2026-10-22 12:30 UTC12
7ff8adafe9e4atagen2026-10-22 12:30 UTC13
### Bug fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC14
7ff8adafe9e4atagen2026-10-22 12:30 UTC15
- Check the user ID in the `sender_device_keys` property of Olm-encrypted
7ff8adafe9e4atagen2026-10-22 12:30 UTC16
to-device events to prevent sender spoofing by homeserver owners.
7ff8adafe9e4atagen2026-10-22 12:30 UTC17
([#6553](https://github.com/matrix-org/matrix-rust-sdk/pull/6553))
7ff8adafe9e4atagen2026-10-22 12:30 UTC18
7ff8adafe9e4atagen2026-10-22 12:30 UTC19
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC20
7ff8adafe9e4atagen2026-10-22 12:30 UTC21
- [**breaking**] Change to the stable identifiers for `m.room_key_bundle`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC22
  `m.history_not_shared` and `m.shared_history`. We still support reading the
7ff8adafe9e4atagen2026-10-22 12:30 UTC23
  unstable identifiers.
7ff8adafe9e4atagen2026-10-22 12:30 UTC24
  ([#6467](https://github.com/matrix-org/matrix-rust-sdk/pull/6467))
7ff8adafe9e4atagen2026-10-22 12:30 UTC25
- Add support for MSC4385.
7ff8adafe9e4atagen2026-10-22 12:30 UTC26
  ([#6164](https://github.com/matrix-org/matrix-rust-sdk/pull/6164))
7ff8adafe9e4atagen2026-10-22 12:30 UTC27
  - Add new method `OlmMachine::push_secret_to_verified_devices`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC28
  - Pushed secrets that we receive from verified devices are added to the
7ff8adafe9e4atagen2026-10-22 12:30 UTC29
    secrets inbox.
7ff8adafe9e4atagen2026-10-22 12:30 UTC30
- Add `Store::{store,clear}_room_pending_key_bundle`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC31
  `CryptoStore::get_pending_key_bundle_details_for_room` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC32
  `CryptoStore::get_all_rooms_pending_key_bundle`, which can be used by
7ff8adafe9e4atagen2026-10-22 12:30 UTC33
  applications to track whether they are expecting an
7ff8adafe9e4atagen2026-10-22 12:30 UTC34
  [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268) key
7ff8adafe9e4atagen2026-10-22 12:30 UTC35
  bundle. ([#6199](https://github.com/matrix-org/matrix-rust-sdk/pull/6199)),
7ff8adafe9e4atagen2026-10-22 12:30 UTC36
  ([#6233](https://github.com/matrix-org/matrix-rust-sdk/pull/6233)),
7ff8adafe9e4atagen2026-10-22 12:30 UTC37
- Add MSC4388 support to the QrcodeData struct.
7ff8adafe9e4atagen2026-10-22 12:30 UTC38
  ([#6089](https://github.com/matrix-org/matrix-rust-sdk/pull/6089))
7ff8adafe9e4atagen2026-10-22 12:30 UTC39
- Improved logging when we are sending secrets in `GossipMachine`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC40
  ([#6074](https://github.com/matrix-org/matrix-rust-sdk/pull/6074))
7ff8adafe9e4atagen2026-10-22 12:30 UTC41
  ([#6083](https://github.com/matrix-org/matrix-rust-sdk/pull/6083))
7ff8adafe9e4atagen2026-10-22 12:30 UTC42
- Added a new field `forwarder` to `InboundGroupSession` of type
7ff8adafe9e4atagen2026-10-22 12:30 UTC43
  `ForwarderData`, which stores information about the forwarder of a session
7ff8adafe9e4atagen2026-10-22 12:30 UTC44
  shared in a room key bundle under
7ff8adafe9e4atagen2026-10-22 12:30 UTC45
  [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268).
7ff8adafe9e4atagen2026-10-22 12:30 UTC46
  ([#5980])([https://github.com/matrix-org/matrix-rust-sdk/pull/5980][https-github-com-matrix-org-matrix-rust-sdk-pull-5980])
7ff8adafe9e4atagen2026-10-22 12:30 UTC47
- The `OutboundGroupSession` and `OlmMachine` now return the `EncryptionInfo`
7ff8adafe9e4atagen2026-10-22 12:30 UTC48
  used when encrypting raw events.
7ff8adafe9e4atagen2026-10-22 12:30 UTC49
  ([#5936](https://github.com/matrix-org/matrix-rust-sdk/pull/5936))
7ff8adafe9e4atagen2026-10-22 12:30 UTC50
- Expose a new method `CryptoStore::has_downloaded_all_room_keys`, used to track
7ff8adafe9e4atagen2026-10-22 12:30 UTC51
  whether the client has previously downloaded historical room keys for a given
7ff8adafe9e4atagen2026-10-22 12:30 UTC52
  room from key backup prior to building an
7ff8adafe9e4atagen2026-10-22 12:30 UTC53
  [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268) room
7ff8adafe9e4atagen2026-10-22 12:30 UTC54
  key bundle. ([#6017](https://github.com/matrix-org/matrix-rust-sdk/pull/6017))
7ff8adafe9e4atagen2026-10-22 12:30 UTC55
  ([#6044](https://github.com/matrix-org/matrix-rust-sdk/pull/6044))
7ff8adafe9e4atagen2026-10-22 12:30 UTC56
7ff8adafe9e4atagen2026-10-22 12:30 UTC57
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC58
7ff8adafe9e4atagen2026-10-22 12:30 UTC59
- Re-introduce cross-process lock generation logic in `OlmMachine`
7ff8adafe9e4atagen2026-10-22 12:30 UTC60
  ([#6496](https://github.com/matrix-org/matrix-rust-sdk/pull/6496))
7ff8adafe9e4atagen2026-10-22 12:30 UTC61
- [**breaking**] The `MegolmV1BackupKey::encrypt` now returns a `Result`
7ff8adafe9e4atagen2026-10-22 12:30 UTC62
  ([#6477](https://github.com/matrix-org/matrix-rust-sdk/pull/6477))
7ff8adafe9e4atagen2026-10-22 12:30 UTC63
- [**breaking**] `CryptoStore::get_secrets_from_inbox` now returns a `Vec` of
7ff8adafe9e4atagen2026-10-22 12:30 UTC64
  the secrets as strings, rather than a `Vec` of `GossippedSecret` structs.
7ff8adafe9e4atagen2026-10-22 12:30 UTC65
  ([#6164](https://github.com/matrix-org/matrix-rust-sdk/pull/6164))
7ff8adafe9e4atagen2026-10-22 12:30 UTC66
- [**breaking**] `store::types::Changes::sessions` now stores a `Vec` of
7ff8adafe9e4atagen2026-10-22 12:30 UTC67
  `SecretsInboxItem`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC68
  ([#6164](https://github.com/matrix-org/matrix-rust-sdk/pull/6164))
7ff8adafe9e4atagen2026-10-22 12:30 UTC69
- **breaking** The `BackupDecryptionKey::new` and `DehydratedDeviceKey::new`
7ff8adafe9e4atagen2026-10-22 12:30 UTC70
  methods became infallible, they don't return a `Result` anymore.
7ff8adafe9e4atagen2026-10-22 12:30 UTC71
  ([#5502](https://github.com/matrix-org/matrix-rust-sdk/pull/5502))
7ff8adafe9e4atagen2026-10-22 12:30 UTC72
- [**breaking**] Remove cross-process lock generation logic from `OlmMachine`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC73
  which is now implemented more generally in
7ff8adafe9e4atagen2026-10-22 12:30 UTC74
  `matrix_sdk_common::cross_process_lock::CrossProcessLock`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC75
  ([#6326](https://github.com/matrix-org/matrix-rust-sdk/pull/6326))
7ff8adafe9e4atagen2026-10-22 12:30 UTC76
- [**breaking**] The `MediaEncryptionInfo` fields changed to match the new
7ff8adafe9e4atagen2026-10-22 12:30 UTC77
  fields of `EncryptedFile` from Ruma. The serialized JSON format did not change
7ff8adafe9e4atagen2026-10-22 12:30 UTC78
  and still matches the format of `EncryptedFile` defined in the spec, without
7ff8adafe9e4atagen2026-10-22 12:30 UTC79
  the `url` field. The `DecryptorError::KeyNonceLength` variant was removed
7ff8adafe9e4atagen2026-10-22 12:30 UTC80
  because the length of the key and nonce are now enforced in
7ff8adafe9e4atagen2026-10-22 12:30 UTC81
  `MediaEncryptionInfo`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC82
  ([#6346](https://github.com/matrix-org/matrix-rust-sdk/pull/6346))
7ff8adafe9e4atagen2026-10-22 12:30 UTC83
- [**breaking**] Removed `WithLocking` from `EncryptionSyncService` and replaced
7ff8adafe9e4atagen2026-10-22 12:30 UTC84
  it with `CrossProcessLockConfig`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC85
  ([#6160](https://github.com/matrix-org/matrix-rust-sdk/pull/6160))
7ff8adafe9e4atagen2026-10-22 12:30 UTC86
- [**breaking**] The QrcodeData struct has been reworked in preparation to
7ff8adafe9e4atagen2026-10-22 12:30 UTC87
  support MSC4388. The fields of the QrcodeData struct are not anymore publicly
7ff8adafe9e4atagen2026-10-22 12:30 UTC88
  accessible. The `mode_data()` method has been renamed to `intent_data()` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC89
  returns an MSC-specific struct now. The `rendezvous_url()` method has been
7ff8adafe9e4atagen2026-10-22 12:30 UTC90
  removed.
7ff8adafe9e4atagen2026-10-22 12:30 UTC91
  ([#6081](https://github.com/matrix-org/matrix-rust-sdk/pull/6081))
7ff8adafe9e4atagen2026-10-22 12:30 UTC92
- [**breaking**] The `message-ids` feature has been removed. It was already a
7ff8adafe9e4atagen2026-10-22 12:30 UTC93
  no-op and has now been eliminated entirely.
7ff8adafe9e4atagen2026-10-22 12:30 UTC94
  ([#5963](https://github.com/matrix-org/matrix-rust-sdk/pull/5963))
7ff8adafe9e4atagen2026-10-22 12:30 UTC95
7ff8adafe9e4atagen2026-10-22 12:30 UTC96
## [0.16.1] - 2026-05-08
7ff8adafe9e4atagen2026-10-22 12:30 UTC97
7ff8adafe9e4atagen2026-10-22 12:30 UTC98
### Bug fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC99
7ff8adafe9e4atagen2026-10-22 12:30 UTC100
- Check the user ID in the `sender_device_keys` property of Olm-encrypted
7ff8adafe9e4atagen2026-10-22 12:30 UTC101
to-device events to prevent sender spoofing by homeserver owners.
7ff8adafe9e4atagen2026-10-22 12:30 UTC102
([#6553](https://github.com/matrix-org/matrix-rust-sdk/pull/6553))
7ff8adafe9e4atagen2026-10-22 12:30 UTC103
7ff8adafe9e4atagen2026-10-22 12:30 UTC104
## [0.16.0] - 2025-12-04
7ff8adafe9e4atagen2026-10-22 12:30 UTC105
7ff8adafe9e4atagen2026-10-22 12:30 UTC106
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC107
7ff8adafe9e4atagen2026-10-22 12:30 UTC108
- When we receive an inbound Megolm session from two different sources, merge
7ff8adafe9e4atagen2026-10-22 12:30 UTC109
  the two copies together to get the best of both.
7ff8adafe9e4atagen2026-10-22 12:30 UTC110
  ([#5865](https://github.com/matrix-org/matrix-rust-sdk/pull/5865)
7ff8adafe9e4atagen2026-10-22 12:30 UTC111
- When constructing a key bundle for history sharing, if we had received a key
7ff8adafe9e4atagen2026-10-22 12:30 UTC112
  bundle ourselves, in which one or more sessions was marked as "history not
7ff8adafe9e4atagen2026-10-22 12:30 UTC113
  shared", pass that on to the new user.
7ff8adafe9e4atagen2026-10-22 12:30 UTC114
  ([#5820](https://github.com/matrix-org/matrix-rust-sdk/pull/5820)
7ff8adafe9e4atagen2026-10-22 12:30 UTC115
- Expose new method `CryptoStore::get_withheld_sessions_by_room_id`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC116
  ([#5819](https://github.com/matrix-org/matrix-rust-sdk/pull/5819))
7ff8adafe9e4atagen2026-10-22 12:30 UTC117
- Use new withheld code in key bundles for sessions not marked as
7ff8adafe9e4atagen2026-10-22 12:30 UTC118
  `shared_history`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC119
  ([#5807](https://github.com/matrix-org/matrix-rust-sdk/pull/5807),
7ff8adafe9e4atagen2026-10-22 12:30 UTC120
  ([#5834](https://github.com/matrix-org/matrix-rust-sdk/pull/5834))
7ff8adafe9e4atagen2026-10-22 12:30 UTC121
- Improve feedback support for shared history when downloading room key
7ff8adafe9e4atagen2026-10-22 12:30 UTC122
  bundles.
7ff8adafe9e4atagen2026-10-22 12:30 UTC123
  ([#5737](https://github.com/matrix-org/matrix-rust-sdk/pull/5737))
7ff8adafe9e4atagen2026-10-22 12:30 UTC124
  - Add `RoomKeyWithheldEntry` enum, wrapping either a received to-device
7ff8adafe9e4atagen2026-10-22 12:30 UTC125
    `m.room_key.withheld` event or its content, if derived from a downloaded
7ff8adafe9e4atagen2026-10-22 12:30 UTC126
    room key bundle.
7ff8adafe9e4atagen2026-10-22 12:30 UTC127
  - `OlmMachine::receive_room_key_bundle` now appends withheld key information
7ff8adafe9e4atagen2026-10-22 12:30 UTC128
    to the store.
7ff8adafe9e4atagen2026-10-22 12:30 UTC129
  - [**breaking**] `Changes::withheld_session_info` now stores a
7ff8adafe9e4atagen2026-10-22 12:30 UTC130
    `RoomKeyWithheldEntry` in each `room-id`-`session-id` entry.
7ff8adafe9e4atagen2026-10-22 12:30 UTC131
  - [**breaking**] `CryptoStore::get_withheld_info` now returns
7ff8adafe9e4atagen2026-10-22 12:30 UTC132
    `Result<Option<RoomKeyWithheldEntry>>`. This change also affects
7ff8adafe9e4atagen2026-10-22 12:30 UTC133
    `MemoryStore`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC134
- [**breaking**] Add `name` fields to some of the variants of
7ff8adafe9e4atagen2026-10-22 12:30 UTC135
  `store::SecretImportError` to indicate what secret was being imported when the
7ff8adafe9e4atagen2026-10-22 12:30 UTC136
  error occurred.
7ff8adafe9e4atagen2026-10-22 12:30 UTC137
  ([#5647](https://github.com/matrix-org/matrix-rust-sdk/pull/5647))
7ff8adafe9e4atagen2026-10-22 12:30 UTC138
7ff8adafe9e4atagen2026-10-22 12:30 UTC139
### Bug fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC140
7ff8adafe9e4atagen2026-10-22 12:30 UTC141
- Fix a bug which caused encrypted to-device messages from unknown devices to be
7ff8adafe9e4atagen2026-10-22 12:30 UTC142
  ignored. ([#5763](https://github.com/matrix-org/matrix-rust-sdk/pull/5763))
7ff8adafe9e4atagen2026-10-22 12:30 UTC143
- Fix a bug which caused history shared on invite to be ignored when "exclude
7ff8adafe9e4atagen2026-10-22 12:30 UTC144
  insecure devices" was enabled.
7ff8adafe9e4atagen2026-10-22 12:30 UTC145
  ([#5763](https://github.com/matrix-org/matrix-rust-sdk/pull/5763))
7ff8adafe9e4atagen2026-10-22 12:30 UTC146
- Fix a bug introduced in 0.14.0 which meant that the serialization of the value
7ff8adafe9e4atagen2026-10-22 12:30 UTC147
  returned by `OtherUserIdentity::verification_request_content` did not include
7ff8adafe9e4atagen2026-10-22 12:30 UTC148
  a `msgtype` field.
7ff8adafe9e4atagen2026-10-22 12:30 UTC149
  ([#5642](https://github.com/matrix-org/matrix-rust-sdk/pull/5642))
7ff8adafe9e4atagen2026-10-22 12:30 UTC150
7ff8adafe9e4atagen2026-10-22 12:30 UTC151
## [0.14.0] - 2025-09-04
7ff8adafe9e4atagen2026-10-22 12:30 UTC152
7ff8adafe9e4atagen2026-10-22 12:30 UTC153
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC154
7ff8adafe9e4atagen2026-10-22 12:30 UTC155
- Log message index for Megolm sessions received over encrypted to-device
7ff8adafe9e4atagen2026-10-22 12:30 UTC156
  messages. ([#5599](https://github.com/matrix-org/matrix-rust-sdk/pull/5599))
7ff8adafe9e4atagen2026-10-22 12:30 UTC157
- Add `RoomSettings::encrypt_state_events` flag.
7ff8adafe9e4atagen2026-10-22 12:30 UTC158
  ([#5511](https://github.com/matrix-org/matrix-rust-sdk/pull/5511))
7ff8adafe9e4atagen2026-10-22 12:30 UTC159
- Make sure to accept historic room key bundles only if the sender is trusted
7ff8adafe9e4atagen2026-10-22 12:30 UTC160
  enough.
7ff8adafe9e4atagen2026-10-22 12:30 UTC161
  ([#5510](https://github.com/matrix-org/matrix-rust-sdk/pull/5510))
7ff8adafe9e4atagen2026-10-22 12:30 UTC162
- [**breaking**]: When in "exclude insecure devices" mode, refuse to decrypt
7ff8adafe9e4atagen2026-10-22 12:30 UTC163
  incoming to-device messages from unverified devices, except for some
7ff8adafe9e4atagen2026-10-22 12:30 UTC164
  exceptions for certain event types. To support this, a new variant has been
7ff8adafe9e4atagen2026-10-22 12:30 UTC165
  added to `ProcessedToDeviceEvent`: `UnverifiedSender`, which is returned from
7ff8adafe9e4atagen2026-10-22 12:30 UTC166
  `OlmMachine::receive_sync_changes` when we are excluding insecure devices and
7ff8adafe9e4atagen2026-10-22 12:30 UTC167
  the sender's device is not verified. Also, several methods now take a
7ff8adafe9e4atagen2026-10-22 12:30 UTC168
  `DecryptionSettings` argument to allow controlling the processing of to-device
7ff8adafe9e4atagen2026-10-22 12:30 UTC169
  events based on those settings. To recreate the previous behaviour pass in:
7ff8adafe9e4atagen2026-10-22 12:30 UTC170
  `DecryptionSettings { sender_device_trust_requirement: TrustRequirement::Untrusted }`. <!-- rumdl-disable-line MD013 -->
7ff8adafe9e4atagen2026-10-22 12:30 UTC171
  Affected methods are `OlmMachine::receive_sync_changes`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC172
  `RehydratedDevice::receive_events`, and several internal methods.
7ff8adafe9e4atagen2026-10-22 12:30 UTC173
  ([#5319](https://github.com/matrix-org/matrix-rust-sdk/pull/5319))
7ff8adafe9e4atagen2026-10-22 12:30 UTC174
- [**breaking**] The `Device::encrypt_event_raw` and (experimental)
7ff8adafe9e4atagen2026-10-22 12:30 UTC175
  `OlmMachine::encrypt_content_for_devices` have new `share_strategy` parameters
7ff8adafe9e4atagen2026-10-22 12:30 UTC176
  to ensure that the recipients are sufficiently trusted.
7ff8adafe9e4atagen2026-10-22 12:30 UTC177
  ([#5457](https://github.com/matrix-org/matrix-rust-sdk/pull/5457/))
7ff8adafe9e4atagen2026-10-22 12:30 UTC178
7ff8adafe9e4atagen2026-10-22 12:30 UTC179
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC180
7ff8adafe9e4atagen2026-10-22 12:30 UTC181
- [**breaking**] The `sender_key` and `device_id` fields of
7ff8adafe9e4atagen2026-10-22 12:30 UTC182
  `encrypted::MegolmV1AesSha2Content` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC183
  `room_key_request::MegolmV1AesSha2Content` are now optional. The have been
7ff8adafe9e4atagen2026-10-22 12:30 UTC184
  deprecated in Matrix 1.3 and are no longer required.
7ff8adafe9e4atagen2026-10-22 12:30 UTC185
  ([#5489](https://github.com/matrix-org/matrix-rust-sdk/pull/5489))
7ff8adafe9e4atagen2026-10-22 12:30 UTC186
7ff8adafe9e4atagen2026-10-22 12:30 UTC187
## [0.13.0] - 2025-07-10
7ff8adafe9e4atagen2026-10-22 12:30 UTC188
7ff8adafe9e4atagen2026-10-22 12:30 UTC189
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC190
7ff8adafe9e4atagen2026-10-22 12:30 UTC191
- [**breaking**] Add a new `VerificationLevel::MismatchedSender` to indicate
7ff8adafe9e4atagen2026-10-22 12:30 UTC192
  that the sender of an event appears to have been tampered with.
7ff8adafe9e4atagen2026-10-22 12:30 UTC193
  ([#5219](https://github.com/matrix-org/matrix-rust-sdk/pull/5219))
7ff8adafe9e4atagen2026-10-22 12:30 UTC194
7ff8adafe9e4atagen2026-10-22 12:30 UTC195
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC196
7ff8adafe9e4atagen2026-10-22 12:30 UTC197
- [**breaking**] The `PendingChanges`, `Changes`, `StoredRoomKeyBundleData`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC198
  `TrackedUser`, `IdentityChanges`, `DeviceChanges`, `DeviceUpdates`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC199
  `IdentityUpdates`, `BackupDecryptionKey`, `DehydratedDeviceKey`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC200
  `RoomKeyCounts`, `BackupKeys`, `CrossSigningKeyExport`, `UserKeyQueryResult`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC201
  `RoomSettings`, `RoomKeyInfo`, and `RoomKeyWithheldInfo` types have been moved
7ff8adafe9e4atagen2026-10-22 12:30 UTC202
  from the `store` module into a new `store/types` module.
7ff8adafe9e4atagen2026-10-22 12:30 UTC203
  ([#5177](https://github.com/matrix-org/matrix-rust-sdk/pull/5177))
7ff8adafe9e4atagen2026-10-22 12:30 UTC204
7ff8adafe9e4atagen2026-10-22 12:30 UTC205
## [0.12.0] - 2025-06-10
7ff8adafe9e4atagen2026-10-22 12:30 UTC206
7ff8adafe9e4atagen2026-10-22 12:30 UTC207
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC208
7ff8adafe9e4atagen2026-10-22 12:30 UTC209
- [**breaking**] The `ProcessedToDeviceEvent::Decrypted` variant now also have
7ff8adafe9e4atagen2026-10-22 12:30 UTC210
  an `EncryptionInfo` field. Format changed from
7ff8adafe9e4atagen2026-10-22 12:30 UTC211
  `Decrypted(Raw<AnyToDeviceEvent>)` to
7ff8adafe9e4atagen2026-10-22 12:30 UTC212
  `Decrypted { raw: Raw<AnyToDeviceEvent>, encryption_info: EncryptionInfo) }`
7ff8adafe9e4atagen2026-10-22 12:30 UTC213
  ([#5074](https://github.com/matrix-org/matrix-rust-sdk/pull/5074))
7ff8adafe9e4atagen2026-10-22 12:30 UTC214
7ff8adafe9e4atagen2026-10-22 12:30 UTC215
- [**breaking**] Move `session_id` from `EncryptionInfo` to `AlgorithmInfo` as
7ff8adafe9e4atagen2026-10-22 12:30 UTC216
  it is megolm specific. Use `EncryptionInfo::session_id()` helper for quick
7ff8adafe9e4atagen2026-10-22 12:30 UTC217
  access. ([#4981](https://github.com/matrix-org/matrix-rust-sdk/pull/4981))
7ff8adafe9e4atagen2026-10-22 12:30 UTC218
7ff8adafe9e4atagen2026-10-22 12:30 UTC219
- Send stable identifier `sender_device_keys` for MSC4147 (Including device
7ff8adafe9e4atagen2026-10-22 12:30 UTC220
  keys with Olm-encrypted events).
7ff8adafe9e4atagen2026-10-22 12:30 UTC221
  ([#4964](https://github.com/matrix-org/matrix-rust-sdk/pull/4964))
7ff8adafe9e4atagen2026-10-22 12:30 UTC222
7ff8adafe9e4atagen2026-10-22 12:30 UTC223
- Add experimental APIs for sharing encrypted room key history with new members,
7ff8adafe9e4atagen2026-10-22 12:30 UTC224
  `Store::build_room_key_bundle` and `OlmMachine::share_room_key_bundle_data`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC225
  ([#4775](https://github.com/matrix-org/matrix-rust-sdk/pull/4775),
7ff8adafe9e4atagen2026-10-22 12:30 UTC226
  [#4864](https://github.com/matrix-org/matrix-rust-sdk/pull/4864))
7ff8adafe9e4atagen2026-10-22 12:30 UTC227
7ff8adafe9e4atagen2026-10-22 12:30 UTC228
- Check the `sender_device_keys` field on _all_ incoming Olm-encrypted to-device
7ff8adafe9e4atagen2026-10-22 12:30 UTC229
  messages and ignore any to-device messages which include the field but whose
7ff8adafe9e4atagen2026-10-22 12:30 UTC230
  data is invalid (as per
7ff8adafe9e4atagen2026-10-22 12:30 UTC231
  [MSC4147](https://github.com/matrix-org/matrix-spec-proposals/pull/4147)).
7ff8adafe9e4atagen2026-10-22 12:30 UTC232
  ([#4922](https://github.com/matrix-org/matrix-rust-sdk/pull/4922))
7ff8adafe9e4atagen2026-10-22 12:30 UTC233
7ff8adafe9e4atagen2026-10-22 12:30 UTC234
- Fix bug which caused room keys to be unnecessarily rotated on every send in
7ff8adafe9e4atagen2026-10-22 12:30 UTC235
  the presence of blacklisted/withheld devices in the room.
7ff8adafe9e4atagen2026-10-22 12:30 UTC236
  ([#4954](https://github.com/matrix-org/matrix-rust-sdk/pull/4954))
7ff8adafe9e4atagen2026-10-22 12:30 UTC237
7ff8adafe9e4atagen2026-10-22 12:30 UTC238
- Fix [#2729](https://github.com/matrix-org/matrix-rust-sdk/issues/2729) which
7ff8adafe9e4atagen2026-10-22 12:30 UTC239
  in rare cases can cause room key oversharing.
7ff8adafe9e4atagen2026-10-22 12:30 UTC240
  ([#4975](https://github.com/matrix-org/matrix-rust-sdk/pull/4975))
7ff8adafe9e4atagen2026-10-22 12:30 UTC241
7ff8adafe9e4atagen2026-10-22 12:30 UTC242
- [**breaking**] `OlmMachine.receive_sync_changes` returns now a list of
7ff8adafe9e4atagen2026-10-22 12:30 UTC243
  `ProcessedToDeviceEvent` instead of a list of `Raw<AnyToDeviceEvent>`. With
7ff8adafe9e4atagen2026-10-22 12:30 UTC244
  variants like `Decrypted`|`UnableToDecrypt`|`PlainText`|`NotProcessed`. This
7ff8adafe9e4atagen2026-10-22 12:30 UTC245
  allows for example to make the difference between an event sent in clear and
7ff8adafe9e4atagen2026-10-22 12:30 UTC246
  an event successfully decrypted. For quick compatibility a helper
7ff8adafe9e4atagen2026-10-22 12:30 UTC247
  `ProcessedToDeviceEvent::to_raw` allows to map back to the previous behaviour.
7ff8adafe9e4atagen2026-10-22 12:30 UTC248
  ([#4935](https://github.com/matrix-org/matrix-rust-sdk/pull/4935))
7ff8adafe9e4atagen2026-10-22 12:30 UTC249
7ff8adafe9e4atagen2026-10-22 12:30 UTC250
## [0.11.1] - 2025-06-10
7ff8adafe9e4atagen2026-10-22 12:30 UTC251
7ff8adafe9e4atagen2026-10-22 12:30 UTC252
### Security fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC253
7ff8adafe9e4atagen2026-10-22 12:30 UTC254
- Check the sender of an event matches owner of session, preventing sender
7ff8adafe9e4atagen2026-10-22 12:30 UTC255
  spoofing by homeserver owners.
7ff8adafe9e4atagen2026-10-22 12:30 UTC256
  [13c1d20](https://github.com/matrix-org/matrix-rust-sdk/commit/13c1d2048286bbabf5e7bc6b015aafee98f04d55)
7ff8adafe9e4atagen2026-10-22 12:30 UTC257
  (High, [CVE-2025-48937](https://www.cve.org/CVERecord?id=CVE-2025-48937),
7ff8adafe9e4atagen2026-10-22 12:30 UTC258
  [GHSA-x958-rvg6-956w](https://github.com/matrix-org/matrix-rust-sdk/security/advisories/GHSA-x958-rvg6-956w)).
7ff8adafe9e4atagen2026-10-22 12:30 UTC259
7ff8adafe9e4atagen2026-10-22 12:30 UTC260
### Bug fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC261
7ff8adafe9e4atagen2026-10-22 12:30 UTC262
- Remove a wildcard enum variant import which breaks compilation if used with
7ff8adafe9e4atagen2026-10-22 12:30 UTC263
  `tracing-attributes` version `0.1.29`. This is a workaround for a bug in
7ff8adafe9e4atagen2026-10-22 12:30 UTC264
  `tracing-attributes`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC265
  ([#5190](https://github.com/matrix-org/matrix-rust-sdk/issues/5190))
7ff8adafe9e4atagen2026-10-22 12:30 UTC266
  ([#5191](https://github.com/matrix-org/matrix-rust-sdk/issues/5191))
7ff8adafe9e4atagen2026-10-22 12:30 UTC267
  ([#5193](https://github.com/matrix-org/matrix-rust-sdk/issues/5193))
7ff8adafe9e4atagen2026-10-22 12:30 UTC268
7ff8adafe9e4atagen2026-10-22 12:30 UTC269
## [0.11.0] - 2025-04-11
7ff8adafe9e4atagen2026-10-22 12:30 UTC270
7ff8adafe9e4atagen2026-10-22 12:30 UTC271
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC272
7ff8adafe9e4atagen2026-10-22 12:30 UTC273
- [**breaking**] Add support for the shared history flag defined in
7ff8adafe9e4atagen2026-10-22 12:30 UTC274
  [MSC3061](https://github.com/matrix-org/matrix-spec-proposals/pull/3061).
7ff8adafe9e4atagen2026-10-22 12:30 UTC275
  The shared history flag is now respected when room keys are received as an
7ff8adafe9e4atagen2026-10-22 12:30 UTC276
  `m.room_key` event as well as when they are imported from a backup or a file
7ff8adafe9e4atagen2026-10-22 12:30 UTC277
  export. We also ensure to set the flag when we send out room keys. Due to
7ff8adafe9e4atagen2026-10-22 12:30 UTC278
  this, a new argument to the constructor for `room_key::MegolmV1AesSha2Content`
7ff8adafe9e4atagen2026-10-22 12:30 UTC279
  has been added and `PickledInboundGroupSession` has received a new
7ff8adafe9e4atagen2026-10-22 12:30 UTC280
  `shared_history` field that defaults to `false.`
7ff8adafe9e4atagen2026-10-22 12:30 UTC281
  ([#4700](https://github.com/matrix-org/matrix-rust-sdk/pull/4700))
7ff8adafe9e4atagen2026-10-22 12:30 UTC282
7ff8adafe9e4atagen2026-10-22 12:30 UTC283
- Have the `RoomIdentityProvider` return processing changes when identities
7ff8adafe9e4atagen2026-10-22 12:30 UTC284
  transition to `IdentityState::Verified` too.
7ff8adafe9e4atagen2026-10-22 12:30 UTC285
  ([#4670](https://github.com/matrix-org/matrix-rust-sdk/pull/4670))
7ff8adafe9e4atagen2026-10-22 12:30 UTC286
7ff8adafe9e4atagen2026-10-22 12:30 UTC287
## [0.10.0] - 2025-02-04
7ff8adafe9e4atagen2026-10-22 12:30 UTC288
7ff8adafe9e4atagen2026-10-22 12:30 UTC289
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC290
7ff8adafe9e4atagen2026-10-22 12:30 UTC291
- [**breaking**] `CollectStrategy::DeviceBasedStrategy` is now split into three
7ff8adafe9e4atagen2026-10-22 12:30 UTC292
  separate strategies (`AllDevices`, `ErrorOnVerifiedUserProblem`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC293
  `OnlyTrustedDevices`), to make the behaviour clearer.
7ff8adafe9e4atagen2026-10-22 12:30 UTC294
  ([#4581](https://github.com/matrix-org/matrix-rust-sdk/pull/4581))
7ff8adafe9e4atagen2026-10-22 12:30 UTC295
7ff8adafe9e4atagen2026-10-22 12:30 UTC296
- Accept stable identifier `sender_device_keys` for MSC4147 (Including device
7ff8adafe9e4atagen2026-10-22 12:30 UTC297
  keys with Olm-encrypted events).
7ff8adafe9e4atagen2026-10-22 12:30 UTC298
  ([#4420](https://github.com/matrix-org/matrix-rust-sdk/pull/4420))
7ff8adafe9e4atagen2026-10-22 12:30 UTC299
7ff8adafe9e4atagen2026-10-22 12:30 UTC300
- Room keys are not shared with unsigned dehydrated devices.
7ff8adafe9e4atagen2026-10-22 12:30 UTC301
  ([#4551](https://github.com/matrix-org/matrix-rust-sdk/pull/4551))
7ff8adafe9e4atagen2026-10-22 12:30 UTC302
7ff8adafe9e4atagen2026-10-22 12:30 UTC303
## [0.9.0] - 2024-12-18
7ff8adafe9e4atagen2026-10-22 12:30 UTC304
7ff8adafe9e4atagen2026-10-22 12:30 UTC305
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC306
7ff8adafe9e4atagen2026-10-22 12:30 UTC307
- [**breaking**] Expose new API
7ff8adafe9e4atagen2026-10-22 12:30 UTC308
  `DehydratedDevices::get_dehydrated_device_pickle_key`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC309
  `DehydratedDevices::save_dehydrated_device_pickle_key` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC310
  `DehydratedDevices::delete_dehydrated_device_pickle_key` to store/load the
7ff8adafe9e4atagen2026-10-22 12:30 UTC311
  dehydrated device pickle key. This allows client to automatically rotate
7ff8adafe9e4atagen2026-10-22 12:30 UTC312
  the dehydrated device to avoid one-time-keys exhaustion and to_device
7ff8adafe9e4atagen2026-10-22 12:30 UTC313
  accumulation.
7ff8adafe9e4atagen2026-10-22 12:30 UTC314
  `DehydratedDevices::keys_for_upload` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC315
  `DehydratedDevices::rehydrate` now use the `DehydratedDeviceKey` as parameter
7ff8adafe9e4atagen2026-10-22 12:30 UTC316
  instead of a raw byte array. Use `DehydratedDeviceKey::from_bytes` to migrate.
7ff8adafe9e4atagen2026-10-22 12:30 UTC317
  ([#4383](https://github.com/matrix-org/matrix-rust-sdk/pull/4383))
7ff8adafe9e4atagen2026-10-22 12:30 UTC318
7ff8adafe9e4atagen2026-10-22 12:30 UTC319
- Add extra logging in `OtherUserIdentity::pin_current_master_key` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC320
  `OtherUserIdentity::withdraw_verification`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC321
  ([#4415](https://github.com/matrix-org/matrix-rust-sdk/pull/4415))
7ff8adafe9e4atagen2026-10-22 12:30 UTC322
7ff8adafe9e4atagen2026-10-22 12:30 UTC323
- Added new `UtdCause` variants `WithheldForUnverifiedOrInsecureDevice` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC324
  `WithheldBySender`. These variants provide clearer categorization for expected
7ff8adafe9e4atagen2026-10-22 12:30 UTC325
  Unable-To-Decrypt (UTD) errors when the sender either did not wish to share or
7ff8adafe9e4atagen2026-10-22 12:30 UTC326
  was unable to share the room_key.
7ff8adafe9e4atagen2026-10-22 12:30 UTC327
  ([#4305](https://github.com/matrix-org/matrix-rust-sdk/pull/4305))
7ff8adafe9e4atagen2026-10-22 12:30 UTC328
7ff8adafe9e4atagen2026-10-22 12:30 UTC329
- `UtdCause` has two new variants that replace the existing `HistoricalMessage`:
7ff8adafe9e4atagen2026-10-22 12:30 UTC330
  `HistoricalMessageAndBackupIsDisabled` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC331
  `HistoricalMessageAndDeviceIsUnverified`. These give more detail about what
7ff8adafe9e4atagen2026-10-22 12:30 UTC332
  went wrong and allow us to suggest to users what actions they can take to fix
7ff8adafe9e4atagen2026-10-22 12:30 UTC333
  the problem. See the doc comments on these variants for suggested wording.
7ff8adafe9e4atagen2026-10-22 12:30 UTC334
  ([#4384](https://github.com/matrix-org/matrix-rust-sdk/pull/4384))
7ff8adafe9e4atagen2026-10-22 12:30 UTC335
7ff8adafe9e4atagen2026-10-22 12:30 UTC336
## [0.8.0] - 2024-11-19
7ff8adafe9e4atagen2026-10-22 12:30 UTC337
7ff8adafe9e4atagen2026-10-22 12:30 UTC338
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC339
7ff8adafe9e4atagen2026-10-22 12:30 UTC340
- Pin identity when we withdraw verification.
7ff8adafe9e4atagen2026-10-22 12:30 UTC341
- Expose new method `OlmMachine::room_keys_withheld_received_stream`, to allow
7ff8adafe9e4atagen2026-10-22 12:30 UTC342
  applications to receive notifications about received `m.room_key.withheld`
7ff8adafe9e4atagen2026-10-22 12:30 UTC343
  events.
7ff8adafe9e4atagen2026-10-22 12:30 UTC344
  ([#3660](https://github.com/matrix-org/matrix-rust-sdk/pull/3660)),
7ff8adafe9e4atagen2026-10-22 12:30 UTC345
  ([#3674](https://github.com/matrix-org/matrix-rust-sdk/pull/3674))
7ff8adafe9e4atagen2026-10-22 12:30 UTC346
7ff8adafe9e4atagen2026-10-22 12:30 UTC347
- Expose new method `OlmMachine::clear_crypto_cache()`, with FFI bindings.
7ff8adafe9e4atagen2026-10-22 12:30 UTC348
  ([#3462](https://github.com/matrix-org/matrix-rust-sdk/pull/3462))
7ff8adafe9e4atagen2026-10-22 12:30 UTC349
7ff8adafe9e4atagen2026-10-22 12:30 UTC350
- Expose new method `OlmMachine::upload_device_keys()`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC351
  ([#3457](https://github.com/matrix-org/matrix-rust-sdk/pull/3457))
7ff8adafe9e4atagen2026-10-22 12:30 UTC352
7ff8adafe9e4atagen2026-10-22 12:30 UTC353
- Expose new method `CryptoStore::import_room_keys`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC354
  ([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448))
7ff8adafe9e4atagen2026-10-22 12:30 UTC355
7ff8adafe9e4atagen2026-10-22 12:30 UTC356
- Expose new method `BackupMachine::backup_version`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC357
  ([#3320](https://github.com/matrix-org/matrix-rust-sdk/pull/3320))
7ff8adafe9e4atagen2026-10-22 12:30 UTC358
7ff8adafe9e4atagen2026-10-22 12:30 UTC359
- Add data types to parse the QR code data for the QR code login defined in.
7ff8adafe9e4atagen2026-10-22 12:30 UTC360
  [MSC4108](https://github.com/matrix-org/matrix-spec-proposals/pull/4108)
7ff8adafe9e4atagen2026-10-22 12:30 UTC361
7ff8adafe9e4atagen2026-10-22 12:30 UTC362
- Expose new method `CryptoStore::clear_caches`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC363
  ([#3338](https://github.com/matrix-org/matrix-rust-sdk/pull/3338))
7ff8adafe9e4atagen2026-10-22 12:30 UTC364
7ff8adafe9e4atagen2026-10-22 12:30 UTC365
- Expose new method `OlmMachine::device_creation_time`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC366
  ([#3275](https://github.com/matrix-org/matrix-rust-sdk/pull/3275))
7ff8adafe9e4atagen2026-10-22 12:30 UTC367
7ff8adafe9e4atagen2026-10-22 12:30 UTC368
- Log more details about the Olm session after encryption and decryption.
7ff8adafe9e4atagen2026-10-22 12:30 UTC369
  ([#3242](https://github.com/matrix-org/matrix-rust-sdk/pull/3242))
7ff8adafe9e4atagen2026-10-22 12:30 UTC370
7ff8adafe9e4atagen2026-10-22 12:30 UTC371
- When Olm message decryption fails, report the error code(s) from the failure.
7ff8adafe9e4atagen2026-10-22 12:30 UTC372
  ([#3212](https://github.com/matrix-org/matrix-rust-sdk/pull/3212))
7ff8adafe9e4atagen2026-10-22 12:30 UTC373
7ff8adafe9e4atagen2026-10-22 12:30 UTC374
- Expose new methods `OlmMachine::set_room_settings` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC375
  `OlmMachine::get_room_settings`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC376
  ([#3042](https://github.com/matrix-org/matrix-rust-sdk/pull/3042))
7ff8adafe9e4atagen2026-10-22 12:30 UTC377
7ff8adafe9e4atagen2026-10-22 12:30 UTC378
- Add new properties `session_rotation_period` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC379
  `session_rotation_period_msgs` to `store::RoomSettings`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC380
  ([#3042](https://github.com/matrix-org/matrix-rust-sdk/pull/3042))
7ff8adafe9e4atagen2026-10-22 12:30 UTC381
7ff8adafe9e4atagen2026-10-22 12:30 UTC382
- Fix bug which caused `SecretStorageKey` to incorrectly reject secret storage
7ff8adafe9e4atagen2026-10-22 12:30 UTC383
  keys whose metadata lacked check fields.
7ff8adafe9e4atagen2026-10-22 12:30 UTC384
  ([#3046](https://github.com/matrix-org/matrix-rust-sdk/pull/3046))
7ff8adafe9e4atagen2026-10-22 12:30 UTC385
7ff8adafe9e4atagen2026-10-22 12:30 UTC386
- Add new API `Device::encrypt_event_raw` that allows
7ff8adafe9e4atagen2026-10-22 12:30 UTC387
  to encrypt an event to a specific device.
7ff8adafe9e4atagen2026-10-22 12:30 UTC388
  ([#3091](https://github.com/matrix-org/matrix-rust-sdk/pull/3091))
7ff8adafe9e4atagen2026-10-22 12:30 UTC389
7ff8adafe9e4atagen2026-10-22 12:30 UTC390
- Add new API `store::Store::export_room_keys_stream` that provides room
7ff8adafe9e4atagen2026-10-22 12:30 UTC391
  keys on demand.
7ff8adafe9e4atagen2026-10-22 12:30 UTC392
7ff8adafe9e4atagen2026-10-22 12:30 UTC393
- Include event timestamps on logs from event decryption.
7ff8adafe9e4atagen2026-10-22 12:30 UTC394
  ([#3194](https://github.com/matrix-org/matrix-rust-sdk/pull/3194))
7ff8adafe9e4atagen2026-10-22 12:30 UTC395
7ff8adafe9e4atagen2026-10-22 12:30 UTC396
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC397
7ff8adafe9e4atagen2026-10-22 12:30 UTC398
- Fix [#4424](https://github.com/matrix-org/matrix-rust-sdk/issues/4424) Failed
7ff8adafe9e4atagen2026-10-22 12:30 UTC399
  storage upgrade for "PreviouslyVerifiedButNoLonger". This bug caused errors to
7ff8adafe9e4atagen2026-10-22 12:30 UTC400
  occur when loading crypto information from storage, which typically prevented
7ff8adafe9e4atagen2026-10-22 12:30 UTC401
  apps from starting correctly.
7ff8adafe9e4atagen2026-10-22 12:30 UTC402
  ([#4430](https://github.com/matrix-org/matrix-rust-sdk/pull/4430))
7ff8adafe9e4atagen2026-10-22 12:30 UTC403
7ff8adafe9e4atagen2026-10-22 12:30 UTC404
- Add new method `OlmMachine::try_decrypt_room_event`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC405
  ([#4116](https://github.com/matrix-org/matrix-rust-sdk/pull/4116))
7ff8adafe9e4atagen2026-10-22 12:30 UTC406
7ff8adafe9e4atagen2026-10-22 12:30 UTC407
- Add reason code to
7ff8adafe9e4atagen2026-10-22 12:30 UTC408
  `matrix_sdk_common::deserialized_responses::UnableToDecryptInfo`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC409
  ([#4116](https://github.com/matrix-org/matrix-rust-sdk/pull/4116))
7ff8adafe9e4atagen2026-10-22 12:30 UTC410
7ff8adafe9e4atagen2026-10-22 12:30 UTC411
- [**breaking**] The `UserIdentity` struct has been renamed to
7ff8adafe9e4atagen2026-10-22 12:30 UTC412
  `OtherUserIdentity`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC413
  ([#4036](https://github.com/matrix-org/matrix-rust-sdk/pull/4036]))
7ff8adafe9e4atagen2026-10-22 12:30 UTC414
7ff8adafe9e4atagen2026-10-22 12:30 UTC415
- [**breaking**] The `UserIdentities` enum has been renamed to `UserIdentity`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC416
  ([#4036](https://github.com/matrix-org/matrix-rust-sdk/pull/4036]))
7ff8adafe9e4atagen2026-10-22 12:30 UTC417
7ff8adafe9e4atagen2026-10-22 12:30 UTC418
- Change the withheld code for keys not shared due to the
7ff8adafe9e4atagen2026-10-22 12:30 UTC419
  `IdentityBasedStrategy`, from `m.unauthorised` to `m.unverified`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC420
  ([#3985](https://github.com/matrix-org/matrix-rust-sdk/pull/3985))
7ff8adafe9e4atagen2026-10-22 12:30 UTC421
7ff8adafe9e4atagen2026-10-22 12:30 UTC422
- Improve logging for undecryptable Megolm events.
7ff8adafe9e4atagen2026-10-22 12:30 UTC423
  ([#3989](https://github.com/matrix-org/matrix-rust-sdk/pull/3989))
7ff8adafe9e4atagen2026-10-22 12:30 UTC424
7ff8adafe9e4atagen2026-10-22 12:30 UTC425
- Miscellaneous improvements to logging for verification and `OwnUserIdentity`
7ff8adafe9e4atagen2026-10-22 12:30 UTC426
  updates.
7ff8adafe9e4atagen2026-10-22 12:30 UTC427
  ([#3949](https://github.com/matrix-org/matrix-rust-sdk/pull/3949))
7ff8adafe9e4atagen2026-10-22 12:30 UTC428
7ff8adafe9e4atagen2026-10-22 12:30 UTC429
- Update `SenderData` on existing inbound group sessions when we receive
7ff8adafe9e4atagen2026-10-22 12:30 UTC430
  updates via `/keys/query`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC431
  ([#3849](https://github.com/matrix-org/matrix-rust-sdk/pull/3849))
7ff8adafe9e4atagen2026-10-22 12:30 UTC432
7ff8adafe9e4atagen2026-10-22 12:30 UTC433
- Add message IDs to all outgoing to-device messages encrypted by
7ff8adafe9e4atagen2026-10-22 12:30 UTC434
  `matrix-sdk-crypto`. The `message-ids` feature of `matrix-sdk-crypto` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC435
  `matrix-sdk-base` is now a no-op.
7ff8adafe9e4atagen2026-10-22 12:30 UTC436
  ([#3776](https://github.com/matrix-org/matrix-rust-sdk/pull/3776))
7ff8adafe9e4atagen2026-10-22 12:30 UTC437
7ff8adafe9e4atagen2026-10-22 12:30 UTC438
- Log the content of received `m.room_key.withheld` to-device events.
7ff8adafe9e4atagen2026-10-22 12:30 UTC439
  ([#3591](https://github.com/matrix-org/matrix-rust-sdk/pull/3591))
7ff8adafe9e4atagen2026-10-22 12:30 UTC440
7ff8adafe9e4atagen2026-10-22 12:30 UTC441
- Attempt to decrypt bundled events (reactions and the latest thread reply) if
7ff8adafe9e4atagen2026-10-22 12:30 UTC442
  they are found in the unsigned part of an event.
7ff8adafe9e4atagen2026-10-22 12:30 UTC443
  ([#3468](https://github.com/matrix-org/matrix-rust-sdk/pull/3468))
7ff8adafe9e4atagen2026-10-22 12:30 UTC444
7ff8adafe9e4atagen2026-10-22 12:30 UTC445
- Sign the device keys with the user-identity (i.e. cross-signing keys) if
7ff8adafe9e4atagen2026-10-22 12:30 UTC446
  we're uploading the device keys and if the cross-signing keys are available.
7ff8adafe9e4atagen2026-10-22 12:30 UTC447
  This approach eliminates the need to upload signatures in a separate request,
7ff8adafe9e4atagen2026-10-22 12:30 UTC448
  ensuring that other users/devices will never encounter this device without a
7ff8adafe9e4atagen2026-10-22 12:30 UTC449
  signature from their user identity. Consequently, they will never see the
7ff8adafe9e4atagen2026-10-22 12:30 UTC450
  device as unverified.
7ff8adafe9e4atagen2026-10-22 12:30 UTC451
  ([#3453](https://github.com/matrix-org/matrix-rust-sdk/pull/3453))
7ff8adafe9e4atagen2026-10-22 12:30 UTC452
7ff8adafe9e4atagen2026-10-22 12:30 UTC453
- Avoid emitting entries from `identities_stream_raw` and `devices_stream` when
7ff8adafe9e4atagen2026-10-22 12:30 UTC454
  we receive a `/keys/query` response which shows that no devices changed.
7ff8adafe9e4atagen2026-10-22 12:30 UTC455
  ([#3442](https://github.com/matrix-org/matrix-rust-sdk/pull/3442))
7ff8adafe9e4atagen2026-10-22 12:30 UTC456
7ff8adafe9e4atagen2026-10-22 12:30 UTC457
- Fallback keys are rotated in a time-based manner, instead of waiting for the
7ff8adafe9e4atagen2026-10-22 12:30 UTC458
  server to tell us that a fallback key got used.
7ff8adafe9e4atagen2026-10-22 12:30 UTC459
  ([#3151](https://github.com/matrix-org/matrix-rust-sdk/pull/3151))
7ff8adafe9e4atagen2026-10-22 12:30 UTC460
7ff8adafe9e4atagen2026-10-22 12:30 UTC461
Breaking changes:
7ff8adafe9e4atagen2026-10-22 12:30 UTC462
7ff8adafe9e4atagen2026-10-22 12:30 UTC463
- [**breaking**] `VerificationRequestState::Transitioned` now includes a new
7ff8adafe9e4atagen2026-10-22 12:30 UTC464
  field `other_device_data` of type `DeviceData`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC465
  ([#4153](https://github.com/matrix-org/matrix-rust-sdk/pull/4153))
7ff8adafe9e4atagen2026-10-22 12:30 UTC466
7ff8adafe9e4atagen2026-10-22 12:30 UTC467
- [**breaking**] `OlmMachine::decrypt_room_event` now returns a
7ff8adafe9e4atagen2026-10-22 12:30 UTC468
  `DecryptedRoomEvent` type, instead of the more generic `TimelineEvent` type.
7ff8adafe9e4atagen2026-10-22 12:30 UTC469
7ff8adafe9e4atagen2026-10-22 12:30 UTC470
- [**breaking**] **NOTE**: this version causes changes to the format of the
7ff8adafe9e4atagen2026-10-22 12:30 UTC471
  serialised data in the CryptoStore, meaning that, once upgraded, it will not
7ff8adafe9e4atagen2026-10-22 12:30 UTC472
  be possible to roll back applications to earlier versions without breaking
7ff8adafe9e4atagen2026-10-22 12:30 UTC473
  user sessions.
7ff8adafe9e4atagen2026-10-22 12:30 UTC474
7ff8adafe9e4atagen2026-10-22 12:30 UTC475
- [**breaking**] Renamed `VerificationLevel::PreviouslyVerified` to
7ff8adafe9e4atagen2026-10-22 12:30 UTC476
  `VerificationLevel::VerificationViolation`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC477
7ff8adafe9e4atagen2026-10-22 12:30 UTC478
- [**breaking**] `OlmMachine::decrypt_room_event` now takes a
7ff8adafe9e4atagen2026-10-22 12:30 UTC479
  `DecryptionSettings` argument, which includes a `TrustRequirement` indicating
7ff8adafe9e4atagen2026-10-22 12:30 UTC480
  the required trust level for the sending device. When it is called with
7ff8adafe9e4atagen2026-10-22 12:30 UTC481
  `TrustRequirement` other than `TrustRequirement::Unverified`, it may return
7ff8adafe9e4atagen2026-10-22 12:30 UTC482
  the new `MegolmError::SenderIdentityNotTrusted` variant if the sending device
7ff8adafe9e4atagen2026-10-22 12:30 UTC483
  does not satisfy the required trust level.
7ff8adafe9e4atagen2026-10-22 12:30 UTC484
  ([#3899](https://github.com/matrix-org/matrix-rust-sdk/pull/3899))
7ff8adafe9e4atagen2026-10-22 12:30 UTC485
7ff8adafe9e4atagen2026-10-22 12:30 UTC486
- [**breaking**] Change the structure of the `SenderData` enum to separate
7ff8adafe9e4atagen2026-10-22 12:30 UTC487
  variants for previously-verified, unverified and verified.
7ff8adafe9e4atagen2026-10-22 12:30 UTC488
  ([#3877](https://github.com/matrix-org/matrix-rust-sdk/pull/3877))
7ff8adafe9e4atagen2026-10-22 12:30 UTC489
7ff8adafe9e4atagen2026-10-22 12:30 UTC490
- [**breaking**] Where `EncryptionInfo` is returned it may include the new
7ff8adafe9e4atagen2026-10-22 12:30 UTC491
  `PreviouslyVerified` variant of `VerificationLevel` to indicate that the user
7ff8adafe9e4atagen2026-10-22 12:30 UTC492
  was previously verified and is no longer verified.
7ff8adafe9e4atagen2026-10-22 12:30 UTC493
  ([#3877](https://github.com/matrix-org/matrix-rust-sdk/pull/3877))
7ff8adafe9e4atagen2026-10-22 12:30 UTC494
7ff8adafe9e4atagen2026-10-22 12:30 UTC495
- [**breaking**] Expose new methods `OwnUserIdentity::was_previously_verified`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC496
  `OwnUserIdentity::withdraw_verification`, and
7ff8adafe9e4atagen2026-10-22 12:30 UTC497
  `OwnUserIdentity::has_verification_violation`, which track whether our own
7ff8adafe9e4atagen2026-10-22 12:30 UTC498
  identity was previously verified.
7ff8adafe9e4atagen2026-10-22 12:30 UTC499
  ([#3846](https://github.com/matrix-org/matrix-rust-sdk/pull/3846))
7ff8adafe9e4atagen2026-10-22 12:30 UTC500
7ff8adafe9e4atagen2026-10-22 12:30 UTC501
- [**breaking**] Add a new `error_on_verified_user_problem` property to
7ff8adafe9e4atagen2026-10-22 12:30 UTC502
  `CollectStrategy::DeviceBasedStrategy`, which, when set, causes
7ff8adafe9e4atagen2026-10-22 12:30 UTC503
  `OlmMachine::share_room_key` to fail with an error if any verified users on
7ff8adafe9e4atagen2026-10-22 12:30 UTC504
  the recipient list have unsigned devices, or are no longer verified.
7ff8adafe9e4atagen2026-10-22 12:30 UTC505
7ff8adafe9e4atagen2026-10-22 12:30 UTC506
  When `CallectStrategy::IdentityBasedStrategy` is used,
7ff8adafe9e4atagen2026-10-22 12:30 UTC507
  `OlmMachine::share_room_key` will fail with an error if any verified users on
7ff8adafe9e4atagen2026-10-22 12:30 UTC508
  the recipient list are no longer verified, or if our own device is not
7ff8adafe9e4atagen2026-10-22 12:30 UTC509
  properly cross-signed.
7ff8adafe9e4atagen2026-10-22 12:30 UTC510
7ff8adafe9e4atagen2026-10-22 12:30 UTC511
  Also remove `CollectStrategy::new_device_based`: callers should construct a
7ff8adafe9e4atagen2026-10-22 12:30 UTC512
  `CollectStrategy::DeviceBasedStrategy` directly.
7ff8adafe9e4atagen2026-10-22 12:30 UTC513
7ff8adafe9e4atagen2026-10-22 12:30 UTC514
  `EncryptionSettings::new` now takes a `CollectStrategy` argument, instead of a
7ff8adafe9e4atagen2026-10-22 12:30 UTC515
  list of booleans.
7ff8adafe9e4atagen2026-10-22 12:30 UTC516
  ([#3810](https://github.com/matrix-org/matrix-rust-sdk/pull/3810))
7ff8adafe9e4atagen2026-10-22 12:30 UTC517
  ([#3816](https://github.com/matrix-org/matrix-rust-sdk/pull/3816))
7ff8adafe9e4atagen2026-10-22 12:30 UTC518
  ([#3896](https://github.com/matrix-org/matrix-rust-sdk/pull/3896))
7ff8adafe9e4atagen2026-10-22 12:30 UTC519
7ff8adafe9e4atagen2026-10-22 12:30 UTC520
- [**breaking**] Remove the method `OlmMachine::clear_crypto_cache()`, crypto
7ff8adafe9e4atagen2026-10-22 12:30 UTC521
  stores are not supposed to have any caches anymore.
7ff8adafe9e4atagen2026-10-22 12:30 UTC522
7ff8adafe9e4atagen2026-10-22 12:30 UTC523
- [**breaking**] Add a `custom_account` argument to the
7ff8adafe9e4atagen2026-10-22 12:30 UTC524
  `OlmMachine::with_store()` method, this allows users to learn their identity
7ff8adafe9e4atagen2026-10-22 12:30 UTC525
  keys before they get access to the user and device ID.
7ff8adafe9e4atagen2026-10-22 12:30 UTC526
  ([#3451](https://github.com/matrix-org/matrix-rust-sdk/pull/3451))
7ff8adafe9e4atagen2026-10-22 12:30 UTC527
7ff8adafe9e4atagen2026-10-22 12:30 UTC528
- [**breaking**] Add a `backup_version` argument to `CryptoStore`'s
7ff8adafe9e4atagen2026-10-22 12:30 UTC529
  `inbound_group_sessions_for_backup`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC530
  `mark_inbound_group_sessions_as_backed_up` and `inbound_group_session_counts`
7ff8adafe9e4atagen2026-10-22 12:30 UTC531
  methods. ([#3253](https://github.com/matrix-org/matrix-rust-sdk/pull/3253))
7ff8adafe9e4atagen2026-10-22 12:30 UTC532
7ff8adafe9e4atagen2026-10-22 12:30 UTC533
- [**breaking**] Rename the `OlmMachine::invalidate_group_session` method to
7ff8adafe9e4atagen2026-10-22 12:30 UTC534
  `OlmMachine::discard_room_key`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC535
7ff8adafe9e4atagen2026-10-22 12:30 UTC536
- [**breaking**] Move `OlmMachine::export_room_keys` to
7ff8adafe9e4atagen2026-10-22 12:30 UTC537
  `matrix_sdk_crypto::store::Store`. (Call it with
7ff8adafe9e4atagen2026-10-22 12:30 UTC538
  `olm_machine.store().export_room_keys(...)`.)
7ff8adafe9e4atagen2026-10-22 12:30 UTC539
7ff8adafe9e4atagen2026-10-22 12:30 UTC540
- [**breaking**] Add new `dehydrated` property to
7ff8adafe9e4atagen2026-10-22 12:30 UTC541
  `olm::account::PickledAccount`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC542
  ([#3164](https://github.com/matrix-org/matrix-rust-sdk/pull/3164))
7ff8adafe9e4atagen2026-10-22 12:30 UTC543
7ff8adafe9e4atagen2026-10-22 12:30 UTC544
- [**breaking**] Remove deprecated `OlmMachine::import_room_keys`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC545
  ([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448))
7ff8adafe9e4atagen2026-10-22 12:30 UTC546
7ff8adafe9e4atagen2026-10-22 12:30 UTC547
- [**breaking**] Add the `SasState::Created` variant to differentiate the state
7ff8adafe9e4atagen2026-10-22 12:30 UTC548
  between the party that sent the verification start and the party that received
7ff8adafe9e4atagen2026-10-22 12:30 UTC549
  it.
7ff8adafe9e4atagen2026-10-22 12:30 UTC550
7ff8adafe9e4atagen2026-10-22 12:30 UTC551
- [**breaking**] Deprecate `BackupMachine::import_backed_up_room_keys`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC552
  ([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448))
7ff8adafe9e4atagen2026-10-22 12:30 UTC553
7ff8adafe9e4atagen2026-10-22 12:30 UTC554
## 0.7.2
7ff8adafe9e4atagen2026-10-22 12:30 UTC555
7ff8adafe9e4atagen2026-10-22 12:30 UTC556
### Security fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC557
7ff8adafe9e4atagen2026-10-22 12:30 UTC558
- Fix `UserIdentity::is_verified` to take into account our own identity
7ff8adafe9e4atagen2026-10-22 12:30 UTC559
  [#d8d9dae](https://github.com/matrix-org/matrix-rust-sdk/commit/d8d9dae9d77bee48a2591b9aad9bd2fa466354cc)
7ff8adafe9e4atagen2026-10-22 12:30 UTC560
  (Moderate,
7ff8adafe9e4atagen2026-10-22 12:30 UTC561
  [GHSA-4qg4-cvh2-crgg](https://github.com/matrix-org/matrix-rust-sdk/security/advisories/GHSA-4qg4-cvh2-crgg)).
7ff8adafe9e4atagen2026-10-22 12:30 UTC562
7ff8adafe9e4atagen2026-10-22 12:30 UTC563
## 0.7.1
7ff8adafe9e4atagen2026-10-22 12:30 UTC564
7ff8adafe9e4atagen2026-10-22 12:30 UTC565
### Security fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC566
7ff8adafe9e4atagen2026-10-22 12:30 UTC567
- Don't log the private part of the backup key, introduced in
7ff8adafe9e4atagen2026-10-22 12:30 UTC568
  [#71136e4](https://github.com/matrix-org/matrix-rust-sdk/commit/71136e44c03c79f80d6d1a2446673bc4d53a2067).
7ff8adafe9e4atagen2026-10-22 12:30 UTC569
7ff8adafe9e4atagen2026-10-22 12:30 UTC570
## 0.7.0
7ff8adafe9e4atagen2026-10-22 12:30 UTC571
7ff8adafe9e4atagen2026-10-22 12:30 UTC572
- Add method to mark a list of inbound group sessions as backed up:
7ff8adafe9e4atagen2026-10-22 12:30 UTC573
  `CryptoStore::mark_inbound_group_sessions_as_backed_up`
7ff8adafe9e4atagen2026-10-22 12:30 UTC574
7ff8adafe9e4atagen2026-10-22 12:30 UTC575
- `OlmMachine::toggle_room_key_forwarding` is replaced by two separate methods:
7ff8adafe9e4atagen2026-10-22 12:30 UTC576
7ff8adafe9e4atagen2026-10-22 12:30 UTC577
  - `OlmMachine::set_room_key_requests_enabled`, which controls whether
7ff8adafe9e4atagen2026-10-22 12:30 UTC578
    outgoing room key requests are enabled, and:
7ff8adafe9e4atagen2026-10-22 12:30 UTC579
7ff8adafe9e4atagen2026-10-22 12:30 UTC580
  - `OlmMachine::set_room_key_forwarding_enabled`, which controls whether we
7ff8adafe9e4atagen2026-10-22 12:30 UTC581
    automatically reply to incoming room key requests.
7ff8adafe9e4atagen2026-10-22 12:30 UTC582
7ff8adafe9e4atagen2026-10-22 12:30 UTC583
  `OlmMachine::is_room_key_forwarding_enabled` is updated to return the setting
7ff8adafe9e4atagen2026-10-22 12:30 UTC584
  of `OlmMachine::set_room_key_forwarding_enabled`, while
7ff8adafe9e4atagen2026-10-22 12:30 UTC585
  `OlmMachine::are_room_key_requests_enabled` is added to return the setting of
7ff8adafe9e4atagen2026-10-22 12:30 UTC586
  `OlmMachine::set_room_key_requests_enabled`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC587
7ff8adafe9e4atagen2026-10-22 12:30 UTC588
  ([#2902](https://github.com/matrix-org/matrix-rust-sdk/pull/2902))
7ff8adafe9e4atagen2026-10-22 12:30 UTC589
7ff8adafe9e4atagen2026-10-22 12:30 UTC590
- Improve performance of `share_room_key`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC591
  ([#2862](https://github.com/matrix-org/matrix-rust-sdk/pull/2862))
7ff8adafe9e4atagen2026-10-22 12:30 UTC592
7ff8adafe9e4atagen2026-10-22 12:30 UTC593
- `get_missing_sessions`: Don't block waiting for `/keys/query` requests on
7ff8adafe9e4atagen2026-10-22 12:30 UTC594
  blacklisted servers, and improve performance.
7ff8adafe9e4atagen2026-10-22 12:30 UTC595
  ([#2845](https://github.com/matrix-org/matrix-rust-sdk/pull/2845))
7ff8adafe9e4atagen2026-10-22 12:30 UTC596
7ff8adafe9e4atagen2026-10-22 12:30 UTC597
- Generalize `olm::Session::encrypt` to accept any value implementing
7ff8adafe9e4atagen2026-10-22 12:30 UTC598
  `Serialize` for the `value` parameter, instead of specifically
7ff8adafe9e4atagen2026-10-22 12:30 UTC599
  `serde_json::Value`. Note that references to `Serialize`-implementing types
7ff8adafe9e4atagen2026-10-22 12:30 UTC600
  themselves implement `Serialize`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC601
7ff8adafe9e4atagen2026-10-22 12:30 UTC602
- Change the argument to `OlmMachine::receive_sync_changes` to be an
7ff8adafe9e4atagen2026-10-22 12:30 UTC603
  `EncryptionSyncChanges` struct packing all the arguments instead of many
7ff8adafe9e4atagen2026-10-22 12:30 UTC604
  single arguments. The new `next_batch_token` field there should be the
7ff8adafe9e4atagen2026-10-22 12:30 UTC605
  `next_batch` value read from the latest sync response.
7ff8adafe9e4atagen2026-10-22 12:30 UTC606
7ff8adafe9e4atagen2026-10-22 12:30 UTC607
- Handle missing devices in `/keys/claim` responses.
7ff8adafe9e4atagen2026-10-22 12:30 UTC608
  ([#2805](https://github.com/matrix-org/matrix-rust-sdk/pull/2805))
7ff8adafe9e4atagen2026-10-22 12:30 UTC609
7ff8adafe9e4atagen2026-10-22 12:30 UTC610
- Add the higher level decryption method `decrypt_session_data` to the
7ff8adafe9e4atagen2026-10-22 12:30 UTC611
  `BackupDecryptionKey` type.
7ff8adafe9e4atagen2026-10-22 12:30 UTC612
7ff8adafe9e4atagen2026-10-22 12:30 UTC613
- Add a higher level method to create signatures for the backup info. The
7ff8adafe9e4atagen2026-10-22 12:30 UTC614
  `OlmMachine::backup_machine()::sign_backup()` method can be used to add
7ff8adafe9e4atagen2026-10-22 12:30 UTC615
  signatures to a `RoomKeyBackupInfo`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC616
7ff8adafe9e4atagen2026-10-22 12:30 UTC617
- Remove the `backups_v1` feature, backups support is now enabled by default.
7ff8adafe9e4atagen2026-10-22 12:30 UTC618
- Use the `Signatures` type as the return value for the
7ff8adafe9e4atagen2026-10-22 12:30 UTC619
  `MegolmV1BackupKey::signatures()` method.
7ff8adafe9e4atagen2026-10-22 12:30 UTC620
7ff8adafe9e4atagen2026-10-22 12:30 UTC621
- Add two new methods to import room keys,
7ff8adafe9e4atagen2026-10-22 12:30 UTC622
  `OlmMachine::store()::import_exported_room_keys()` for file exports and
7ff8adafe9e4atagen2026-10-22 12:30 UTC623
  `OlmMachine::backup_machine()::import_backed_up_room_keys()` for backups. The
7ff8adafe9e4atagen2026-10-22 12:30 UTC624
  `OlmMachine::import_room_keys()` method is now deprecated.
7ff8adafe9e4atagen2026-10-22 12:30 UTC625
7ff8adafe9e4atagen2026-10-22 12:30 UTC626
- The parameter order of `OlmMachine::encrypt_room_event_raw` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC627
  `OutboundGroupSession::encrypt` has changed, `content` is now last
7ff8adafe9e4atagen2026-10-22 12:30 UTC628
  - The parameter type of `content` has also changed, from `serde_json::Value`
7ff8adafe9e4atagen2026-10-22 12:30 UTC629
    to `&Raw<AnyMessageLikeEventContent>`
7ff8adafe9e4atagen2026-10-22 12:30 UTC630
7ff8adafe9e4atagen2026-10-22 12:30 UTC631
- Change the return value of `bootstrap_cross_signing` so it returns an extra
7ff8adafe9e4atagen2026-10-22 12:30 UTC632
  keys upload request. The three requests must be sent in the order they
7ff8adafe9e4atagen2026-10-22 12:30 UTC633
  appear in the return tuple.
7ff8adafe9e4atagen2026-10-22 12:30 UTC634
7ff8adafe9e4atagen2026-10-22 12:30 UTC635
- Stop logging large quantities of data about the `Store` during olm
7ff8adafe9e4atagen2026-10-22 12:30 UTC636
  decryption.
7ff8adafe9e4atagen2026-10-22 12:30 UTC637
7ff8adafe9e4atagen2026-10-22 12:30 UTC638
- Remove spurious "Unknown outgoing secret request" warning which was logged
7ff8adafe9e4atagen2026-10-22 12:30 UTC639
  for every outgoing secret request.
7ff8adafe9e4atagen2026-10-22 12:30 UTC640
7ff8adafe9e4atagen2026-10-22 12:30 UTC641
- Clean up the logging of to-device messages in `share_room_key`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC642
- Expose new `OlmMachine::get_room_event_encryption_info` method.
7ff8adafe9e4atagen2026-10-22 12:30 UTC643
- Add support for secret storage.
7ff8adafe9e4atagen2026-10-22 12:30 UTC644
- Add initial support for MSC3814 - dehydrated devices.
7ff8adafe9e4atagen2026-10-22 12:30 UTC645
- Mark our `OwnUserIdentity` as verified if we successfully import the matching
7ff8adafe9e4atagen2026-10-22 12:30 UTC646
  private keys.
7ff8adafe9e4atagen2026-10-22 12:30 UTC647
7ff8adafe9e4atagen2026-10-22 12:30 UTC648
- The `OlmMachine::export_cross_signing_keys()` method now returns a `Result`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC649
  This removes an `unwrap()` from the codebase.
7ff8adafe9e4atagen2026-10-22 12:30 UTC650
7ff8adafe9e4atagen2026-10-22 12:30 UTC651
- Add support for the `hkdf-hmac-sha256.v2` SAS message authentication code.
7ff8adafe9e4atagen2026-10-22 12:30 UTC652
- Ensure that the correct short authentication strings are used when accepting a
7ff8adafe9e4atagen2026-10-22 12:30 UTC653
  SAS verification with the `Sas::accept()` method.
7ff8adafe9e4atagen2026-10-22 12:30 UTC654
7ff8adafe9e4atagen2026-10-22 12:30 UTC655
- Add a new optional `message-ids` feature which adds a unique ID to the content
7ff8adafe9e4atagen2026-10-22 12:30 UTC656
  of `m.room.encrypted` event contents which get sent out.
7ff8adafe9e4atagen2026-10-22 12:30 UTC657
7ff8adafe9e4atagen2026-10-22 12:30 UTC658
- Disable the automatic-key-forwarding feature by default.
7ff8adafe9e4atagen2026-10-22 12:30 UTC659
- Add a new variant to the `VerificationRequestState` enum called
7ff8adafe9e4atagen2026-10-22 12:30 UTC660
  `Transitioned`. This enum variant is used when a `VerificationRequest`
7ff8adafe9e4atagen2026-10-22 12:30 UTC661
  transitions into a concrete `Verification` object. The concrete `Verification`
7ff8adafe9e4atagen2026-10-22 12:30 UTC662
  object is given as associated data in the `Transitioned` enum variant.
7ff8adafe9e4atagen2026-10-22 12:30 UTC663
7ff8adafe9e4atagen2026-10-22 12:30 UTC664
- Replace the libolm backup encryption code with a native Rust version. This
7ff8adafe9e4atagen2026-10-22 12:30 UTC665
  adds WASM support to the backups_v1 feature.
7ff8adafe9e4atagen2026-10-22 12:30 UTC666
7ff8adafe9e4atagen2026-10-22 12:30 UTC667
- Add new API `store::Store::room_keys_received_stream` to provide
7ff8adafe9e4atagen2026-10-22 12:30 UTC668
  updates of room keys being received.
7ff8adafe9e4atagen2026-10-22 12:30 UTC669
7ff8adafe9e4atagen2026-10-22 12:30 UTC670
- Add new method `identities::device::Device::first_time_seen_ts`
7ff8adafe9e4atagen2026-10-22 12:30 UTC671
  that allows to get a local timestamp of when the device was first seen by
7ff8adafe9e4atagen2026-10-22 12:30 UTC672
  the sdk (in seconds since epoch).
7ff8adafe9e4atagen2026-10-22 12:30 UTC673
7ff8adafe9e4atagen2026-10-22 12:30 UTC674
- When rejecting a key-verification request over to-device messages, send the
7ff8adafe9e4atagen2026-10-22 12:30 UTC675
  `m.key.verification.cancel` to the device that made the request, rather than
7ff8adafe9e4atagen2026-10-22 12:30 UTC676
  broadcasting to all devices.
7ff8adafe9e4atagen2026-10-22 12:30 UTC677
7ff8adafe9e4atagen2026-10-22 12:30 UTC678
- Expose `VerificationRequest::time_remaining`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC679
- For verification-via-emojis, return the word "Aeroplane" rather than
7ff8adafe9e4atagen2026-10-22 12:30 UTC680
  "Airplane", for consistency with the Matrix spec.
7ff8adafe9e4atagen2026-10-22 12:30 UTC681
7ff8adafe9e4atagen2026-10-22 12:30 UTC682
- Fix handling of SAS verification start events once we have shown a QR code.
7ff8adafe9e4atagen2026-10-22 12:30 UTC683
- Fix a bug which could cause generated one-time-keys not to be persisted.
7ff8adafe9e4atagen2026-10-22 12:30 UTC684
- Fix parsing error for `POST /_matrix/client/v3/keys/signatures/upload`
7ff8adafe9e4atagen2026-10-22 12:30 UTC685
  responses generated by Synapse.
7ff8adafe9e4atagen2026-10-22 12:30 UTC686
7ff8adafe9e4atagen2026-10-22 12:30 UTC687
- Add new API `OlmMachine::query_keys_for_users` for generating out-of-band key
7ff8adafe9e4atagen2026-10-22 12:30 UTC688
  queries.
7ff8adafe9e4atagen2026-10-22 12:30 UTC689
7ff8adafe9e4atagen2026-10-22 12:30 UTC690
- Rename "recovery key" to "backup decryption key" to avoid confusion with the
7ff8adafe9e4atagen2026-10-22 12:30 UTC691
  secret-storage key which is also known as a recovery key.
7ff8adafe9e4atagen2026-10-22 12:30 UTC692
7ff8adafe9e4atagen2026-10-22 12:30 UTC693
  This affects the `matrix_sdk_crypto::store::RecoveryKey` struct itself (now
7ff8adafe9e4atagen2026-10-22 12:30 UTC694
  renamed to `BackupDecryptionKey`, as well as
7ff8adafe9e4atagen2026-10-22 12:30 UTC695
  `BackupMachine::save_recovery_key` (now `save_decryption_key`).
7ff8adafe9e4atagen2026-10-22 12:30 UTC696
7ff8adafe9e4atagen2026-10-22 12:30 UTC697
- Change the returned success value type of `BackupMachine::backup` from
7ff8adafe9e4atagen2026-10-22 12:30 UTC698
  `OutgoingRequest` to `(OwnedTransactionId, KeysBackupRequest)`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC699
7ff8adafe9e4atagen2026-10-22 12:30 UTC700
[https-github-com-matrix-org-matrix-rust-sdk-pull-5980]: https://github.com/matrix-org/matrix-rust-sdk/pull/5980