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
Richard van der Hoff
b66fed9ae9
Clean up/improve e2e logging
...
In an attempt to make the rageshake logs a bit more useful, try to make the
logging a bit saner. Firstly, make sure we log every decryption failure, and
log it exactly once, rather than in several places. Also record when we receive
megolm keys. Also add some more explicit logging in the sync loop.
2017-02-09 17:36:22 +00:00
Richard van der Hoff
e13ed6436e
Fix decryption of events whose key arrives later
...
Re-fixes https://github.com/vector-im/riot-web/issues/2273 .
And test it this time.
2017-02-09 16:12:43 +00:00
Richard van der Hoff
85cf2a3692
Fix lint
2017-01-26 13:29:56 +00:00
Richard van der Hoff
c9b700ef6a
Merge branch 'matthew/warn-unknown-devices' into matthew/blacklist-unverified
2017-01-26 13:25:10 +00:00
Matthew Hodgson
5911c4d2db
don't automatically mark devices as known; require the app to do it
2017-01-25 23:53:51 +01:00
Richard van der Hoff
5245c7f2ab
Merge remote-tracking branch 'origin/develop' into matthew/warn-unknown-devices
2017-01-25 11:03:23 +00:00
Richard van der Hoff
4ccd649358
Address my own review comments
2017-01-25 11:02:49 +00:00
Matthew Hodgson
3d30ad843f
make it work
2017-01-22 01:29:33 +01:00
Matthew Hodgson
d37935dd78
actually consider _crypto.getGlobalBlacklistUnverifiedDevices
2017-01-21 17:51:48 +00:00
Matthew Hodgson
512d5882c9
track whether we blacklist unverified devices per-room & globally
2017-01-21 17:38:35 +00:00
Matthew Hodgson
e79926db6c
fix lint
2017-01-21 05:26:01 +00:00
Matthew Hodgson
34a0bd4c38
oops, unbreak it
2017-01-21 05:13:12 +00:00
Matthew Hodgson
fb820fa9a7
experimental support for warning users when unknown devices show up in a room.
...
hopefully a step towards fixing https://github.com/vector-im/riot-web/issues/2143
2017-01-21 05:10:51 +00:00
David Baker
423175f539
eslint --fix for dangley commas on function calls
2017-01-20 16:12:02 +00:00
David Baker
7bca05af64
eslint ---fix for prefer-const
2017-01-19 17:42:10 +00:00
Richard van der Hoff
c8b26eeac4
Support for importing megolm session keys
2017-01-14 00:45:03 +00:00
Kegan Dougal
5abf6b9f20
Manually patch up files which were formatted wrong
...
`eslint --fix` expands `if` statements incorrectly (wrong indentation).
2017-01-13 11:50:00 +00:00
Kegan Dougal
7ed65407e6
Pass through eslint --fix
2017-01-13 10:49:32 +00:00
David Baker
0a11404be2
Fix legitimate JSDoc errors
2017-01-12 11:46:07 +00:00
Kegan Dougal
ae6a409cc2
Move /lib to /src
2017-01-11 10:09:04 +00:00