Skip to content
This repository has been archived by the owner on Aug 28, 2019. It is now read-only.

GSoC 2019 reports

Alexey Andreyev edited this page Jul 8, 2019 · 21 revisions

Google Summer of Code 2019

Matrix project contribution reports: libQuotient end-to-end encryption

Name: Alexey Andreyev

e-mail: yetanotherandreyev@gmail.com

matrix: @aa13q:matrix.org

Idea: "Adding end-to-end encryption to more clients"

Mentors: Alexey Rusakov, Hubert Chathi

Working branch: aa13q-E2EE

Weekly plan

  • 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

History

  • 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

  • 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) Implement m.encrypted events support

Clone this wiki locally