Ivan Enderlin
073fb45580
feat(crypto-nodejs): Define Node.js versions policy.
...
We now support only “current”, “active” or “maintenance” versions
according to https://nodejs.org/en/about/releases/ , which are
compatible with NAPI v6.
2022-06-14 16:05:01 +02:00
Ivan Enderlin
3833d35348
chore(crypto-nodejs): Drop Node.js v12.17.
...
There is a segfault with `napi-rs` and Node.js in v12.17. It's an old
version, it may be fair to drop its support for now. Let's see if
people would need it in the future, we may work on `napi-rs` to fix
this bug in case it's really necessary.
2022-06-14 16:05:01 +02:00
Ivan Enderlin
83b730d1c8
chore(crypto-nodejs): Make the code compatible with Node.js < 18.
2022-06-14 16:05:01 +02:00
Ivan Enderlin
6477cc5072
feat(crypto-nodejs): Add store_path and store_passphrase to the OlmMachine constructor.
...
This patch adds the `store_path` and the `store_passphrase` arguments
to the `OlmMachine` constructor to use a `CryptoStore` instead of
having an in-memory Olm machine.
2022-06-14 16:05:01 +02:00
Jonas Platte
87639a4c4c
fix(appservice): Remove erroneous ? operator
2022-06-14 15:20:24 +02:00
Amanda Graven
de04aba5b3
fix(appservice): Remove erroneous ? operator
2022-06-14 15:02:55 +02:00
Amanda Graven
5243091bec
test(appservice): Virtual client membership
...
Test that virtual clients get assigned the correct membership to rooms
when processing received transactions.
2022-06-14 14:39:54 +02:00
Amanda Graven
1d746f1ef1
fix(appservice): Virtual client non-membership
...
Don't assume virtual client membership is join if none is stored, since
that leads to a client being told it's joined in rooms it has no
membership of. The main appservice client still assumes it's joined
every room it receives transaction events about.
2022-06-14 14:39:54 +02:00
Damir Jelić
38d771cca6
ci(coverage): Set the correct out format for CI coverage reports
2022-06-14 12:01:03 +02:00
Jonas Platte
dd4c329f57
chore: Prevent clap upgrades beyond 3.2
2022-06-14 11:02:19 +02:00
Jonas Platte
e3edf0139a
Enable rustdoc-map nightly feature via .cargo/config.toml
...
… instead of using -Z on the command line.
matrix-sdk-crypto-ffi-0.1.0
2022-06-13 14:30:10 +02:00
Jonas Platte
d07001a581
chore: Work around a cargo bug
2022-06-13 14:30:10 +02:00
Ivan Enderlin
62b8169ac2
chore(test): Ajust code coverage configurations (tarpaulin and codecov)
...
chore(test): Code Coverage must ignore some `matrix-sdk-crypto-(js|nodejs)`
2022-06-13 14:24:22 +02:00
Ivan Enderlin
d35063412f
chore(test): Ignore matrix-sdk-test-macros and matrix-sdk-ffi.
2022-06-13 12:52:37 +02:00
Damir Jelić
1a162e5dd5
test(crypto): Test the double verification cancellation
2022-06-13 12:30:52 +02:00
Damir Jelić
b8069af8ba
fix(crypto): Cancel the verification flow if we multiple verifications
...
The spec claims that we should cancel verifications if multiple
verifications are attempted at once[1]:
When the same device attempts to initiate multiple verification
attempts, the recipient should cancel all attempts with that device.
So let's start doing this.
[1]: https://spec.matrix.org/v1.2/client-server-api/#error-and-exception-handling
2022-06-13 12:30:52 +02:00
Damir Jelić
fa3e192c37
docs(crypto): Improve the signature verification docs some more
...
Co-authored-by: Denis Kasak <dkasak@termina.org.uk >
2022-06-13 12:12:09 +02:00
Damir Jelić
efc53569ed
refactor(crypto): Rename our is_signed_by methods
2022-06-13 12:12:09 +02:00
Damir Jelić
5c12132569
refactor(crypto): Introduce a SignedJsonObject trait
...
This should mostly remove the wild west of signature verification. We
define a trait that tells us which objects can contain signatures and
thus can be passed on to signature verification methods.
It also should be slightly more efficient, since we removed a bunch of
duplicate canonicalization steps.
2022-06-13 12:12:09 +02:00
Amanda Graven
251a38285c
perf(appservice): Cache namespace regexes
2022-06-13 11:57:50 +02:00
Ivan Enderlin
b500fa1daa
chore(test): Configure Tarpaulin to collect data from matrix-sdk-common.
2022-06-13 11:27:22 +02:00
Ivan Enderlin
4430dae421
chore(test): Configure Tarpaulin to ignore more crates.
2022-06-13 11:25:54 +02:00
Ivan Enderlin
eead09984c
chore(test): Ask codecov.io to ignore the crates/matrix-sdk-crypto-ffi directory.
2022-06-13 11:25:38 +02:00
Ivan Enderlin
dcfcac0bd3
chore(test): Ask codecov.io to ignore labs and xtask directories.
2022-06-13 11:24:10 +02:00
Jonas Platte
dc32fc282d
Remove sync_token from BaseClient
...
… as it is also accessible as self.store.sync_token in BaseClient methods.
2022-06-13 11:10:12 +02:00
Jonas Platte
b6eed09564
Make session field in Store private
...
… for cleaner encapsulation.
2022-06-13 11:10:12 +02:00
Jonas Platte
29ba171953
Simplify ownership of server_versions
...
We couldn't originally take references to it when it was behind RwLock,
with OnceCell this is no longer a problem.
2022-06-13 11:10:12 +02:00
Jonas Platte
9e9152745c
Remove homeserver_url from HttpClient
2022-06-13 11:10:12 +02:00
Jonas Platte
12d1607cdc
Remove session from HttpClient
2022-06-13 11:10:12 +02:00
Jonas Platte
6c8b520f14
Remove unused Clone impls on private types
2022-06-13 11:10:12 +02:00
Jonas Platte
fedcdb1e63
chore: Add some more tracing events
2022-06-13 11:10:12 +02:00
Jonas Platte
1cfd69a880
chore: Improve doc comment formatting
2022-06-13 11:10:12 +02:00
Ivan Enderlin
dad035d170
chore(test): Configure tarpaulin to use its config file.
2022-06-13 10:46:29 +02:00
Ivan Enderlin
3c14acf163
chore(test): Exclude matrix-sdk-crypto-(js|nodejs) from code coverage reports.
2022-06-13 10:38:07 +02:00
Ivan Enderlin
253affeb0c
feat(crypto-nodejs) Implement missing APIs
...
feat(crypto-nodejs) Implement missing APIs
2022-06-09 21:38:41 +02:00
Ivan Enderlin
fe4ddfde89
chore(crypto-nodejs): Remove clone calls when possible.
2022-06-09 21:15:25 +02:00
Ivan Enderlin
8a332ca9e1
chore(crypto-nodejs): Implement feedbacks / polish.
2022-06-09 18:02:29 +02:00
Ivan Enderlin
506f57a22c
feat(crypto-nodejs): Enable traace filtering and change the env var to MATRIX_LOG.
2022-06-09 14:06:42 +02:00
Damir Jelić
8b05f9276f
fix(sdk): Remove a duplicate Session cell from the HttpClient
2022-06-09 13:37:42 +02:00
Damir Jelić
e8b2655d52
docs(crypto-ffi): Explain what a timeout of 0 means when fetching identities
2022-06-09 11:58:23 +02:00
Damir Jelić
537ef1409b
test(crypto): Test that we're now notifying when we receive a /keys/query
2022-06-09 11:58:23 +02:00
Damir Jelić
e2bf3d0d18
chore(crypto-js): Silence some doc warnings
2022-06-09 11:58:23 +02:00
Damir Jelić
d188ef3386
feat(crypto): Add a way wait for a keys/query to be done when fetching identities.
2022-06-09 11:58:23 +02:00
Damir Jelić
ba7ccb40cc
feat(crypto): Wait for a key query to be done if we're claming one-time keys
2022-06-09 11:58:23 +02:00
Ivan Enderlin
1b2c644277
test(crypto-nodejs): Set up CI to run the test suites.
2022-06-09 11:34:16 +02:00
Benjamin Kampmann
6a853d0173
Merge pull request #744 from matrix-org/jplatte/readme
...
chore: Fix `main` docs link in readme
2022-06-09 10:51:58 +02:00
Jonas Platte
7487b24fe3
chore: Fix main docs link in readme
2022-06-09 10:21:04 +02:00
Amanda Graven
5c4f2b3430
fix(appservice): Make membership keys consistent
...
Correct the inconsistency between the keys used for reading and writing
the membership of a virtual user in the appservice's namespace
2022-06-08 10:42:35 +02:00
Stefan Ceriu
901b670a22
Use the nightly toolchain together with the newly introduced target-applies-to-host on the sdk-ffi crate debug builds to avoid cache corruption issues. Switched back to debug mode as the internal tokio crashes went away
2022-06-08 08:55:28 +02:00
Jonas Platte
28d6e2821b
chore: Replace new usage of Box<UserId>
2022-06-07 21:12:43 +02:00