vb@447
|
1 |
p≡p Engine
|
vb@16
|
2 |
==========
|
vb@16
|
3 |
|
vb@448
|
4 |
0. What it is
|
vb@448
|
5 |
-------------
|
vb@16
|
6 |
|
vb@447
|
7 |
The p≡p engine is a Free Software library encapsulating implementations of:
|
vb@447
|
8 |
|
vb@447
|
9 |
- Key Management
|
vb@447
|
10 |
|
vb@447
|
11 |
Key Management in p≡p engine is based on GnuPG key chains (NetPGP on iOS).
|
vb@447
|
12 |
Keys are stored in an OpenPGP compatbile format and can be used for different
|
vb@447
|
13 |
crypto implementations.
|
vb@447
|
14 |
|
vb@447
|
15 |
- Trust Rating
|
vb@447
|
16 |
|
vb@447
|
17 |
p≡p engine is sporting a two phase trust rating system. In phase one there is
|
vb@447
|
18 |
a rating based on channel, crypto and key security named “comm_types”. In
|
vb@447
|
19 |
phase 2 these are mapped to user representable values which have attached
|
vb@447
|
20 |
colors to present them in traffic light semantics.
|
vb@447
|
21 |
|
vb@447
|
22 |
- Abstract Crypto API
|
vb@447
|
23 |
|
vb@447
|
24 |
The Abstract Crypto API is providing functions to encrypt and decrypt data or
|
vb@447
|
25 |
full messages without requiring an application programmer to understand the
|
vb@447
|
26 |
different formats and standards.
|
vb@447
|
27 |
|
vb@447
|
28 |
- Message Transports
|
vb@447
|
29 |
|
vb@447
|
30 |
p≡p engine will sport a growing list of Message Transports to support any
|
vb@447
|
31 |
widespread text messaging system including E-Mail, SMS, XMPP and many more.
|
vb@447
|
32 |
|
vb@447
|
33 |
p≡p engine is written in C99. It is not meant to be used in application code
|
vb@447
|
34 |
directly. Instead, p≡p engine is coming together with a list of software
|
vb@447
|
35 |
adapters for a variety of programming languages and development environments.
|
vb@447
|
36 |
|
vb@447
|
37 |
p≡p engine is under Gnu General Public License v3. If you want to use it under
|
vb@447
|
38 |
a different license, please contact mailto:council@pep.foundation.
|
vb@447
|
39 |
|
vb@448
|
40 |
|
vb@448
|
41 |
1. Dependencies
|
vb@448
|
42 |
---------------
|
vb@448
|
43 |
|
vb@448
|
44 |
p≡p engine is depending on the following FOSS libraries:
|
vb@448
|
45 |
|
vb@448
|
46 |
libetpan, see https://github.com/fdik/libetpan
|
vb@448
|
47 |
zlib, see http://zlib.net/
|
vb@448
|
48 |
OpenSSL, see http://openssl.org/
|
vb@448
|
49 |
iconv, see http://www.gnu.org/software/libiconv/
|
vb@448
|
50 |
Cyrus SASL, see http://cyrusimap.org/
|
vb@448
|
51 |
GnuPG via GPGME, see https://gnupg.org/
|
vb@448
|
52 |
NetPGP/p≡p, see https://cacert.pep.foundation/dev/repos/netpgp-et/
|
vb@448
|
53 |
|
vb@448
|
54 |
|
vb@448
|
55 |
2. Building p≡p engine
|
vb@448
|
56 |
----------------------
|
vb@448
|
57 |
|
vb@447
|
58 |
p≡p engine has an old style Makefile for building it.
|
vb@16
|
59 |
|
vb@37
|
60 |
The build is configured in Makefile.conf
|
vb@37
|
61 |
|
vb@16
|
62 |
It supports the common targets
|
vb@16
|
63 |
|
vb@16
|
64 |
$ make all
|
vb@16
|
65 |
$ make install
|
vb@16
|
66 |
$ make clean
|
vb@16
|
67 |
|
vb@16
|
68 |
and additionally
|
vb@16
|
69 |
|
vb@16
|
70 |
$ make package # for building a .tar.bz2 with the source distribution
|
vb@16
|
71 |
|
vb@447
|
72 |
On Windows, use Visual Studio.
|
vb@16
|
73 |
|
vb@16
|
74 |
1. How to cross-build
|
vb@16
|
75 |
---------------------
|
vb@16
|
76 |
|
vb@16
|
77 |
For cross-building, BUILD_FOR is being used. I.e.:
|
vb@16
|
78 |
|
vb@448
|
79 |
$ BUILD_FOR=yourOS make -e
|
vb@448
|
80 |
|
vb@16
|
81 |
|
vb@16
|
82 |
2. How to build the databases
|
vb@16
|
83 |
-----------------------------
|
vb@16
|
84 |
|
vb@447
|
85 |
p≡p Engine uses two databases: ~/.pEp_management (on *NIX) or
|
vb@16
|
86 |
%LOCALAPPDATA%\pEp\management.db on Windoze respectively, and
|
vb@16
|
87 |
/usr/local/share/system.db on *NIX or %ALLUSERSPROFILE%\pEp\system.db
|
vb@447
|
88 |
respectively. The latter contains the Trustwords dbs.
|
vb@16
|
89 |
|
vb@447
|
90 |
The managment db is being created by the first call of init() of p≡p Engine. It
|
vb@16
|
91 |
does not need to be created manually. system.db is being created by using the
|
vb@16
|
92 |
DDL in db/create_system_db.sql – the content is created by db/dic2csv.py
|
vb@16
|
93 |
out of hunspell's dictionary packages (or something similar) and then being
|
vb@448
|
94 |
imported using sqlite3's .import command. Dictionary files for different
|
vb@448
|
95 |
languages are part of p≡p engine source distribution.
|
vb@448
|
96 |
|
vb@448
|
97 |
$ make db
|
vb@448
|
98 |
$ make -C db install
|
vb@16
|
99 |
|
vb@447
|
100 |
You can test the Trustwords in system.db using db/trustwords.py
|
vb@16
|
101 |
Both Python tools have a switch --help
|
vb@16
|
102 |
|