Commit graph

1161 commits

Author SHA1 Message Date
Bruno Windels d7c25e3106 move MediaRepository out of HomeServerApi
so HomeServerApi becomes easier to wrap, only having methods
that return a RequestResult.
2020-09-22 13:40:38 +02:00
Bruno Windels 6cd227b82d only prompt after waiting 10s for sync UTD 2020-09-22 09:30:25 +02:00
Bruno Windels 0a83bf1176 more notes for legacy css marker 2020-09-22 09:30:13 +02:00
Bruno Windels 3359d49161 off both passphrase and security key options 2020-09-21 19:19:55 +02:00
Bruno Windels f84f06758c
Merge pull request #105 from vector-im/bwindels/fix-otk-sync-race
Fix race between next /sync and upload OTKs
2020-09-21 16:04:30 +00:00
Bruno Windels e6a46874c4 wrap olm error for creating session in DecryptionError
so we can relate it back to the event that caused it
2020-09-21 17:58:13 +02:00
Bruno Windels c9ee5a5db2 stay in catchup mode as long as there are device messages
this implements https://github.com/vector-im/element-web/issues/2782

it also implements 0 timeout for catchup, getting rid of the
catching up with your convo banner for 30s upon reconnection.
2020-09-21 17:57:01 +02:00
Bruno Windels 015c6b1c70 interpret unreported signed_curve25519 as 0 OTKs 2020-09-21 17:56:23 +02:00
Bruno Windels 4dfbd3f3cd don't run afterSyncCompleted and next sync request in parallel
as the otk count the next sync request reports will be outdated
if afterSyncCompleted uploaded OTKs, and the next afterSyncCompleted
, having the wrong server OTK count, will again upload OTKs.

This will overwrite existing OTK keys which will
throw BAD_MESSAGE_KEY_ID when creating new sessions with those OTKs
2020-09-21 17:53:29 +02:00
Bruno Windels a86b25736c
Merge pull request #104 from vector-im/bwindels/cantlogin
Fix unable to login if you have rooms without any events in the initial sync
2020-09-21 12:16:46 +00:00
Bruno Windels c7370d7b01 Use continue in for loop rather than return
this was running in a Promise.all(array.map)) closure before
2020-09-21 14:11:28 +02:00
Bruno Windels 2c6a3a7ce7 fix afterSyncCompleted not being run after a sync error occurs
the error was not cleared when calling start again.

Also we should better look at the sync status to decide whether to run
afterSyncCompleted.

This prevented the room keys from being applied once you
had a connection error or other error at some point
since you started the app.
2020-09-21 13:55:35 +02:00
Bruno Windels 79ac939c8f
Merge pull request #103 from vector-im/bwindels/session-backup
Read from session backup
2020-09-21 11:53:35 +00:00
Bruno Windels 8cf29e344b don't send access token on /versions
as it's not a good idea, and some CORS configs might not be happy with
an Authorization header on that path
2020-09-18 18:13:20 +02:00
Bruno Windels 1d33ab20a5 fix decrypted tiles not corresponding to a tile 2020-09-18 13:36:16 +02:00
Bruno Windels 4d604f7357 log all sync errors 2020-09-18 13:11:18 +02:00
Bruno Windels 3704de1a26 more dispose 2020-09-18 13:11:10 +02:00
Bruno Windels da780d0aa2 delay backup 10s if missing session event came from sync 2020-09-18 13:11:02 +02:00
Bruno Windels 3aead4eae2 createEnum does not take an array 2020-09-18 13:08:35 +02:00
Bruno Windels ed913ca24b add dispose to room encryption 2020-09-18 13:08:18 +02:00
Bruno Windels 6c46cc98de be more specific in error message 2020-09-18 12:12:52 +02:00
Bruno Windels 2de406afa0 log secret storage error as well 2020-09-18 12:12:19 +02:00
Bruno Windels cb32f4201e note for future cleanup 2020-09-18 12:12:12 +02:00
Bruno Windels 9fd39ab57f aes-js doesn't work with ArrayBuffers 2020-09-18 12:04:48 +02:00
Bruno Windels 36b56132b0 add TextEncoder/Decoder polyfill to legacy bundle 2020-09-18 12:04:22 +02:00
Bruno Windels 6375574a56 show error 2020-09-17 18:59:40 +02:00
Bruno Windels f58a3ee975 use olm from param 2020-09-17 18:56:02 +02:00
Bruno Windels 7d6fcfafa8 pass olm, better naming, don't reuse var 2020-09-17 18:55:39 +02:00
Bruno Windels 5b45c00322 switch to security key 2020-09-17 18:55:28 +02:00
Bruno Windels ceac6008bc fix import 2020-09-17 18:55:09 +02:00
Bruno Windels fe5b732c97 cleanup, better copy text 2020-09-17 18:54:55 +02:00
Bruno Windels 494c5cbcf0 notify UI when we need session backup 2020-09-17 18:00:00 +02:00
Bruno Windels 06ccd74680 this should be read-write, oops 2020-09-17 17:59:35 +02:00
Bruno Windels 1b8e481559 keys from backup need to be imported with import_session, not create 2020-09-17 17:59:02 +02:00
Bruno Windels 915925d6ee don't throw when trying to restore session from backup, check sender key 2020-09-17 17:57:52 +02:00
Bruno Windels a205ae8841 fixes 2020-09-17 17:57:12 +02:00
Bruno Windels 5752cca69c go back to bs58 and use other base64 decoder
as base-x isn't meant for base64
2020-09-17 17:56:05 +02:00
Bruno Windels 9d622434fb integrate session backup with session class 2020-09-17 15:58:46 +02:00
Bruno Windels 3cebd17cbe adjust paths 2020-09-17 15:17:46 +02:00
Bruno Windels c9d8d40242 move ssss out of e2ee dir as not really e2ee related 2020-09-17 15:17:00 +02:00
Bruno Windels 33aa475e18 add function to create key from either passphrase or recovery key 2020-09-17 15:16:01 +02:00
Bruno Windels caaab41e87 make this work again 2020-09-17 14:20:53 +02:00
Bruno Windels 7f97c540fb obsolete comment, this is already the case 2020-09-17 14:20:42 +02:00
Bruno Windels 092547bfc8 renaming 2020-09-17 14:20:36 +02:00
Bruno Windels 17fc249fa8 integrate session backup with room encryption and megolm decryption 2020-09-17 14:20:15 +02:00
Bruno Windels 3941af93d2 more impl of SessionBackup 2020-09-17 14:19:57 +02:00
Bruno Windels f2fedae6aa changes to ie11 prototype 2020-09-17 12:34:59 +02:00
Bruno Windels fff8308259 first draft of SessionBackup 2020-09-17 12:34:39 +02:00
Bruno Windels 1a105d391b cleanup: rename session name to hydrogen as well
as we'll need people to resync because of account data as well
2020-09-17 12:34:10 +02:00
Bruno Windels b7401a148c some ssss cleanup 2020-09-17 12:33:57 +02:00