-
Notifications
You must be signed in to change notification settings - Fork 56
_GSoC 2019 E2EE reports
Alexey Andreyev edited this page Aug 25, 2019
·
2 revisions
Name: Alexey Andreyev
e-mail: [email protected]
matrix: @aa13q:matrix.org
Idea: "Adding end-to-end encryption to more clients"
Mentors: Alexey Rusakov, Hubert Chathi
Contribution: libQuotient GSoC E2EE PRs list
- Update the epic at the github repo
- Implement
EncryptionManager
with qtolm - * Implement qt5keychain based olm pickle saving (side task)
- Implement creating and registering one-time keys
- Implement configuring a room to use encryption
- Handle incoming events (
m.room.encryption
,m.room.encrypted
,m.room_key
events) - Downloading the device list for users in the room
- 1st bonding week: (6/05 - 12/05) formed manuals list, dived into the documentation. Formed a task to research libqtolm possible integration
- 2nd bonding week: (13/05 - 19/05) worked on a side task: "User color coding", added PRs to the Quotient library and the Quaternion client.
- 3rd bonding week: (20/05 - 26/05) trying libqtolm integration options: found qt5.10 qrandomgenerator usage
Coding officially begins
- 1st week: (27/05 - 2/06): added initial Qt<5.10 support to qtolm, integrated qtolm to quotient
- 2nd week: (03/06 - 09/06) started working at issue quotient-im#87 "Upload device public keys". Saved for later (as TODO) a task of saving olm account pickle via qt5keychain.
- 3rd week: (10/06 - 16/06) worked on "Upload one-time keys task", OneTimeKeysManager class.
-
4th week: (17/06 - 23/06) finishing "Upload one-time keys task, moving from OneTimeKeysManager to EncryptionManager, changed settings API to appropriate
AccountSettings::encryptionAccountPickle
- 5th week: (24/06 - 30/06) finished EncryptionManager implementation draft, pushed PR, planning to implement handling incoming encryption events
1st evaluation passed
- 6th week: (01/07 - 07/07) olm PR, libQtOlm MR about in-tree dependencies building. Time to finish the first PR and focus on message receiving
-
7th week: (08/07 - 14/07) minor matrix-doc PR and libQuotient PR about the constants naming. Implementing
m.room.encrypted
events support, help from mentors about implementation structure - 8th week: (15/07 - 21/07) Implementing olm/megolm context managing at Room class
- 9th week: (22/07 - 28/07) Finishing "E2EE: introduce EncryptedEvent" PR
2nd evaluation passed
-
10th week: (29/07 - 04/08) Working on EncryptedEvent missed parts (megolm
message_index
), working onm.room_key
support - 11th week (05/08 - 11/08) Implementing olm decryption logic
- 12th week (12/08 - 18/08) Implemening megolm decryption logic
- 13th week (19/08 - 25/08) Actively fixing bugs, adding missing parts, refactoring, testing decryption, providing PR, final evaluation
Final evaluation time: August 26, 2019 -- September 2, 2019