Bruno Windels
a3e294bb60
small cleanup
2022-01-25 18:45:39 +01:00
Bruno Windels
993a86ddb2
convert SessionBackup to typescript and pass in keyloader
2022-01-20 11:16:08 +01:00
Bruno Windels
a4d924acd1
make KeyLoader use proper olm types
2022-01-20 11:15:48 +01:00
Bruno Windels
c9d11d6f19
missing otk count does not mean 0 but rather no change
2022-01-05 14:26:15 +01:00
Bruno Windels
aabfbf507e
typo in comments
2022-01-05 14:25:42 +01:00
Bruno Windels
dacdc1aec6
Merge pull request #597 from vector-im/ts-conversion-matrix-ssss
...
Convert matrix/ssss to typescript
2021-12-09 18:54:25 +01:00
Bruno Windels
8d315f2741
Merge branch 'master' into bwindels/log-signature-failure
2021-12-09 18:34:36 +01:00
RMidhunSuresh
dd4704b818
Fix imports
2021-12-03 11:36:49 +05:30
RMidhunSuresh
f9f59fec39
Convert common.js to ts
2021-12-03 11:34:09 +05:30
Bruno Windels
7e1818b285
Merge branch 'master' into bwindels/vite-mvp
2021-12-01 12:30:33 +01:00
RMidhunSuresh
0c424cb77f
Fix imports
2021-11-17 20:28:44 +05:30
RMidhunSuresh
88ec1b575d
Convert mergeMap.js to ts
2021-11-17 20:28:44 +05:30
RMidhunSuresh
c8eb7ea7ac
Convert Lock.js to ts
2021-11-17 20:28:44 +05:30
Bruno Windels
695996d6e2
add ILogger and ILogExport interface, to give export correct return type
...
also move logging related types to own file
2021-11-17 11:39:12 +01:00
Bruno Windels
2da450d69d
log signature verification failure in logger, not console
2021-11-15 15:27:57 +01:00
RMidhunSuresh
30a384fe1e
Make LogFilter optional
2021-11-15 18:44:25 +05:30
RMidhunSuresh
520e0f1b89
Use interface ILogItem
2021-11-15 17:29:08 +05:30
Bruno Windels
b6fda8865f
make all dependencies use vite and remove post-install script / lib dir
2021-11-08 11:10:34 +01:00
Bruno Windels
0749073120
clone key as olm clears it
2021-11-05 20:52:50 +01:00
Bruno Windels
80a98f04c7
pickle clears the key, so slice it before calling so we can reuse for 4s
2021-11-03 02:08:27 +01:00
Bruno Windels
567cdd5510
WIP for enabling session backup from dehydration key
2021-10-29 19:17:31 +02:00
Bruno Windels
44a26fd340
key backup: add disable button,and enabling add dehydrated device option
2021-10-29 15:48:28 +02:00
Bruno Windels
544019f67d
ensure olm Account in dehydrated device is freed on error
2021-10-28 11:52:32 +02:00
Bruno Windels
bef12c7a8f
prevent double free on olm account when logging out
...
by ensuring we only dispose the e2ee/Account once, as well as
the Session and other classes
2021-10-28 11:48:25 +02:00
Bruno Windels
e3378d5636
use correct device_id in signatures for dehydrating device
...
completely replace device id for dehydrating device
so we don't have to pass it down the stack
2021-10-27 18:08:50 +02:00
Bruno Windels
c89e414bb5
WIP3
2021-10-27 15:08:53 +02:00
Bruno Windels
718b410253
WIP2
2021-10-27 10:26:36 +02:00
Bruno Windels
faf4ea6434
WIP
2021-10-26 18:47:46 +02:00
Bruno Windels
67dd929951
put key session check in method
2021-10-26 11:14:46 +02:00
Bruno Windels
ab2f15b5a2
prevent cache hiding better keys in storage (+ tests)
2021-10-25 19:17:13 +02:00
Bruno Windels
3c2604b384
test that sessions get free'd correctly
2021-10-25 17:33:33 +02:00
Bruno Windels
74e8bc3bda
write unit tests
2021-10-25 17:19:48 +02:00
Bruno Windels
6bbce06d93
start writing tests for key loader
2021-10-22 19:01:20 +02:00
Bruno Windels
076f450ec7
this can be const
2021-10-22 18:01:26 +02:00
Bruno Windels
b7e3a54e15
remove now usused code
2021-10-22 17:51:00 +02:00
Bruno Windels
1278288a42
cleanup RoomKey to changes and better naming
2021-10-22 17:50:30 +02:00
Bruno Windels
66a93ee108
adapt Session and RoomEncryption to megolm/Decryption API changes
2021-10-22 17:48:53 +02:00
Bruno Windels
ac23119838
convert SessionDecryption to TS and adapt to use KeyLoader
2021-10-22 17:48:35 +02:00
Bruno Windels
b55930f084
convert ReplayDetectionEntry to typescript
2021-10-22 17:47:29 +02:00
Bruno Windels
d6e243321b
convert megolm/Decryption to typescript and adapt to KeyLoader
2021-10-22 17:46:39 +02:00
Bruno Windels
2ddb3fbf72
cleanup
2021-10-22 17:45:55 +02:00
Bruno Windels
77d10c93d6
convert groupby and megolm decryption utils to typescript
2021-10-21 14:40:51 +02:00
Bruno Windels
66a77519d7
implement key caching in KeyLoader
...
merging session cache into it so we can better manage and recycle
keys without exposing too low-level public methods on BaseLRUCache.
Using refCount instead of inUse flag as a key can of course be used
by multiple useKey calls at the same time.
2021-10-21 11:12:54 +02:00
Bruno Windels
3bafc89855
remove unused draft code
2021-10-20 15:25:11 +02:00
Bruno Windels
4fa285e85a
convert LRUCache to ts
2021-10-20 15:24:58 +02:00
Bruno Windels
041cedbc58
fix typescript extension change
2021-10-20 15:24:39 +02:00
Bruno Windels
cbf82fcd29
cleanup code so far
2021-10-20 15:14:17 +02:00
Bruno Windels
5dc0c8c0b3
make 'better' better
2021-10-20 13:38:54 +02:00
Bruno Windels
d7407ecf66
WIP
2021-10-20 11:39:01 +02:00
Bruno Windels
77bd0d3f3c
store e2ee session values as well in localStorage
2021-09-29 11:49:58 +02:00
Bruno Windels
0d6ae19d99
use same code to add room to identity in migration as in device tracker
2021-08-30 15:05:57 +02:00
Bruno Windels
8e6bd6a7a1
add missing room ids to identities for tracked rooms & clear outbound session
2021-08-27 19:39:24 +02:00
Bruno Windels
f16c08f13e
remove room from all user identities when leaving
...
and delete identity as well as all device identities if no rooms left
2021-05-06 15:24:52 +02:00
Bruno Windels
a12f10dc3c
make type explicit
2021-05-06 15:23:33 +02:00
Bruno Windels
e17fb24bd8
also await sharing the key in encrypt
2021-04-09 10:37:55 +02:00
Bruno Windels
13f20cdd26
wait for running key share operation in encrypt
2021-04-09 10:37:43 +02:00
Bruno Windels
d88720a18f
don't start key backup operation if not enabled
2021-03-15 16:54:43 +01:00
Bruno Windels
8684d6b5e5
some fixes
2021-03-15 15:23:35 +01:00
Bruno Windels
fcc06b2754
WIP to add logging to decryption and fetching key backups
2021-03-15 14:39:42 +01:00
Bruno Windels
f2dc7728a5
notifyRoomKey was a better name
2021-03-15 14:36:38 +01:00
Bruno Windels
96f060c0a9
also retry decryption for backfilled entries
...
as their event ids won't be stored along the missing key (we only store
synced items so we don't fill up the missing event ids in the store
with undecryptable backfilled event ids)
2021-03-15 14:33:14 +01:00
Bruno Windels
4b62e0a2ce
extract retry event ids for key before overwriting key on key backup
2021-03-15 13:38:27 +01:00
Bruno Windels
8cd6a7988a
on fill server OTKs up to max/2
...
so we don't remove keys for yet to be received
olm messages that claimed a key
2021-03-09 12:33:31 +01:00
Bruno Windels
30b056af1c
let devices know we can't claim their OTKs
2021-03-08 16:19:46 +01:00
Bruno Windels
30525cf391
oops, missing await to store new olm sessions!
2021-03-08 16:19:28 +01:00
Bruno Windels
4e0bd16a4e
reuse LRU Cache for session cache
2021-03-05 17:01:38 +01:00
Bruno Windels
5682e715e6
prevent multiple checks if a new room key is better
2021-03-05 10:07:48 +01:00
Bruno Windels
e0d14207ac
make opening a txn async again
...
as we'll need to await a bogus request first thing after opening the txn
funny enough, we originally made it sync to accommodate the same bug
in safari, but that didn't prevent any microtask being awaited
before scheduling a request in the calling code closing the txn.
We'll await a bogus request within the transaction class now so it
doesn't depend on the calling code
2021-03-04 19:47:02 +01:00
Bruno Windels
4445b1ee01
store key share operations before tracking the room
2021-03-03 18:56:16 +01:00
Bruno Windels
e7598b9c76
only request key backup for events that are UTD
2021-03-03 14:03:50 +01:00
Bruno Windels
30481a5a9e
add logging to key sharing and discarding in reaction to member changes
2021-03-03 14:03:50 +01:00
Bruno Windels
f3c49e51f2
add, don't replace timeline retry entries
...
also, filter out any that have been decrypted already
2021-03-03 14:03:50 +01:00
Bruno Windels
56db210763
attempt at fixing https://github.com/vector-im/hydrogen-web/issues/245
2021-03-03 14:03:50 +01:00
Bruno Windels
e29bc6710a
bring back missing import
2021-03-03 14:03:50 +01:00
Bruno Windels
c6db23bcfb
WIP to store missing session event ids
2021-03-03 14:03:50 +01:00
Bruno Windels
3fa2d22015
remove isTimelineOpen flag and rather do the check to verify in Room
...
flags are ugly, let's avoid them where we can
2021-03-03 14:03:50 +01:00
Bruno Windels
8d080163b3
reattempt decryption for timeline items
2021-03-02 19:39:04 +01:00
Bruno Windels
8a39c16a38
fix name conflict with _sessionInfo in parent class
2021-03-02 19:39:04 +01:00
Bruno Windels
a536ea7742
comment to explain replay attack better
2021-03-02 19:39:04 +01:00
Bruno Windels
a33200d926
fix sender key lookup for room key coming from olm
2021-03-02 19:39:04 +01:00
Bruno Windels
fb446167f6
make new sync room keys available during decryption of same sync
2021-03-02 19:39:04 +01:00
Bruno Windels
dd38fc13d7
log sending messages
2021-02-23 19:22:59 +01:00
Bruno Windels
57bb75e864
log login & loading a session
2021-02-23 19:22:25 +01:00
Bruno Windels
c5c0a181ff
move check for devicelists up in Session.writeSync, and more logging
2021-02-18 19:56:10 +01:00
Bruno Windels
cd68bb7b3f
log when devices get marked as outdated
2021-02-18 14:00:06 +01:00
Bruno Windels
9f9de0988e
don't log here yet as the logger isn't passed from createIdentity yet
2021-02-18 12:44:19 +01:00
Bruno Windels
f321968ac3
add more sync logging
2021-02-18 12:44:19 +01:00
Bruno Windels
d39c3812b2
Merge pull request #231 from vector-im/bwindels/logs
...
Structured logging
2021-02-17 10:19:46 +00:00
Bruno Windels
bbab1e9ecc
move base64/58 encoding into platform
...
fixes https://github.com/vector-im/hydrogen-web/issues/99
2021-02-12 16:01:54 +01:00
Bruno Windels
e515548037
add some comments while debugging a problem
2021-02-11 21:08:06 +01:00
Bruno Windels
262cc8936e
don't leak mimetype for encrypted attachments
2020-11-13 19:10:04 +01:00
Bruno Windels
366f3c0bba
iv and digest are sent in unpadded base64
2020-11-11 11:50:20 +01:00
Bruno Windels
e9324ad678
support jwk keys to encrypt
2020-11-11 11:47:39 +01:00
Bruno Windels
c289bcd097
return blob from encryptAttachment
2020-11-11 10:46:37 +01:00
Bruno Windels
2cfffa015d
WIP
2020-11-10 22:36:26 +01:00
Bruno Windels
f5480b7708
provide random value for IE11
2020-11-10 18:31:18 +01:00
Bruno Windels
ba323c65d6
fix typo in name
2020-11-10 18:30:48 +01:00
Bruno Windels
de143fdafc
update timestamp when creating a new megolm session
2020-11-10 16:17:56 +01:00
Bruno Windels
769feac73c
cleanup
2020-11-10 14:02:27 +01:00
Bruno Windels
5f6ad91ff2
offload creating an olm session to the olm worker
...
so IE11 doesn't lock up when you start typing
2020-11-10 11:04:09 +01:00