aboutsummaryrefslogtreecommitdiff
path: root/src/omemo/README.md
blob: 1367f45c6a523d6d916c277c24d37b64473fad65 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!--
SPDX-FileCopyrightText: 2022 Linus Jahn <lnj@kaidan.im>

SPDX-License-Identifier: CC0-1.0
-->

QXmpp OMEMO module
==================

The QXmpp OMEMO module adds support for OMEMO (v0.8+) end-to-end encryption by
providing the `QXmppOmemoManager`.

Dependencies
------------

 * [QCA (Qt Cryptographic Architecture)](https://invent.kde.org/libraries/qca)
 * [libomemo-c](https://github.com/dino/libomemo-c) (built with `-DBUILD_SHARED_LIBS=ON`)

Building
--------

By default QXmpp is built without the OMEMO module. To enable it you need to
provide `-DBUILD_OMEMO=ON` to cmake:

    cmake <qxmpp folder> -DBUILD_OMEMO=ON

Usage
-----

QXmpp OMEMO is available as a CMake module. You can use it like this:

```cmake
find_package(QXmpp COMPONENTS Omemo)
target_link_libraries(${PROJECT} PRIVATE QXmpp::QXmpp QXmpp::Omemo)
```

How to use the OMEMO Manager is explained in the code documentation.

Licensing issues
----------------

QXmppOmemo itself is (like the core) licensed under LGPL-2.1-or-later. However,
as of today it is linking to `libomemo-c` which uses GPL-3.0. *This means that
the resulting binaries must be used under the terms of the **GPL-3.0**.*

We might move to a different, more permissive OMEMO library in the future and
in that case no relicensing would be necessary.