1 # this file is under Creative Commons License 3.0 cc-by-sa
9 The p≡p engine is a Free Software library encapsulating implementations of:
13 Key Management in p≡p engine is based on GnuPG key chains (NetPGP on iOS).
14 Keys are stored in an OpenPGP compatbile format and can be used for different
15 crypto implementations.
19 p≡p engine is sporting a two phase trust rating system. In phase one there is
20 a rating based on channel, crypto and key security named “comm_types”. In
21 phase 2 these are mapped to user representable values which have attached
22 colors to present them in traffic light semantics.
26 The Abstract Crypto API is providing functions to encrypt and decrypt data or
27 full messages without requiring an application programmer to understand the
28 different formats and standards.
32 p≡p engine will sport a growing list of Message Transports to support any
33 widespread text messaging system including E-Mail, SMS, XMPP and many more.
35 p≡p engine is written in C99. It is not meant to be used in application code
36 directly. Instead, p≡p engine is coming together with a list of software
37 adapters for a variety of programming languages and development environments.
39 p≡p engine is under Gnu General Public License v3. If you want to use it under
40 a different license, please contact mailto:council@pep.foundation.
46 p≡p engine is depending on the following FOSS libraries:
48 * libetpan, see https://github.com/fdik/libetpan
49 git clone https://github.com/fdik/libetpan
51 * zlib, see http://zlib.net/
53 * OpenSSL, see http://openssl.org/
55 * iconv, see http://www.gnu.org/software/libiconv/
57 * Cyrus SASL, see http://cyrusimap.org/
59 * GnuPG via GPGME, version 1.6.0 or newer, see https://gnupg.org/
61 * NetPGP/p≡p, see https://cacert.pep.foundation/dev/repos/netpgp-et/
63 * Asn1c, download from https://lionet.info/soft/asn1c-0.9.27.tar.gz
64 (Debian's version 0.9.24 does not work)
66 * yml2, which needs lxml (where to get?)
68 2. Building p≡p engine
69 ----------------------
71 p≡p engine has an old style Makefile for building it.
73 The build is configured in Makefile.conf
75 It supports the common targets
83 $ make package # for building a .tar.bz2 with the source distribution
85 On Windows, use Visual Studio.
91 For cross-building, BUILD_FOR is being used. I.e.:
93 $ BUILD_FOR=yourOS make -e
96 4. How to build the databases
97 -----------------------------
99 p≡p Engine uses two databases: ~/.pEp_management (on *NIX) or
100 %LOCALAPPDATA%\pEp\management.db on Windoze respectively, and
101 /usr/local/share/system.db on *NIX or %ALLUSERSPROFILE%\pEp\system.db
102 respectively. The latter contains the Trustwords dbs.
104 The managment db is being created by the first call of init() of p≡p Engine. It
105 does not need to be created manually. system.db is being created by using the
106 DDL in db/create_system_db.sql – the content is created by db/dic2csv.py
107 out of hunspell's dictionary packages (or something similar) and then being
108 imported using sqlite3's .import command. Dictionary files for different
109 languages are part of p≡p engine source distribution.
114 You can test the Trustwords in system.db using db/trustwords.py
115 Both Python tools have a switch --help
118 5. How to run the tests
119 -----------------------
121 You have to import all the test keys into your local gpg instance:
124 cat 0x*.asc *_sec.asc| gpg --import