8
3
Fork
You've already forked pEpEngine
1
Page: engine
Pages 0000 notes about this wiki EpicBackup EpicStandardKeyserver Home adapter adapter build instructions version 3 x draft adapter adapter build instructions adapter adapter development adapter change management adapter change requests adapter cvs conventions adapter message to send passphrase adapter passphrase support adapter pep sec newjoiners dev adapter pull requests apps mime filenames builds cid build status per target env cid c i system comparisons cid ci and cd plan cid ci and cd proposal cid docker cid gitlab ci primer cid index cid internal deployment cid packaging concept cid previous resources cid processes cid projects cid code generation common adapter documentation adapter build instructions common adapter documentation adapters common adapter documentation hecks notepad common adapter documentation how to write a pep adapter concepts email messages mime and message 2 0 engine::transport engine asn1 background engine asn1 message engine basic concepts of the pep engine engine cryptotech engine distribution protocols engine echo and session engine echo protocol engine elevated attachments engine enable log engine engine and adapter releases engine engine breakfast agenda 20200930 engine engine breakfast agenda 20201006 engine engine breakfast agenda 20201013 engine engine breakfast log 20191217 engine engine breakfast log 20200107 engine engine breakfast log 20200121 engine engine breakfast log 20200128 engine engine breakfast log 20200519 engine engine breakfast log 20200526 engine engine breakfast log 20200616 engine engine breakfast log 20200811 engine engine breakfast log 20210223 engine engine breakfast log 20210309 engine engine breakfast log 20210316 engine engine breakfast log 20210323 engine engine breakfast log 20210406 engine engine breakfast log 20211112 engine engine breakfast log 20220127 engine engine breakfast log 20220922 engine engine breakfast log 20221001 engine engine breakfast log 20221006 engine files and paths engine filing engine bugs and feature requests engine general engine gnupg disabled keys engine group encryption to do engine group encryption engine group key reset engine handshake from an application developers perspective engine identity engine key reset overview engine key reset use cases engine key reset engine key sync engine media keys engine message 2 0 and beyond engine message to send passphrase engine mime rules peg engine netpgp engine notes on engine testing engine offline transport engine online transport engine passive mode engine passphrase support engine pep auto consume engine pep message engine pep vs openpgp engine ratings table engine readme engine signed only engine sync and distribution engine sync folder mode engine sync from an application developers perspective engine sync protocol engine sync protocols engine testing pep sync engine tofu engine transport status code engine transport engine trust rating engine trust sync engine trustwords engine uncategorised development themes extracting keys engine uncategorised development themes extracting own public keys engine uncategorised development themes managing expectations for message attachments engine uncategorised development themes old instructions building the engine on debian engine uncategorised development themes playing with the management database engine user pseudonymity engine enigmail pep build enigmail enigmail pep enigmail dep matrix enigmail pep enigmail pep dev env enigmail pep enigmail pep enigmail pep enigmail git alias collection hg2git import from enigmail jobs json adapter about json adapter debug mini adapter json adapter message cache json adapter readme json adapter release builds json adapter rfc mutual auth json adapter session managment json adapter possibly outdated session managment lib pep adapter releases lib pep datatypes notes lib pep mime parsing heuristics lib pep mime list of projects using the engine macos adapter mainframe mime mixnet old document mixnet move engine attack vectors move engine dictionaries pep from an application developers perspective pep jni adapter releases pep python adapter quick setup for sync testing pep python adapter releases playground rtfm security model security models perimeter based vs zero trust software development crypto dev meetings 2016 09 26 software development crypto dev meetings 2016 10 24 software development crypto dev meetings 2017 02 24 software development crypto dev meetings 2018 06 19 software development migration hg git software development release process software development testing software projects overview source conventions specifications key reset specification specifications playground group encryption management specifications sample specification template and guide thunderbird tools and tips docker tools and tips transport config transport offline transport transport online transport transport transport status code transport transport windows character encoding windows desktop adapter
9 engine
Luca Saiu edited this page 2026年02月10日 14:41:02 +01:00
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.)

See https://pep-project.org.

Temporary notes for ourselves:

  • this is in _Footer.md.