README.txt
author Volker Birk <vb@pep-project.org>
Tue, 16 Feb 2016 16:02:16 +0100
changeset 448 a614a8dcf250
parent 447 6190f1ed4466
child 528 587f602bf045
permissions -rw-r--r--
adding dependencies
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