Bruno Windels
c78bed846e
create unknown userIdentity when processing /keys/query response
...
this can happen when the room isn't tracked yet, which is a use case
we add support for in the next commit to verify senders that we don't
know about yet (e.g. when the room isn't tracked).
2022-11-10 17:28:18 +01:00
Bruno Windels
31579b4945
when tracking room, check roomId isn't on user we shouldn't share with
2022-11-10 17:26:50 +01:00
Bruno Windels
47d557b38d
expand comment how to handle race here
2022-11-10 17:20:59 +01:00
Bruno Windels
cb0ac846c7
remove obsolete comment
2022-07-29 16:22:01 +02:00
Bruno Windels
f18520a2fe
let loadMembers use own txn in case members haven't been fetched yet
...
if they haven't, it will need a network request, meaning that the txn
will get closed, so we can't reuse it afterwards
2022-07-27 11:39:50 +02:00
Bruno Windels
544afef902
test adding and removing when tracking multiple rooms
2022-07-26 17:41:26 +02:00
Bruno Windels
dd878bb8d6
also take rejecting invites into account to remove user identity
2022-07-26 16:58:07 +02:00
Bruno Windels
dea3852425
add some tests for sharing keys with invitees
2022-07-26 16:57:28 +02:00
Bruno Windels
4c17612b05
allow passing txn to loadMembers so we can do it as part of sync txn
...
to rewrite useridentities upon receiving new history visibility
2022-07-26 16:53:02 +02:00
Bruno Windels
17f42f523a
add write method for when history visibility changes
...
also returning added and removed user ids
2022-07-22 17:49:26 +02:00
Bruno Windels
f6011f3f34
take history visibility into account in device tracker
...
and return added and removed userids to their userIdentity for the given
room, so room encryption can share and discard the keys for them
2022-07-22 17:48:26 +02:00
Bruno Windels
f337940202
this migration shouldn't be needed anymore
...
and undoes the export of addRoomToIdentity, which is somewhat internal
2022-07-22 17:46:29 +02:00
Bruno Windels
c62c8da10b
fix changed key not being ignored
2022-05-31 13:39:35 +02:00
Bruno Windels
bc51644868
reassignment is not used later on, remove
2022-05-31 13:39:23 +02:00
Bruno Windels
3d3d590334
add failing test for device with changed key being returned
2022-05-31 13:39:05 +02:00
Bruno Windels
11d7535c23
add some basic tests (with mock utils) for DeviceTracker
2022-05-31 13:38:34 +02:00
Bruno Windels
2da450d69d
log signature verification failure in logger, not console
2021-11-15 15:27:57 +01:00
Bruno Windels
0d6ae19d99
use same code to add room to identity in migration as in device tracker
2021-08-30 15:05:57 +02:00
Bruno Windels
8e6bd6a7a1
add missing room ids to identities for tracked rooms & clear outbound session
2021-08-27 19:39:24 +02:00
Bruno Windels
f16c08f13e
remove room from all user identities when leaving
...
and delete identity as well as all device identities if no rooms left
2021-05-06 15:24:52 +02:00
Bruno Windels
e0d14207ac
make opening a txn async again
...
as we'll need to await a bogus request first thing after opening the txn
funny enough, we originally made it sync to accommodate the same bug
in safari, but that didn't prevent any microtask being awaited
before scheduling a request in the calling code closing the txn.
We'll await a bogus request within the transaction class now so it
doesn't depend on the calling code
2021-03-04 19:47:02 +01:00
Bruno Windels
dd38fc13d7
log sending messages
2021-02-23 19:22:59 +01:00
Bruno Windels
c5c0a181ff
move check for devicelists up in Session.writeSync, and more logging
2021-02-18 19:56:10 +01:00
Bruno Windels
cd68bb7b3f
log when devices get marked as outdated
2021-02-18 14:00:06 +01:00
Bruno Windels
e515548037
add some comments while debugging a problem
2021-02-11 21:08:06 +01:00
Bruno Windels
76381fbca1
open storage transactions synchronously
...
this (almost) makes it work in some browsers that otherwise
have throw a TransactionInactiveError on the first operation
you try to do on a store.
2020-09-28 16:06:41 +02:00
Bruno Windels
12262f2824
actually use correct method to get all device ids for a user
2020-09-14 18:31:54 +02:00
Bruno Windels
3325f12092
remove devices not present in /keys/query response
2020-09-14 15:47:00 +02:00
Bruno Windels
1f9d6191c2
this happens often when room is not tracked yet, so don't log
2020-09-08 18:32:51 +02:00
Bruno Windels
9a7abb1899
make logic more explicit
2020-09-08 18:27:35 +02:00
Bruno Windels
773cb3420f
ignore duplicate curve25519 keys in /keys/query response
2020-09-08 17:14:23 +02:00
Bruno Windels
b653022a5a
do store our own device, otherwise need special case verifying own msgs
2020-09-08 15:25:36 +02:00
Bruno Windels
52c3c7c03d
support sending out room key in room encryption for newly joined members
2020-09-08 14:36:50 +02:00
Bruno Windels
3e100ff5ec
ensure /keys/query devices have the keys we need
2020-09-08 10:51:01 +02:00
Bruno Windels
c32ac2c764
use decryption result to show message verification status in timeline
2020-09-08 10:50:39 +02:00
Bruno Windels
e22131bf57
don't store or return our own device
2020-09-03 15:28:20 +02:00
Bruno Windels
0545c1f0c5
extract verifying a signed object from the device tracker
2020-09-02 17:37:48 +02:00
Bruno Windels
81a1573e3b
make a shared olm util for the whole session
2020-09-01 17:57:59 +02:00
Bruno Windels
d43cdfd889
don't crash when tracked user is not there
2020-08-31 16:06:40 +02:00
Bruno Windels
fef6586e5b
actually pass the room id
2020-08-31 16:06:31 +02:00
Bruno Windels
78c3157a5f
fix not taking into account Object.entries yields arrays for the pairs
2020-08-31 16:05:57 +02:00
Bruno Windels
561df45641
olm.Utility should be instanciated
2020-08-31 16:05:21 +02:00
Bruno Windels
0399562340
fix typo
2020-08-31 16:05:04 +02:00
Bruno Windels
4ef5d4b3b8
implement hsapi /keys/query method
2020-08-31 14:24:09 +02:00
Bruno Windels
8b358379e8
first draft of device tracker
...
mainly missing race protection with /sync and actually running the code
2020-08-31 14:12:12 +02:00