David Baker
243bab7036
Merge branch 'dbkr/stop_devicelist' into dbkr/e2e_backups
2018-10-25 19:03:57 +01:00
David Baker
88b39f4b67
Stop devicelist when client is stopped
...
To avoid the devicelist trying to save after the client has been
stopped
Hopefully will fix random test failures on node 11.
2018-10-25 19:00:03 +01:00
Hubert Chathi
91fb7b0a7c
fix unit tests for backup recovery
2018-10-12 12:03:51 -04:00
Hubert Chathi
9b12c22823
de-lint plus some minor fixes
2018-10-12 10:38:10 -04:00
Hubert Chathi
3957006fae
Merge remote-tracking branch 'upstream/dbkr/e2e_backups' into e2e_backups
2018-10-11 14:01:26 -04:00
Hubert Chathi
da65f43983
wrap backup sending in a try, and add delays
2018-10-10 19:31:28 -04:00
David Baker
ada4b6ef16
Lint
2018-10-09 15:46:12 +01:00
Hubert Chathi
258adda67c
retry key backups when they fail
2018-10-04 15:19:20 -04:00
David Baker
ce2058aea9
Merge branch 'dbkr/wasm' into dbkr/e2e_backups
2018-10-02 16:54:36 +01:00
David Baker
63cc3fd890
lint
2018-09-25 18:14:11 +01:00
David Baker
c556ca40b1
Support Olm with WebAssembly
...
wasm Olm has a new interface: it now has an init method that needs
to be called and the promise it returns waited on before the Olm
module is used. Support that, and allow Crypto etc to be imported
whether Olm is enabled or not. Change whether olm is enabled to
be async since now it will be unavailable if the async module init
fails. Don't call getOlmVersion() until the Olm.init() is done.
2018-09-25 17:49:54 +01:00
David Baker
2f4c1dfcc4
Test all 3 code paths on backup restore
2018-09-18 17:33:47 +01:00
David Baker
e4bb37b1a8
Fix lint mostly
2018-09-18 14:53:59 +01:00
David Baker
54c443ac68
Make tests pass
2018-09-18 14:48:02 +01:00
Hubert Chathi
73e294b1bd
add copyright header to backup.spec
2018-08-23 00:29:29 -04:00
Hubert Chathi
75107f99b2
pass in key rather than decryption object to restoreKeyBackups
2018-08-23 00:26:21 -04:00
Hubert Chathi
1faf477537
fix formatting and fix authedRequest usage
2018-08-22 23:58:59 -04:00
Hubert Chathi
d55618921b
initial implementation of e2e key backup and restore
2018-08-07 23:10:55 -04:00
David Baker
8b649cec8d
All the copyrights
2018-01-18 11:52:27 +00:00
David Baker
27d28b8247
More test fixing
...
Allow localstorage store to take a localstorage impl, make TestClient
pass a cryptostore & fix True/true typo
2018-01-15 16:27:28 +00:00
David Baker
110f43a246
Make DeviceList test pass
...
Includes making saveIfDirty() return a promise in case you care
about when changes got saved (which the test does).
2018-01-15 15:21:39 +00:00
David Baker
e6dd573e8a
Fix test (needs a cryptostore now)
2017-12-06 19:42:01 +00:00
Hubert Chathi
8f252992e4
keep track of event ID and timestamp of decrypted messages
...
This is to avoid false positives when detecting replay attacks.
fixes : vector-im/riot-web#3712
Signed-off-by: Hubert Chathi <hubert@uhoreg.ca >
2017-10-11 23:27:36 -04:00
Richard van der Hoff
f00558d840
Merge remote-tracking branch 'origin/develop' into rav/async_crypto/1
2017-08-15 18:31:02 +01:00
Richard van der Hoff
8a0f73bf81
Make some OlmDevice megolm methods async
...
* OlmDevice.hasInboundSessionKeys
* OlmDevice.getInboundGroupSessionKey
The latter means that MegolmDecryption.shareKeysWithDevice takes longer before
it sends out the keyshare, so means the unit test needed an update
2017-08-10 15:01:56 +01:00
Richard van der Hoff
6613ee6b0d
Make crypto.decryptMessage return decryption results
...
... instead of having it call event.setClearData.
The main advantage of this is that it fixes a race condition, wherein apps
could see `event.isDecrypting()` to be true, but in fact the event had been
decrypted (and there was no `Event.decrypted` event on its way).
We're also fixing another race, wherein if the first attempt to decrypt failed,
a call to `attemptDecryption` would race against the first call and a second
attempt to decrypt would never happen.
This also gives a cleaner interface to MatrixEvent, at the expense of making
the `megolm` unit test a bit more hoop-jumpy.
2017-08-10 13:05:35 +01:00
Richard van der Hoff
906bf88450
Merge remote-tracking branch 'origin/develop' into rav/async_crypto/olmlib
2017-08-09 18:11:48 +01:00
Richard van der Hoff
aff32afefa
Make olmlib.encryptMessageForDevice async
2017-08-09 10:46:18 +01:00
Richard van der Hoff
18f75ec61c
make algorithm.hasKeysForKeyRequest async
2017-08-08 18:26:31 +01:00
Richard van der Hoff
8bbf14acbf
Let event decryption be asynchronous
...
Once everything moves to indexeddb, it's going to require callbacks and the
like, so let's make the decrypt API asynchronous in preparation.
2017-07-21 14:41:22 +01:00
Richard van der Hoff
8b2fdf3a75
Deflake megolm unit test
...
Waiting for 1ms isn't actually good enough. wait for the actual thing we are
actually waiting for.
2017-07-14 15:22:08 +01:00
Richard van der Hoff
cfffbc4a09
replace q method calls with bluebird ones
...
```
find src spec -name '*.js' |
xargs perl -i -pe 's/q\.(all|defer|reject|delay|try)\(/Promise.$1(/'
```
2017-07-12 23:33:55 +01:00
Richard van der Hoff
a5d3dd942e
q(...) -> Promise.resolve
...
```
find src spec -name '*.js' |
xargs perl -i -pe 's/\bq(\([^(]*\))/Promise.resolve$1/'
```
2017-07-12 23:32:28 +01:00
Richard van der Hoff
b96062b6de
replace imports of q
with bluebird
...
```
find src spec -name '*.js' |
xargs perl -i -pe 'if (/require\(.q.\)/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
find src spec -name '*.js' |
xargs perl -i -pe 'if (/import q/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
```
2017-07-12 23:32:28 +01:00
Richard van der Hoff
1f86dbd12f
Add support for forwarding room keys to megolm
...
when we receive a m.forwarded_room_key, add it to the crypto store, but
remember who forwarded it to us, so we can decide whether to trust them
separately.
2017-06-20 12:39:36 +01:00
Richard van der Hoff
be3fb0f917
Make a start on a unit test for megolm alg impl
...
not much here yet, but it's a start at least.
2017-06-20 11:51:30 +01:00
Richard van der Hoff
655be2fa2e
Fix race in device list updates
...
Don't consider device lists up-to-date when we have another request for the
relevant user in the queue.
Fixes https://github.com/vector-im/riot-web/issues/3796 .
2017-05-05 12:34:00 +01:00