Hubert Chathi
a1be24307a
lint
2019-02-28 22:54:46 -05:00
Hubert Chathi
4b5623691b
handle partially-shared sessions better
...
- don't cancel key requests if we can't decrypt everything in the session
- overwrite the session key if we get a better version
2019-02-28 16:01:29 -05:00
David Baker
907cf19f05
Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups
2018-11-15 16:35:52 +00:00
David Baker
c9917e4079
lint
2018-11-15 10:03:16 +00:00
David Baker
ebf20d5b2c
Don't force more than one new session per device per hour
2018-11-14 14:20:55 +00:00
David Baker
6c413bba48
Typo + exit if session was never shared
2018-11-13 12:15:33 +00:00
David Baker
d74ed508f9
Restart broken Olm sessions
...
* Start a new Olm sessions with a device when we get an undecryptable
message on it.
* Send a dummy message on that sessions such that the other end knows
about it.
* Re-send any outstanding keyshare requests for that device.
Also includes a unit test for megolm that isn't very related but came
out as a result anyway.
Includes https://github.com/matrix-org/matrix-js-sdk/pull/776
Fixes https://github.com/vector-im/riot-web/issues/3822
2018-11-08 19:09:28 +00:00
David Baker
2f219f83db
Catch exceptions from backupGroupSession()
2018-10-31 18:46:02 +00:00
David Baker
c77ecad9a5
clarify comment
2018-10-31 18:34:49 +00:00
David Baker
5e8061f846
Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups
2018-10-25 17:33:48 +01:00
André Jaenisch
f41060c39a
Replace console.log with loglevel logger. Fixes #332
...
Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de >
2018-10-24 00:48:57 +02:00
Hubert Chathi
d49c0a1bcb
more de-linting and fixing
2018-10-12 14:28:31 -04:00
Hubert Chathi
9b12c22823
de-lint plus some minor fixes
2018-10-12 10:38:10 -04:00
David Baker
073fb73ff3
Make multi-room key restore work
2018-09-17 15:59:37 +01:00
David Baker
e789747834
Check sigs on e2e backup & enable it if we can
2018-09-14 17:06:27 +01:00
David Baker
3838fab788
WIP e2e key backup support
...
Continues from uhoreg's branch
2018-09-13 17:01:05 +01:00
David Baker
72bd51f26e
Merge remote-tracking branch 'origin/develop' into uhoreg-e2e_backups
2018-09-11 12:02:47 +01:00
David Baker
9b54c9b807
Merge pull request #704 from matrix-org/dbkr/discardsession
...
Pass through function to discard megolm session
2018-08-30 18:25:50 +01:00
Matthew Hodgson
ae95a49618
spell out m.new_devices no longer exist
2018-08-29 20:20:52 +01:00
David Baker
1b77ee0ef4
Pass through function to discard megolm session
...
To make debugging crypto slightly faster
2018-08-29 18:06:45 +01:00
David Baker
ec5fff2046
Merge branch 'e2e_backups' of git://github.com/uhoreg/matrix-js-sdk into uhoreg-e2e_backups
2018-08-24 13:29:29 +01:00
Bruno Windels
a8bf66d8af
Make Room.getEncryptionTargetMembers async, as members might be loading
2018-08-15 12:01:26 +02:00
Hubert Chathi
d55618921b
initial implementation of e2e key backup and restore
2018-08-07 23:10:55 -04:00
Matthew Hodgson
2613690064
Merge pull request #666 from matrix-org/matthew/encrypt-for-invited-users
...
encrypt for invited users if history visibility allows.
2018-07-10 16:14:45 +01:00
Matthew Hodgson
d8d35f4022
encrypt for invited users if history visibility allows.
...
fixes https://github.com/vector-im/riot-web/issues/2713
2018-07-05 01:45:45 +02:00
Luke Barnard
fadb4d9219
Send OLM_UNKNOWN_MESSAGE_INDEX when possible
2018-07-04 15:58:45 +01:00
Luke Barnard
b63149b36a
Fix error code for Olm group message decryption
2018-07-04 14:33:02 +01:00
Luke Barnard
c74d2d831b
Add decryption error codes to base.DecryptionError
...
These should roughly follow 9732cf5932/MatrixSDK/Crypto/Algorithms/MXDecryptionResult.h (L21-L39)
2018-07-04 11:54:06 +01:00
Luke Barnard
30cb6f196f
Fix overriding undefined per-room unverified devices setting
...
If the per-room setting for preventing sending keys to unverified
devices is `undefined`, it overrides the global setting (which
could be `true`).
2018-02-22 18:02:39 +00:00
David Baker
b6330c3a4f
er, this isn't an object
2017-12-06 19:41:44 +00:00
David Baker
0b4ef8dcbb
Migrate inbound group sessions to crypto store
2017-12-05 21:47:22 +00:00
Travis Ralston
f24b02cae4
It helps if you use the right function
...
Signed-off-by: Travis Ralston <travpc@gmail.com >
2017-11-09 11:01:42 -07:00
Travis Ralston
995f796a5d
[BREAKING] Change the behaviour of the unverfied devices blacklist flag
...
Previously the global flag was used as a way to completely ignore the per-room option. This commit makes the per-room and global settings be more flexible to allow users to, for example, blacklist unverified devices in all room with the exception of one or two. This is done by making the global setting a device-level default and the per-room option allowing for 3 states: true, false, and unset (use device default).
Signed-off-by: Travis Ralston <travpc@gmail.com >
2017-11-08 17:47:45 -07: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
krombel
d1d0266a10
reduce sendToDevice payload ( #522 )
...
instead of sending one huge request split them up.
2017-09-22 14:29:23 +01:00
Richard van der Hoff
868c20b161
Fix a race in decrypting megolm messages ( #544 )
...
* Fix a race in decrypting megolm messages
This fixes a race wherein it was possible for us to fail to decrypt a message,
if the keys arrived immediately after our attempt to decrypt it. In that case,
a retry *should* have been scheduled, but was not.
Fixes https://github.com/vector-im/riot-web/issues/5001 .
* WORDS
2017-09-21 15:17:28 +01: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
337c9cbea3
Make OlmDevice.decryptGroupMessage async
2017-08-10 15:01:56 +01:00
Richard van der Hoff
2894e253a2
Make OlmDevice.addInboundGroupSession async
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
9550bca099
Megolm: remove redundant requestKeysOnFail
...
We now *always* requestKeysOnFail, so this was dead code which we can remove.
2017-08-10 13:00:27 +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
d821082843
Prepare megolm.js for async
...
Make internal methods of megolm.js ready for asynchronous olmdevice
2017-08-08 18:25:16 +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
86f2c86440
Add MatrixEvent.attemptDecryption
...
... and use it from both MatrixClient and the megolm re-decryption code.
This will help us avoid races when decryption is asynchronous.
2017-07-21 14:41:22 +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