Open jaredoconnell opened 4 years ago
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
What are the tasks needed to support this?
Currently tasks needed (not necessarily in this order):
bool encrypted
member (in progress/needs testing)You can checkout the issue-12/feature-e2e branch for current code
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:
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.