Damir Jelić
6cb2c8b468
crypto: Store and restore outbound group sessions
2021-01-25 17:14:13 +01:00
Damir Jelić
ac6dad3f35
matrix-sdk: Bump our deps
2021-01-25 15:47:51 +01:00
Damir Jelić
c1f9d3bc39
crypto: Add a bench for our key query response handling
2021-01-25 10:13:08 +01:00
Damir Jelić
eb8138ca6a
base: Restore stripped room infos as well
2021-01-23 17:29:43 +01:00
Damir Jelić
44974982e1
client: Add an accessor method for the device id
2021-01-23 15:59:53 +01:00
Damir Jelić
077050efb4
crypto: Add a hack so e2ee support works under WASM again
2021-01-22 18:40:08 +01:00
Damir Jelić
d10b85a05d
matrix-sdk: Fix our wasm command bot example
2021-01-22 18:14:08 +01:00
Damir Jelić
9c98d0227b
matrix-sdk: Make the http client trait WASM compatible
2021-01-22 18:12:46 +01:00
Damir Jelić
8028c23f56
base: Feature flag the sled state store
2021-01-22 18:10:17 +01:00
Damir Jelić
cb12bc1584
base: Use Instant instead of SystemTime for wasm compatibility
2021-01-22 18:07:34 +01:00
Damir Jelić
b83399ba14
base: Fix a typo take two
2021-01-22 16:07:24 +01:00
Damir Jelić
5daa22250f
base: Fix a typo
2021-01-22 15:45:14 +01:00
Damir Jelić
c034de470b
base: Allow using the same sled database for the state and cryptostore
2021-01-22 11:33:06 +01:00
Damir Jelić
9cd217fc5d
matrix-sdk: Remove the proxy usage from the exmaples for now
...
While it's generally useful to watch what the sdk is sending
out during development using mitmproxy, users of the sdk might
wonder why the example doesn't connect.
Remove the proxy usage until we add a cli parser which can enable proxy
support with a command line switch.
2021-01-22 11:32:33 +01:00
Damir Jelić
cf07fc8e8e
Merge branch 'master' into new-state-store
2021-01-21 19:58:40 +01:00
Tilo Spannagel
7b8d2b5319
Add support for ruma feature flag markdown
...
Signed-off-by: Tilo Spannagel <development@tilosp.de>
2021-01-21 18:22:17 +01:00
Tilo Spannagel
abd62cab0d
Update ruma to rev 8c109d3c0a7ec66b352dc82677d30db7cb0723eb
...
Signed-off-by: Tilo Spannagel <development@tilosp.de>
2021-01-21 18:22:08 +01:00
Damir Jelić
7d45417a17
base: Add a memory-only store
2021-01-21 16:31:33 +01:00
Damir Jelić
66ecb4c1e6
base: Store room infos for left and invited rooms
2021-01-21 15:12:13 +01:00
Damir Jelić
1483c22171
crypto: Don't send out empty to-device reuqests when sharing sessions
...
An empty to-device request can happen if we're trying to re-share a
session with devices that are we're missing an olm session with so don't
send them out.
2021-01-21 14:04:31 +01:00
Damir Jelić
ae0d810fb0
base: Avoid the Trait is not general enough issue again
2021-01-21 14:03:41 +01:00
Damir Jelić
948c811d4b
client: Simplify the auto key-claiming invocation
2021-01-21 14:03:20 +01:00
Damir Jelić
ef2f20eb97
crypto: Rotate the megolm session if a device gets blacklisted
2021-01-21 12:19:02 +01:00
Damir Jelić
303ac513e5
base: Remove some stale files from the old state store
2021-01-21 12:13:46 +01:00
Damir Jelić
de4df4e50a
base: Re-introduce a state store trait.
2021-01-21 12:08:16 +01:00
Damir Jelić
2bcc0afb91
base: Use a CSPRNG to get our randomness and handle randomness errors
...
Since we're going to encrypt a lot of small objects separately we're
gonna need a lot of random nonces, it doesn't help that our nonces are
24 bytes long either. So use a CSPRNG to random data faster, also don't
panic if there wasn't enough randomness.
2021-01-20 16:59:46 +01:00
Damir Jelić
0a6b0e5804
base: Properly handle crypto related errors in the sled store
2021-01-20 16:27:59 +01:00
Damir Jelić
4a06c9e82d
base: Initial support for an encrypted sled store.
2021-01-20 15:57:23 +01:00
Damir Jelić
06a973a1b8
crypto: Don't use the full PBKDF rounds when testing
2021-01-20 14:10:57 +01:00
Damir Jelić
28cc5acc87
base: Add a store key struct
2021-01-20 14:10:57 +01:00
Damir Jelić
2b5ff82414
base: Move the sled store into a subfolder
2021-01-20 10:25:54 +01:00
Damir Jelić
3472c99c27
base: Split out the store module into smaller submodules
2021-01-19 16:48:37 +01:00
Damir Jelić
17f3dbb0a0
crypto: Return a deserialized ToDevice struct when we receive a sync
2021-01-19 12:59:31 +01:00
Damir Jelić
6a30514d40
base: Move the deserialized responses types into the common crate
2021-01-19 12:30:58 +01:00
Damir Jelić
4f4ba831c1
crypto: Bump the PBKDF rounds for the pickle key derivation
2021-01-19 12:05:30 +01:00
Damir Jelić
b8fcc003ea
base: Finish up the error handling for the new stores
2021-01-19 12:03:46 +01:00
Damir Jelić
ef95d9b539
crypto: Fix a misleading comment about the outbound session rotation period
2021-01-19 10:21:12 +01:00
Damir Jelić
377b8ea75a
crypto: Use consistent ordering for the group session sharing log line
2021-01-19 10:19:15 +01:00
Damir Jelić
4af9b74776
crypto: Properly clamp the rotation period of the outbound session
2021-01-18 20:46:34 +01:00
Damir Jelić
d07063af2b
base: Add some error handling to the state store
2021-01-18 18:07:53 +01:00
Damir Jelić
e5ba0298d0
crypto: Refactor and document the share group session method a bit better
2021-01-18 15:21:54 +01:00
Damir Jelić
4eb504d000
crypto: Improve the log line when we share group sessions
2021-01-18 14:15:31 +01:00
Damir Jelić
436530e874
crypto: Fix a couple clippy warnings
2021-01-18 13:50:59 +01:00
Damir Jelić
1746690eda
crypto: Add a sled cryptostore
2021-01-18 13:38:00 +01:00
Damir Jelić
629a8ee84f
crypto: Add getters for the sender key in our sessions
2021-01-18 13:28:09 +01:00
Damir Jelić
5418c88775
crypto: Add some more serialize/deserialize implementations
2021-01-18 13:21:30 +01:00
Damir Jelić
14575892bd
crypto: Implement serialize/deserialize for devices.
2021-01-18 13:19:13 +01:00
Damir Jelić
43a74524c5
crypto: Add a pending requests method for the outbound group session
2021-01-18 12:44:19 +01:00
Amanda Graven
aadbc14dc6
Add accessor for room member avatar urls
2021-01-15 18:59:51 +01:00
Damir Jelić
bab8fde0ac
crypto: Change the way we share group sessions
...
This patch removes the need to ask if a group session needs to be shared
it also adapts the method so it re-shares sessions if new users or
devices join the group.
2021-01-15 18:04:45 +01:00