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
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
f355661522
fix a lint error
2017-06-20 11:51:30 +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
5049919855
Replace keysProved and keysClaimed
...
These terms were somewhat confusing (and, in the case of megolm, misleading),
so replace them with explicit senderCurve25519Key and claimedEd25519Key fields.
2017-06-20 11:51:11 +01:00
Richard van der Hoff
82e5e9cf4a
Merge branch 'develop' into room_key_sharing
2017-06-19 17:38:35 +01:00
Richard van der Hoff
96c1126fe5
Add a bunch of logging around sending messages
...
In an attempt to diagnose https://github.com/vector-im/riot-web/issues/4278 ,
add some debug to make the rageshakes more useful.
2017-06-12 13:32:10 +01:00
Richard van der Hoff
0371265fea
Send a cancellation for room key requests ( #456 )
...
* Send a cancellation for room key requests
When we receive a room key, cancel any pending requests we have open for that
key.
2017-06-07 14:00:47 +01:00
Richard van der Hoff
4b6575d94a
Fix jsdocs
2017-06-07 11:02:27 +01:00
Richard van der Hoff
2c54d76085
Implement sharing of megolm keys
2017-06-06 14:46:54 +01:00
Richard van der Hoff
ea2a04135f
Send a room key request on decryption failure
...
When we are missing the keys to decrypt an event, send out a request for those
keys to our other devices and to the original sender.
2017-06-06 14:24:19 +01:00
Richard van der Hoff
bf2e6a33c2
Minor post-review tweaks
2017-02-10 10:37:46 +00:00