Commit Graph

334 Commits

Author SHA1 Message Date
multi prise fa7fd5df42 Remove unusual import 2025-09-24 12:35:17 +02:00
multi prise adc8276162 Add key opening logic to the media store 2025-09-24 12:35:17 +02:00
multi prise abecb33e34 Lint code 2025-09-24 12:35:17 +02:00
multi prise b26ce417f0 Add comments documenting the new structure 2025-09-24 12:35:17 +02:00
multi prise 5a1bd54bb1 Implement use of Zeroizing struct for string 2025-09-24 12:35:17 +02:00
multi prise 0d0e2aa472 Add ZeroiseOnDrop trait to secret and make the key a Box 2025-09-24 12:35:17 +02:00
multi prise 88ed0afcb3 Replace missing line 2025-09-24 12:35:17 +02:00
multi prise 9938ab8b1f Reimplement previous tests for the store and on top of the one testing the opening with a key 2025-09-24 12:35:17 +02:00
multi prise eed7384934 Remove some superfluous change 2025-09-24 12:35:17 +02:00
multi prise c51536a054 reformat 2025-09-24 12:35:17 +02:00
multi prise 6099928b40 Remove conditional logic for running tests 2025-09-24 12:35:17 +02:00
multi prise fac1f295b2 Correct wrong borrow 2025-09-24 12:35:17 +02:00
multi prise 24d02a72e3 implement zeroizing of secrets after use 2025-09-24 12:35:17 +02:00
multi prise 2a073043fd Revert "Use of lifetime in order to not clone/copy the data"
This reverts commit 009ee3a0e5fdff1332aaf0b1e62ab2577d728b82.
2025-09-24 12:35:17 +02:00
multi prise 8e759befd3 Refactorize tests config to correspond with the new api 2025-09-24 12:35:17 +02:00
multi prise 9faffa5b10 Temporary comment insecure function 2025-09-24 12:35:17 +02:00
multi prise 75b8c9fe93 Use of lifetime in order to not clone/copy the data 2025-09-24 12:35:17 +02:00
multi prise 004d98230c Uncomment the config directives and allows test to run faster by usinf an insecure export function 2025-09-24 12:35:17 +02:00
multi prise eb37a0d2e1 Update some expect text to make sure they reflect the use of secret instead of a only a key to encrypt a store 2025-09-24 12:35:17 +02:00
multi prise 8a0e61e95b correct comment on the state store file 2025-09-24 12:35:17 +02:00
multi prise a2e2765298 correct comment on the crypto store file 2025-09-24 12:35:17 +02:00
multi prise 6e1e0981b1 remove typo 2025-09-24 12:35:17 +02:00
multi prise 5d169ae765 Comment the use 2025-09-24 12:35:17 +02:00
multi prise 34dd7ea3cd Revert get_or_create_store_cypher to use 2025-09-24 12:35:17 +02:00
multi prise 4930c589a8 Refactorize SqliteStoreConfig::key and SqliteStoreConfig::passphrase method 2025-09-24 12:35:17 +02:00
multi prise f6d2e73cab More reformarting of files 2025-09-24 12:35:17 +02:00
multi prise 2bd5ec30d1 Correct some tests 2025-09-24 12:35:17 +02:00
multi prise 425b502977 Format files 2025-09-24 12:35:17 +02:00
multi prise 0dfecd78d6 Updated the store encryption to use a enum Secret instead of passphrase 2025-09-24 12:35:17 +02:00
multi prise 72bb452b5b Remove all passphrase mention 2025-09-24 12:35:17 +02:00
multi prise c17dbf9ebe Replace the passphrase logic with a key logic in the implementation of encrypted store 2025-09-24 12:35:17 +02:00
multi prise 5fd7c9e179 Add the key logic to the SqliteStoreConfig struct 2025-09-24 12:35:17 +02:00
Benjamin Bouvier bf4a46e8de chore: rename a few badly named variables in the sql event cache store 2025-09-22 11:20:49 +02:00
Ivan Enderlin 5ccbc1c378 fix(sqlite): Empty the cache after the introduction of TimelineEvent::timestamp.
After the merge of
https://github.com/matrix-org/matrix-rust-sdk/pull/5648, we want
all events to get a `TimelineEvent::timestamp` value (extracted from
`origin_server_ts`).

To accomplish that, we are emptying the event cache. New synced events
will be built correctly, with a valid `TimelineEvent::timestamp`,
allowing a clear, stable situation.
2025-09-12 15:06:46 +02:00
Shrey Patel c2bc465c06 feat(base): Add get_room_events to EventCacheStore trait and impls. 2025-09-12 12:59:22 +02:00
Kévin Commaille 90eb403c18 sqlite: Drop media table from event cache store
Since the media store was split into a separate database.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-09-11 11:43:04 +01:00
dragonfly1033 2afbdfae0b Split media store from event cache store. (#5568)
This PR is a start to the process of splitting the media store from the
event cache store. #5410

It contains:
* Split `MediaStore` trait from `EventCacheStore`. 
* Rename `EventCacheStoreMedia` to `MediaStoreInner`. 
* Move relevant tests into `MediaStoreIntegrationTests`.

This will be done over 3 PR's (reviewing 1, 2, 3 then merging 3 into 2
into 1).

A reminder comment for my own sanity:
This PR will not pass tests until after merging.

Current state of this PR:
- [x] Step 1 reviewed #5568
- [x] Step 2 reviewed #5569 
- [x] Step 3 reviewed #5571 
- [x] Step 3 merged into Step 2
- [x] Step 2 merged into Step 1
- [ ] Add changes to changelog.
- [ ] Ready to merge 🎉 

Note, may also want to: 
* Re-organize file structure
* Split/refactor benchmarks namely `benchmarks/benches/event_cache.rs`

<!-- description of the changes in this PR -->

- [ ] Public API changes documented in changelogs (optional)

<!-- Sign-off, if not part of the commits -->
<!-- See CONTRIBUTING.md if you don't know what this is -->
Signed-off-by: Shrey Patel shreyp@element.io

---------

Co-authored-by: Shrey Patel <shreyp@element.io>
2025-09-10 12:03:02 +02:00
Benjamin Bouvier 4adbb4aa88 feat(sdk): add support for persisting the thread subscription catchup tokens 2025-09-02 14:57:49 +02:00
multisme ea59bc8955 Implement querying inboundgroupsessions by room_id (#5534)
History sharing: improve efficiency of building key bundle

Signed-off-by: multi
[multiestunhappydev@gmail.com](mailto:multiestunhappydev@gmail.com)

Partially Implement
https://github.com/matrix-org/matrix-rust-sdk/issues/5513

---------

Signed-off-by: multisme <korokoko.toi@gmail.com>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
2025-09-02 12:07:07 +01:00
Damir Jelić 20cd0bedfa chore: Fix a clippy warning about a useless conversion 2025-09-01 16:33:10 +02:00
Benjamin Bouvier 9f22f550bf refactor(sdk): avoid duplicating the comparison of bumpstamps 2025-09-01 10:38:34 +02:00
Benjamin Bouvier 7a762035f1 feat(sdk): store the thread subscription bumpstamp and implement the correct upsert semantics 2025-09-01 10:38:34 +02:00
Benjamin Bouvier 8c0a918e6e refactor(sdk): introduce a lightweight ThreadSubscription for external consumers, and rename previous one to StoredThreadSubscription
External consumers are likely not interested about unsubscriptions and
the bump stamp values themselves, so let's not expose these to them.
2025-09-01 10:38:34 +02:00
Benjamin Bouvier 33c317e6d2 refactor(sdk): put the subscription status + bumpstamp back into the stored thread subscription 2025-09-01 10:38:34 +02:00
Damir Jelić 527d001010 fix: Only report duplicate one-time key errors once
Since the server will reject any duplicate one-time keys forever,
clients which encounter such an error will spam sentry with such
reports.

This patch ensures that we only send the sentry report once.
2025-08-28 12:48:30 +02:00
Benjamin Bouvier d66733052a feat(event cache): add indexes for finding related events 2025-08-26 16:25:56 +02:00
multisme a66b2c5123 feat(test): add a test utils crate to make log initialization possible everywhere
This PR allows `init_tracing_for_test` to be called by any other crate in the sdk

Signed-off-by: multi [multiestunhappydev@gmail.com](mailto:multiestunhappydev@gmail.com)
2025-08-14 05:24:03 +00:00
Damir Jelić 139673810f Remember the public Curve25519 key of the sender of the historic room key bundle 2025-08-08 09:19:19 +02:00
Benjamin Bouvier 0cdec9d912 refactor(threads): flatten the ThreadStatus enum 2025-08-06 15:28:43 +02:00
Benjamin Bouvier d180d49c07 refactor(threads): do not store the unsubscribed state in the DB 2025-08-06 15:28:43 +02:00