Go to file
Krista Bennett c5a93381de ENGINE-209: shelving changes quickly 2017-05-17 13:34:55 +02:00
asn.1 KeySync: moved some code, added some comments, fixed some maybe-bug in still untested groupMerge scenario. Preparing for having all devices in a group to show handshake dialog 2017-03-01 15:08:55 +01:00
build-android JNI-26 add include files to android's build output 2017-01-12 18:51:14 +01:00
build-linux adding license info to each file 2016-12-27 21:13:41 +01:00
build-mac Update xcode project to reflect new openSSL include path in iOS build 2017-04-25 17:21:51 +02:00
build-windows adding license info to each file 2016-12-27 21:13:41 +01:00
db ENGINE-201 trustwords, not simply woorden 2017-05-12 18:07:54 +02:00
src ENGINE-209: shelving changes quickly 2017-05-17 13:34:55 +02:00
sync Sync: enable fast polling right after sending beacon 2017-04-28 19:03:21 +02:00
test Factorized and reworked fingerprint comparison code - cosmetic change in trustword test 2017-05-03 18:29:06 +02:00
.hgignore sync: documentation, moved generated code, updated .hgignore, cleaning 2016-12-08 00:51:41 +01:00
LICENSE.txt should be there 2014-09-26 19:26:31 +02:00
Makefile adding license info to each file 2016-12-27 21:13:41 +01:00
Makefile.conf add -DDEBUG_ERRORSTACK 2017-04-21 21:39:28 +02:00
README-OSX.md Fixed incorrect instructions for running test 2017-03-27 16:42:58 +02:00
README.txt Add gpgme min required version to doc 2017-03-30 17:32:55 +02:00
TODO.txt adding license info to each file 2016-12-27 21:13:41 +01:00
macports_env.sh adding license info to each file 2016-12-27 21:13:41 +01:00


This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# this file is under Creative Commons License 3.0 cc-by-sa

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, version 1.6.0 or newer, 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