Commit Graph

2331 Commits

Author SHA1 Message Date
Damir Jelić ac7f2c94fb Merge branch 'fix-verification-done-wait' 2022-02-01 13:43:58 +01:00
Damir Jelić 906dcfe423 Merge branch 'messages-param' 2022-02-01 12:34:40 +01:00
Damir Jelić b5ce7e7bd0 Merge branch 'tags' 2022-02-01 12:01:17 +01:00
Damir Jelić c9c03fd9b1 Merge branch 'encrypt-custom-events' 2022-02-01 11:48:31 +01:00
Kévin Commaille 535d1ec30f feat(sdk): Use TagName in set/remove tag methods 2022-01-11 12:25:27 +01:00
Kévin Commaille 52deff1db2 fix(sdk): Move set/remove tag methods to room::Common 2022-01-11 12:24:46 +01:00
Jonas Platte 4603ee136d Remove unnecessary string copies 2022-01-10 16:30:45 +01:00
Jonas Platte da657b8643 Allow custom events in OlmMachine::encrypt 2022-01-10 16:29:49 +01:00
Jonas Platte c2888e56a4 Use a custom options type for room::Common::messages
With the previous API, one would have to supply the room's ID manually,
despite the method already being called on a room.
2022-01-09 01:54:38 +01:00
Amanda Graven 038adea6d7 appservice: Examples for query handler registry fns
Add examples for functions for registering handlers for room and user
queries. Also remove a needless mut requirement for these functions.
2022-01-05 14:33:46 +01:00
ftilde b1501fcb1d Add test for verification started from a request 2022-01-04 21:27:06 +01:00
ftilde b877d15616 Do not send Done message after receiving a Done
Done messages are supposed to indicate that the verification was
successful and _can be_ finalized. The correct time to send Done events
is after the user has confirmed the verification (after checking the
emoji or similar) and after receiving and checking a mac from the other
party (whatever happens later). Waiting for the other side to send Done
before sending it ourselves does not make sense.
2022-01-04 21:27:06 +01:00
ftilde 1c72472706 Send Done message when confirming in MacReceived state
Being in MacReceived state means that the other party has confirmed that
emojis/numbers match and the sent mac messages has been successfully
checked. When now confirming ourselves this means that the verification
was successful and thus the Done message can be sent to the other party.
2022-01-04 21:27:06 +01:00
ftilde 0e4057f3a3 Do not drop requests after receiving mac if sas is not complete
When during verification we are the first party to complete the
verification workflow and then receive a (correct) MAC from the other
party, we need to send out the Done message even if we have not received
the Done message from the other party ourselves and are thus still
"WaitingForDone".
2022-01-04 21:27:06 +01:00
Damir Jelić c79e62d80e Merge branch 'fix-verification-double-start' 2022-01-04 14:59:52 +01:00
ftilde f4249c591a Return RoomEvents from decryption methods
Previously, these methods returned `SyncRoomEvent`s instead, even though
the decrypted events are required to contain a room_id field (in order
for the server to not to be able to change these). As a side effect,
glue code which adds a room_id to the `SyncRoomEvent` to convert it to a
`RoomEvent` is be removed in some places.

When a `SyncRoomEvent` is required (such as in code handling sync
responses), the `From` implementation of `SyncRoomEvent` can be used.
2022-01-03 22:48:51 +01:00
ftilde 37cadc7c29 Add From<RoomEvent> for SyncRoomEvent
Since SyncRoomEvents are just RoomEvents without a room_id, it is safe
to just discard the information that this field exists in the underlying
json.
2022-01-03 22:48:30 +01:00
ftilde a1cf8b613d Drop start requests from lower precedence parties if sas has already been started.
According to the guide for implementing verification started from
a verification request, both parties should (or at least allowed to)
send a start request when the verification is ready. However, only the
start request from the party with lexicographically smaller user id (or
device id, for device verification, and thus equal user id) is supposed
to be accepted, and the other one ignored.
2022-01-03 21:04:07 +01:00
ftilde 798464b68e Verification: Handle Accept after Start on both sides
Previously, when a sas-workflow was started by the other party (e.g.
from a verification request), but the own start request was answered with
an "accept" this accept would be ignored. However, this is incorrect
since the official guide on implementing verification actually states
that both parties are expected to send start-requests, where of those
only one request is actually accepted (depending on user id and possibly
the device id).
2022-01-03 21:02:53 +01:00
ftilde 87de0b5883 Return broken messages unchanged from messages()
Without this change, a batch with a message that cannot be deserialized
(for whatever reason) means that the batch cannot be processed at all by
the caller. Now, those messages are returned unchanged in the batch so
that the caller can handle them.
2022-01-03 19:49:19 +01:00
Damir Jelić 5003ed1493 docs: Enable all features for some of our crates when building docs 2022-01-03 13:14:36 +01:00
Damir Jelić f12f03b8da docs: Switch to the doc_auto_cfg feature 2022-01-03 12:33:24 +01:00
Damir Jelić 9856270e75 fix(crypto): Don't enable the backup feature by default 2022-01-03 12:27:03 +01:00
Damir Jelić c22fa4e3fd fix(base): Fix a new clippy warning 2022-01-03 10:23:38 +01:00
Julien Merzoug f7f30f1636 docs(sdk): Fix a typo 2022-01-03 13:05:35 +08:00
Damir Jelić ae9a554808 Merge branch 'supported-versions' 2021-12-31 14:00:11 +01:00
Kévin Commaille 5ecd74b2e4 feat(sdk): Make get_supported_versions public 2021-12-31 13:02:15 +01:00
Damir Jelić dd29e2087c Merge branch 'common-fixes' 2021-12-31 12:54:49 +01:00
Jonas Platte 99ce9419aa Fix futures-util dependency
Turn on alloc feature that is required for `future::join_all`.
2021-12-31 11:00:51 +01:00
Kévin Commaille 0d771565f9 feat(sdk): Simplify the API of Common::event 2021-12-31 02:34:16 +01:00
Kévin Commaille c35f8c55ac fix(sdk): Fix docs of Common::active_members_no_sync 2021-12-31 02:16:20 +01:00
ftilde 703e965172 Decrypt messages from room::Common::messages()
Due to additional error possibilities and encryption info for messages,
the return type of the method was changed accordingly and a wrapper
struct `Messages` was introduced.
2021-12-29 15:26:45 +01:00
ftilde 046bfa9dad Fix typo in comment 2021-12-29 15:26:39 +01:00
Damir Jelić 035d319122 Merge branch 'travis/misc' 2021-12-28 11:52:23 +01:00
Damir Jelić 81b730d8c3 Merge branch 'request-config-expose-force_auth' 2021-12-28 11:31:08 +01:00
Damir Jelić 6170be95e1 Merge branch 'membership' 2021-12-28 10:59:34 +01:00
Jonas Platte d92d7771d9 Add must_use attribute to config constructors and methods
These all don't have side effects so discarding the result wouldn't make
sense.
2021-12-27 17:21:21 +01:00
Jonas Platte f6d7933601 Simplify filter closure 2021-12-27 14:56:31 +01:00
Jonas Platte abf525390e Fix clippy warning (remove unnecessary clone) 2021-12-27 14:56:19 +01:00
Jonas Platte fea80843eb Remove redundant calls to .into_iter() 2021-12-27 14:21:46 +01:00
Jonas Platte 1a7baf631e Avoid enormous type name in GroupSessionManager::encrypt_session_for 2021-12-27 14:20:16 +01:00
Travis Ralston 171c334cb1 Add .idea directory to gitignore 2021-12-14 18:59:23 -07:00
Marc 'risson' Schmitt ba05dd5b8c feat(RequestConfig): expose force_auth setting
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2021-12-13 20:45:51 +01:00
Kévin Commaille b697bcb4fd feat(base): Add RoomMember::membership accessor 2021-12-13 16:20:46 +01:00
Damir Jelić 009ead2eea chore: Bump Ruma. 2021-12-08 16:50:25 +01:00
Damir Jelić f97aed0e41 Merge branch 'MTRNord-wasm-fix' 2021-12-01 14:51:28 +01:00
Jonas Platte 6519aaff4d crypto: Fix docs for SledStore 2021-11-30 17:48:49 +01:00
Damir Jelić 8494f10583 Merge branch 'up-ruma' 2021-11-30 09:56:01 +01:00
Jonas Platte 5824cb649e Update tests 2021-11-29 14:30:45 +01:00
Jonas Platte dfd59f42a9 Fix warp build error 2021-11-29 13:36:05 +01:00