Table of Contents
The pEp Engine is the core component of every pEp-enabled application and app. It contains all the important functionality to add encryption to a messaging application in one library. Thus, the pEp Engine is part of every product we develop at pEp.
This page gives an overview over the available documentation for developers surrounding the engine.
pEp Engine is released under the GPLv3 license, and proprietary licenses.
pEp Engine is written in C99, some of which is generated using the tool yml2.
pEp Engine currently runs on the following platforms:
- Android
- iOS
- macOS
- Linux
- Windows
- OpenBSD
- z/OS
The code can be found here.
Some releases of the engine have undergone a security audit. The audit reports can be found here.
The readme can be found here.
Build instructions (for engine and adapters combined) can be found here (broken link).
Information on testing the engine can be found here and here. For testing some parts of the sync protocol implementation, there is more information here.
The interface between engine and adapters is described here.
Since the engine and adapters are closely coupled, there is a combined release process for both. Details on the release process can be found here.
Information on the bug reporting and feature request process can be found here.
A deep dive
Below is a collection of links explaining in detail different aspects of the inner workings of the engine.
On transporting messages in-line, for transports where attachments are not supported: engine--elevated-attachments.
On what the engine does not do: engine--general.
A short note about input/output to/from the engine: engine--uncategorised-development-themes--managing-expectations-for-message-attachments.
Information for application developers: pep-from-an-application-developers-perspective.
The inner workings of the KeySync protocol: engine--key-sync.
How the engine uses some terms differently than they are used in OpenPGP: engine--pep-vs-openpgp.
Archive
The following resources have parts that are outdated, but may still be useful.
Generic overview: engine--basic-concepts-of-the-pep-engine.
On files and paths used by the engine. Out of date for the parts that concern crypto libraries other than sequoia (such as GPG): engine--files-and-paths.
Unclear, if still applicable: engine--group-key-reset.
Not current as of 2.0, describing message formats and handling MIME: email-messages-mime-and-message-2-0.
Passive mode: engine--passive-mode.
On Trustwords (incomplete): engine--trustwords.
Other ancient information:
The content of this wiki is being migrated from an old system, and as of late 2023 / early 2024 a few links may still be broken and some pages may be obsolete.
See 0000-notes-about-this-wiki about the conversion. Please forgive the temporary mess.
(Note for ourselves: this is in _Sidebar.md.)