Encryption
Dependencies
To enable encryption, you must first have maubot installed with the encryption
optional dependency. To do this, you can either add [encryption]
at the end
of the package in the pip install
command, e.g. pip install --upgrade maubot[encryption]
.
Alternatively, you can install the dependencies manually (python-olm
,
pycryptodome
and unpaddedbase64
). The Docker image has all optional
dependencies installed by default.
Note that installing python-olm
requires libolm3 with dev headers, Python dev
headers, and a C compiler. This means libolm-dev
, python3-dev
and
build-essential
on Debian 11+ and Ubuntu 19.10+.
If you want to avoid the dev headers, you can install the libolm3
package
without -dev and get a pre-compiled python-olm from gitlab.matrix.org's PyPI
registry. However, this method has not been tested properly, so it might not
work at all.
pip install python-olm --extra-index-url https://gitlab.matrix.org/api/v4/projects/27/packages/pypi/simple
To install python-olm on macOS, you can use libolm from homebrew like this:
brew install libolm
pip3 install python-olm --global-option="build_ext" --global-option="--include-dirs="`brew --prefix libolm`"/include" --global-option="--library-dirs="`brew --prefix libolm`"/lib"
Getting a fresh device ID
When using maubot with encryption, you must have an access token and a device ID
that haven't been used in an e2ee-capable client. In other words, you can't take
the access token from Element, you have to log in manually. The easiest way to
do that is to use mbc auth
.
Actually enabling encryption
After installing dependencies, put the device ID in the maubot client, either
using the web UI or just the --update-client
flag with mbc auth
.