README.txt
author Roker <roker@pep-project.org>
Wed, 01 Jun 2016 10:53:36 +0200
changeset 703 5f979670b2a6
parent 702 3d4c85291dea
child 704 132049bf692a
permissions -rw-r--r--
add git pull address for libetpan.
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
roker@703
    46
* libetpan, see https://github.com/fdik/libetpan
roker@703
    47
       git pull https://github.com/fdik/libetpan.git
roker@703
    48
roker@703
    49
* zlib, see http://zlib.net/
roker@703
    50
roker@703
    51
* OpenSSL, see http://openssl.org/
roker@703
    52
roker@703
    53
* iconv, see http://www.gnu.org/software/libiconv/
roker@703
    54
roker@703
    55
* Cyrus SASL, see http://cyrusimap.org/
roker@703
    56
roker@703
    57
* GnuPG via GPGME, see https://gnupg.org/
roker@703
    58
roker@703
    59
* NetPGP/p≡p, see https://cacert.pep.foundation/dev/repos/netpgp-et/
roker@703
    60
roker@703
    61
* Asn1c, dowload from https://lionet.info/soft/asn1c-0.9.27.tar.gz
roker@702
    62
       (Debian's version 0.9.24 does not work)
vb@448
    63
vb@448
    64
vb@448
    65
2. Building p≡p engine
vb@448
    66
----------------------
vb@448
    67
vb@447
    68
p≡p engine has an old style Makefile for building it.
vb@16
    69
vb@37
    70
The build is configured in Makefile.conf
vb@37
    71
vb@16
    72
It supports the common targets
vb@16
    73
vb@16
    74
$ make all
vb@16
    75
$ make install
vb@16
    76
$ make clean
vb@16
    77
vb@16
    78
and additionally
vb@16
    79
vb@16
    80
$ make package # for building a .tar.bz2 with the source distribution
vb@16
    81
vb@447
    82
On Windows, use Visual Studio.
vb@16
    83
roker@528
    84
roker@528
    85
3. How to cross-build
vb@16
    86
---------------------
vb@16
    87
vb@16
    88
For cross-building, BUILD_FOR is being used. I.e.:
vb@16
    89
vb@448
    90
$ BUILD_FOR=yourOS make -e
vb@448
    91
vb@16
    92
roker@528
    93
4. How to build the databases
vb@16
    94
-----------------------------
vb@16
    95
vb@447
    96
p≡p Engine uses two databases: ~/.pEp_management (on *NIX) or
vb@16
    97
%LOCALAPPDATA%\pEp\management.db on Windoze respectively, and
vb@16
    98
/usr/local/share/system.db on *NIX or %ALLUSERSPROFILE%\pEp\system.db
vb@447
    99
respectively. The latter contains the Trustwords dbs.
vb@16
   100
vb@447
   101
The managment db is being created by the first call of init() of p≡p Engine. It
vb@16
   102
does not need to be created manually. system.db is being created by using the
vb@16
   103
DDL in db/create_system_db.sql – the content is created by db/dic2csv.py
vb@16
   104
out of hunspell's dictionary packages (or something similar) and then being
vb@448
   105
imported using sqlite3's .import command. Dictionary files for different
vb@448
   106
languages are part of p≡p engine source distribution.
vb@448
   107
vb@448
   108
$ make db
vb@448
   109
$ make -C db install
vb@16
   110
vb@447
   111
You can test the Trustwords in system.db using db/trustwords.py
vb@16
   112
Both Python tools have a switch --help
vb@16
   113
roker@528
   114
roker@528
   115
5. How to run the tests
roker@528
   116
-----------------------
roker@528
   117
roker@528
   118
You have to import all the test keys into your local gpg instance:
roker@528
   119
roker@528
   120
	cd test
roker@528
   121
	cat *.asc | gpg --import
roker@528
   122