You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Volker Birk bf6f4a689a add default values to the example 3 months ago
.gitlab-ci-files CI: build CentOS/RedHat 8 RPM packages 2 years ago
api gitea-87: new pEp protocol 3.3 using a new (incompatible) way to compute trustwords 5 months ago
asn.1 configure to build 4 months ago
build-android PEMA-103 Make engine depend on transport 6 months ago
build-win64 configure to build 4 months ago
build-windows Update Windows build file 1 year ago
codegen generate with asn1c and nmake 4 months ago
db fix ENGINE-956 2 years ago
doc make doxygen output nicer 1 year ago
old add release script 6 months ago
pEpMIME Add support for $(DESTDIR) to Makefiles. 2 years ago
scripts CI: make build jobs much faster 2 years ago
src having a non-installed include file makes build troubles 3 months ago
test handle the new environment variable PEP_NOABORT, and define that when running the test suite: fix 4 months ago
.gitignore cleanup 3 months ago
.gitlab-ci.yml CI: make build jobs much faster 2 years ago
CC_BY-SA.txt Move most documentation to doc/, update README 6 years ago
DEPENDENCIES DEPENDENCIES: use the new pEpEngineSequoiaBackend release 4 months ago
LICENSE.txt Move most documentation to doc/, update README 6 years ago
Makefile factor makefiles 4 months ago
Makefile.conf factor makefiles 4 months ago
NEWS link build instructions 4 months ago
NMakefile.mak generate with asn1c and nmake 4 months ago
README.WINDOWS add some windows documentation and comments 7 months ago whitespace 4 months ago
THANKS documentation: punctuation 4 months ago adding trust sync files to 3 years ago
engine_doxygen.conf attempts to generate sync doc 3 years ago
local.conf.example major Makefile.conf refactoring and simplification; solve gitea-117 4 months ago
local.mak.example add default values to the example 3 months ago test fix 3 years ago
release release script: add a "v" prefix to versions when printing, so that I do not forget to use the correct branch name 4 months ago

What is the p≡p Engine?

The p≡p Engine is a Free Software library encapsulating implementations of:

  • Key Management

    Key Management in the p≡p Engine is based on GnuPG key chains (NetPGP on iOS). Keys are stored in an OpenPGP-compatible format, and can be used for different crypto implementations.

  • Trust Rating

    The p≡p Engine sports a two phase trust rating system for messages: In phase one a rating is derived based on channel, crypto and key security. This is named "comm_types". In phase two these ratings are mapped to user-representable values mimicking the semantics of a traffic light.

  • Abstract Crypto API

    The Abstract Crypto API provides functions to encrypt and decrypt data or full messages, without requiring an application programmer to understand the different applied formats and standards.

  • Message Transports

    The p≡p Engine will sport a growing list of message transports, to support any widespread text-based messaging system such as E-Mail, SMS, XMPP and many more.

The p≡p Engine is written in C17 and is expected to run on any platform that conforms to the SUS/POSIX specification. Selected non-SUS platforms are supported as well (such as Microsoft Windows).

How can I use the p≡p Engine?

The official build instructions can be found at the URL The p≡p Engine is not meant to be used in application code directly. Instead, the p≡p Engine is meant to be used in conjunction with a so-called "adapter". An adapter provides an API in a programming language that best accomodates developers in their respective software development ecosystem. So, for example, a Java Native Interface adapter exists for development of apps for the Android mobile operating system, or a .NET adapter exists for development of applications on Microsoft Windows. Various adapters are also available at the link provided for the p≡p Engine's code above.

What is the current state of the project?

The p≡p Engine is production-ready. It is under active development by several full-time employees of the p≡p foundation and its partner organizations. The most recent version of the source code can be obtained here: This is the only offical way to obtain a copy of the source code.

I would like to contribute to the p≡p Engine or a related project, where do I start?

First of all, excellent! You can find further information here:

Legal notes

The p≡p Engine is Copyright 2015-2023 by p≡p foundation, Switzerland. The source code of the p≡p Engine is licensed under the terms of the GNU General Public License version 3. Accompanying documentation is licensed under the terms of the Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) License. Each file includes a notice near its beginning, that indicates the applicable license. If you wish to license the p≡p Engine under different terms, please contact

src/pEp_rmd160.c is adapted from LibTomCrypt by Tom St Denis, which was released by its authors into the public domain.


The p≡p foundation and the developers of the p≡p Engine can be reached as detailed here: