This repository has been archived on 2022-08-19. You can view files and clone it, but cannot push or open issues or pull requests.
hydrogen-web/src/matrix/e2ee
Bruno Windels 44a2febce9 hook it up
2020-11-06 23:43:02 +01:00
..
megolm finish room encryption part 2020-11-06 18:56:32 +01:00
olm only keep 20 outbound olm sessions in memory at once to prevent OOM 2020-10-14 12:44:27 +02:00
Account.js open storage transactions synchronously 2020-09-28 16:06:41 +02:00
attachment.js Merge branch 'master' into bwindels/decrypt-images 2020-10-26 17:08:29 +01:00
common.js createEnum does not take an array 2020-09-18 13:08:35 +02:00
DecryptionResult.js make decryption algorithms return DecryptionResult 2020-09-08 10:48:11 +02:00
DeviceTracker.js open storage transactions synchronously 2020-09-28 16:06:41 +02:00
OlmWorker.js offload olm account creation in worker 2020-09-11 10:43:17 +02:00
README.md add prepareSync and afterPrepareSync steps to sync, run decryption in it 2020-09-10 12:11:43 +02:00
RoomEncryption.js hook it up 2020-11-06 23:43:02 +01:00

Integratation within the sync lifetime cycle

prepareSync

The session can start its own read/write transactions here, rooms only read from a shared transaction

- session
    - device handler
        - txn
            - write pending encrypted
        - txn
            - olm decryption read
        - olm async decryption
            - dispatch to worker
        - txn
            - olm decryption write / remove pending encrypted
- rooms (with shared read txn)
    - megolm decryption read

afterPrepareSync

- rooms    
    - megolm async decryption   
        - dispatch to worker

writeSync

- rooms (with shared readwrite txn)
    - megolm decryption write, yielding decrypted events
    - use decrypted events to write room summary

afterSync

- rooms
    - emit changes

afterSyncCompleted

- session
    - e2ee account
        - generate more otks if needed
        - upload new otks if needed or device keys if not uploaded before
- rooms
    - share new room keys if needed