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