Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support end-to-end encryption #12

Open
jaredoconnell opened this issue Sep 28, 2020 · 3 comments
Open

Support end-to-end encryption #12

jaredoconnell opened this issue Sep 28, 2020 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@jaredoconnell
Copy link
Contributor

End to End Encryption is very important since most servers use it. Messages sent by others are not readable without this supported.

These must be supported:

  • Decrypting received messages
  • Encrypting messages that are being sent
  • All of the other stuff that must be done to verify the client.

Ideally, the API should not change in any way except the necessary things to setup E2E, as well as a bool or something in the message object that states whether the messages are encrypted.

@jaredoconnell jaredoconnell added the enhancement New feature or request label Sep 28, 2020
@jaredoconnell
Copy link
Contributor Author

jaredoconnell commented Oct 1, 2020

It appears that we will be using OLM for encryption. It's designed by matrix.org for this. It's even natively written in C++. All other apps are using bindings.

https://gitlab.matrix.org/matrix-org/olm The documentation appears to be good.
https://matrix-client.dpldocs.info/matrix.olm.html

Here is a master's thesis about adding E2EE: https://www.theseus.fi/bitstream/handle/10024/264169/makkonen_teemu.pdf?sequence=2

Here is another page for API endpoint information: https://matrix.org/docs/api/client-server/#/

This project is a C++ project that uses it, as an example: https://github.com/Nheko-Reborn/mtxclient

@fire
Copy link

fire commented Nov 6, 2020

What are the tasks needed to support this?

@kdvalin
Copy link
Contributor

kdvalin commented Nov 7, 2020

Currently tasks needed (not necessarily in this order):

  • Get OLM into the CMake Buildchain
  • Update Rooms to have an bool encrypted member (in progress/needs testing)
  • Message Decryption
  • Have a way to give encryption keys to program using the library for storage
  • Message Encryption

You can checkout the issue-12/feature-e2e branch for current code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants