Commit Graph

2020 Commits (913cb39d28a73d464e3ab348a8b7bc891015ac6c)

Author SHA1 Message Date
Damir Jelić e4a9cf0bba crypto: Disallow re-sharing room keys with devices with changed curve keys 2021-08-13 18:28:52 +02:00
Damir Jelić f9de77a75d crypto: Make sure we request secrets only if the user became trusted 2021-08-13 18:28:52 +02:00
Damir Jelić 315e77ebf2 crypto: Add the users for key claiming to the outgoing requests
This makes sure that we immediately claim one-time keys after we
receive the sync changes instead of waiting for a room message to be
sent by the user.

Users may not send a message in a long time which would mean that we'll
likely never share secrets or forward room keys if a Olm session was
missing with the requester.
2021-08-13 18:28:52 +02:00
Damir Jelić da82fbab4f crypto: Connect the responding to secret request logic 2021-08-13 18:28:52 +02:00
Damir Jelić 4f46212d1a crypto: Add a method to manually verify our own user identity 2021-08-13 18:28:52 +02:00
Damir Jelić d4fe6f5133 crypto: Add methods to manually verify devices and users 2021-08-13 18:28:52 +02:00
Damir Jelić ee838087ca crypto: Add methods to export/import cross signing keys 2021-08-13 18:28:52 +02:00
Damir Jelić b540b8df62 crypto: Add a method to check the state of our private cross signing keys 2021-08-13 18:28:52 +02:00
Damir Jelić 1157594530 crypto: Add a method to check if a user identity is verified 2021-08-13 18:28:52 +02:00
Damir Jelić 8d7fe5e575 crypto: Add a method to check if our own device has been signed by our identity 2021-08-13 18:28:52 +02:00
Damir Jelić 0598bdebc7 crypto: Store our own device we receive from the server 2021-08-13 18:28:52 +02:00
Damir Jelić 7d851a10b5 crypto: Collect common verification stuff into a VerificationStore 2021-08-13 18:28:52 +02:00
Damir Jelić e401c87246 crypto: When we check the signature of a device use the DeviceKeys struct 2021-08-13 18:28:52 +02:00
Damir Jelić 2cf6ad21d3 crypto: Refactor and split out the gossiping logic 2021-08-13 18:28:52 +02:00
Damir Jelić adca302dfe crypto: Fix some clippy warnings 2021-08-13 18:28:52 +02:00
Damir Jelić 68df9b6ed2 crypto: Allow secrets to be requested and imported 2021-08-13 18:28:52 +02:00
Damir Jelić e57d70b089 crypto: Use the correct pickle key when unpickling cross signing keys 2021-08-13 18:28:52 +02:00
Damir Jelić 5f1e972b3d crypto: Properly mark verification requests as done 2021-08-13 18:28:52 +02:00
Damir Jelić 3726492cf9 crypto: Improve some log lines 2021-08-13 18:28:52 +02:00
Damir Jelić bc8c2752e4 crypto: Store newly created Olm sessions immediately
This fixes a bug where we would try to create a new Olm session, even if
we already created one, because we didn't yet add the new one to the
store.

This would be triggered every time two or more Olm pre-key messages
arrive that don't yet have an Olm session. This leads to decryption
failures for every message that arrived in the same sync after the
first one which created the new Olm session.
2021-08-13 18:28:52 +02:00
Damir Jelić d27a08bc91 crypto: Fix a comment in the attachment encryption logic 2021-08-13 18:28:52 +02:00
Damir Jelić 5192feb836 crypto: Add support to request secrets 2021-08-13 18:28:52 +02:00
Damir Jelić a916288d03 crypto: Support responding to secret requests 2021-08-13 18:28:52 +02:00
Damir Jelić 96e26651bc crypto: Bump the olm-rs version 2021-08-13 14:07:37 +02:00
Damir Jelić 725fd817c2 Merge branch 'ruma-0.3' 2021-08-12 15:22:21 +02:00
Damir Jelić 79dd53639b Merge branch 'set-tag' 2021-08-12 15:06:26 +02:00
Jonas Platte 578ddd2698
Upgrade to ruma 0.3.0 2021-08-12 10:41:20 +02:00
Emelie e175ab79c7
matrix-sdk: Add helpers for room tags 2021-08-09 17:01:48 +02:00
Johannes Becker 937d0aca79 appservice: Support appservice located on sub path 2021-08-09 14:35:26 +02:00
stoically 0bd438e617 Fix clippy warnings 2021-08-05 22:48:05 +02:00
Damir Jelić 1fd1570e07 Merge branch 'wip/haeckerfelix/room-event' 2021-07-29 09:37:31 +02:00
Felix Häcker 91e9a5f9f3 Add new RoomEvent type, try to decrypt event 2021-07-28 19:49:41 +02:00
Damir Jelić aa5f532f86 Merge branch 'master' into room-state-getters 2021-07-27 11:18:29 +02:00
Damir Jelić c499d2e465 matris-sdk: Test getting state events out of the store 2021-07-27 10:22:11 +02:00
Damir Jelić 3d734a120d Merge branch 'hoist-deserialize-fix' 2021-07-26 16:16:08 +02:00
Damir Jelić 05eeba067c base: Add docs to the newly public hoist and deserialize method 2021-07-26 15:58:18 +02:00
Damir Jelić 778867e3ef crypto: Test that edits get properly decrypted 2021-07-26 15:28:17 +02:00
Damir Jelić 4432be48e0 crypto: Fix a broken doc link 2021-07-26 11:47:53 +02:00
Felix Häcker f3620e7072 room: Add event() method to retrieve a room event 2021-07-25 20:51:46 +02:00
Damir Jelić 46f9c292ab crypto: Streamline how we update one-time key counts
There is no reason to use different logic when updating one-time key
counts coming from an upload response vs when coming from a sync
response.

Switch to an AtomicU64 for the count as well, the i64 is probably a
remnant of the SQLite based crypto store.
2021-07-22 16:06:10 +02:00
Damir Jelić e919a82b2c Merge branch 'verification-improvements' 2021-07-19 14:31:31 +02:00
Damir Jelić 3a8ff2f6b4 matrix-sdk: Allow the key import error to be dead under WASM 2021-07-19 11:19:14 +02:00
Damir Jelić 26310def0a crypto: Silence a couple of clippy warnings 2021-07-19 10:49:22 +02:00
Damir Jelić 24377a45ff matrix-sdk: Add methods to request verification for devices 2021-07-19 10:34:34 +02:00
Damir Jelić 5566886f20 crypto: Add public methods to request verifications with devices 2021-07-19 10:26:39 +02:00
Damir Jelić 8f03679935 matrix-sdk: Add more getters to the high level verification structs 2021-07-19 09:59:08 +02:00
Damir Jelić 0053d2a874 crypto: Don't send cancellations for passive verification requests 2021-07-19 09:48:22 +02:00
Damir Jelić 55a9e6836d crypto: Introduce a CancelInfo struct
This replaces the separate methods to fetch info about the cancellation.
It was a bit annoying to gather all the different info where each method
can return None.
2021-07-19 09:45:47 +02:00
Damir Jelić cf30c42563 crypto: Correctly remember our chosen SAS methods 2021-07-19 09:43:35 +02:00
Damir Jelić ff8089912e crypto: Only send cancellations to other devices if we're the requester 2021-07-19 09:36:21 +02:00