Damir Jelić
00e11d33f1
crypto: Fix user-signing signature uploads
2021-08-13 18:28:52 +02:00
Damir Jelić
680f77beb9
crypto: Add the master key to the SAS MAC if we trust it
2021-08-13 18:28:52 +02:00
Damir Jelić
356506060c
crypto: Remove private cross signing keys if we detect that they changed
2021-08-13 18:28:52 +02:00
Damir Jelić
4e9fe79619
crypto: Start remembering if an inbound group session has been backed up
2021-08-13 18:28:52 +02:00
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ć
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