README.txt
author Volker Birk <vb@pep.foundation>
Tue, 27 Dec 2016 21:13:41 +0100
changeset 1513 e7f7e42385b5
parent 805 f026ae414feb
child 1707 6c6e4315ba6f
permissions -rw-r--r--
adding license info to each file
vb@1513
     1
# this file is under Creative Commons License 3.0 cc-by-sa
vb@1513
     2
vb@447
     3
p≡p Engine
vb@16
     4
==========
vb@16
     5
vb@448
     6
0. What it is
vb@448
     7
-------------
vb@16
     8
vb@447
     9
The p≡p engine is a Free Software library encapsulating implementations of:
vb@447
    10
vb@447
    11
- Key Management
vb@447
    12
vb@447
    13
  Key Management in p≡p engine is based on GnuPG key chains (NetPGP on iOS).
vb@447
    14
  Keys are stored in an OpenPGP compatbile format and can be used for different
vb@447
    15
  crypto implementations.
vb@447
    16
vb@447
    17
- Trust Rating
vb@447
    18
vb@447
    19
  p≡p engine is sporting a two phase trust rating system. In phase one there is
vb@447
    20
  a rating based on channel, crypto and key security named “comm_types”. In
vb@447
    21
  phase 2 these are mapped to user representable values which have attached
vb@447
    22
  colors to present them in traffic light semantics.
vb@447
    23
vb@447
    24
- Abstract Crypto API
vb@447
    25
vb@447
    26
  The Abstract Crypto API is providing functions to encrypt and decrypt data or
vb@447
    27
  full messages without requiring an application programmer to understand the
vb@447
    28
  different formats and standards.
vb@447
    29
vb@447
    30
- Message Transports
vb@447
    31
vb@447
    32
  p≡p engine will sport a growing list of Message Transports to support any
vb@447
    33
  widespread text messaging system including E-Mail, SMS, XMPP and many more.
vb@447
    34
vb@447
    35
p≡p engine is written in C99. It is not meant to be used in application code
vb@447
    36
directly. Instead, p≡p engine is coming together with a list of software
vb@447
    37
adapters for a variety of programming languages and development environments.
vb@447
    38
vb@447
    39
p≡p engine is under Gnu General Public License v3. If you want to use it under
vb@447
    40
a different license, please contact mailto:council@pep.foundation.
vb@447
    41
vb@448
    42
vb@448
    43
1. Dependencies
vb@448
    44
---------------
vb@448
    45
vb@448
    46
p≡p engine is depending on the following FOSS libraries:
vb@448
    47
roker@703
    48
* libetpan, see https://github.com/fdik/libetpan
roker@704
    49
       git clone https://github.com/fdik/libetpan
roker@703
    50
roker@703
    51
* zlib, see http://zlib.net/
roker@703
    52
roker@703
    53
* OpenSSL, see http://openssl.org/
roker@703
    54
roker@703
    55
* iconv, see http://www.gnu.org/software/libiconv/
roker@703
    56
roker@703
    57
* Cyrus SASL, see http://cyrusimap.org/
roker@703
    58
roker@703
    59
* GnuPG via GPGME, see https://gnupg.org/
roker@703
    60
roker@703
    61
* NetPGP/p≡p, see https://cacert.pep.foundation/dev/repos/netpgp-et/
roker@703
    62
lix@705
    63
* Asn1c, download from https://lionet.info/soft/asn1c-0.9.27.tar.gz
roker@702
    64
       (Debian's version 0.9.24 does not work)
vb@448
    65
roker@805
    66
* yml2, which needs lxml (where to get?)
vb@448
    67
vb@448
    68
2. Building p≡p engine
vb@448
    69
----------------------
vb@448
    70
vb@447
    71
p≡p engine has an old style Makefile for building it.
vb@16
    72
vb@37
    73
The build is configured in Makefile.conf
vb@37
    74
vb@16
    75
It supports the common targets
vb@16
    76
vb@16
    77
$ make all
vb@16
    78
$ make install
vb@16
    79
$ make clean
vb@16
    80
vb@16
    81
and additionally
vb@16
    82
vb@16
    83
$ make package # for building a .tar.bz2 with the source distribution
vb@16
    84
vb@447
    85
On Windows, use Visual Studio.
vb@16
    86
roker@528
    87
roker@528
    88
3. How to cross-build
vb@16
    89
---------------------
vb@16
    90
vb@16
    91
For cross-building, BUILD_FOR is being used. I.e.:
vb@16
    92
vb@448
    93
$ BUILD_FOR=yourOS make -e
vb@448
    94
vb@16
    95
roker@528
    96
4. How to build the databases
vb@16
    97
-----------------------------
vb@16
    98
vb@447
    99
p≡p Engine uses two databases: ~/.pEp_management (on *NIX) or
vb@16
   100
%LOCALAPPDATA%\pEp\management.db on Windoze respectively, and
vb@16
   101
/usr/local/share/system.db on *NIX or %ALLUSERSPROFILE%\pEp\system.db
vb@447
   102
respectively. The latter contains the Trustwords dbs.
vb@16
   103
vb@447
   104
The managment db is being created by the first call of init() of p≡p Engine. It
vb@16
   105
does not need to be created manually. system.db is being created by using the
vb@16
   106
DDL in db/create_system_db.sql – the content is created by db/dic2csv.py
vb@16
   107
out of hunspell's dictionary packages (or something similar) and then being
vb@448
   108
imported using sqlite3's .import command. Dictionary files for different
vb@448
   109
languages are part of p≡p engine source distribution.
vb@448
   110
vb@448
   111
$ make db
vb@448
   112
$ make -C db install
vb@16
   113
vb@447
   114
You can test the Trustwords in system.db using db/trustwords.py
vb@16
   115
Both Python tools have a switch --help
vb@16
   116
roker@528
   117
roker@528
   118
5. How to run the tests
roker@528
   119
-----------------------
roker@528
   120
roker@528
   121
You have to import all the test keys into your local gpg instance:
roker@528
   122
roker@528
   123
	cd test
Edouard@764
   124
	cat 0x*.asc *_sec.asc| gpg --import
roker@528
   125