README.txt
author Roker <roker@pep-project.org>
Fri, 08 Jul 2016 21:32:53 +0200
changeset 805 f026ae414feb
parent 764 547131705bf6
child 1513 e7f7e42385b5
permissions -rw-r--r--
add some questions to the REAME. *sigh*
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@704
    47
       git clone https://github.com/fdik/libetpan
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
lix@705
    61
* Asn1c, download 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
roker@805
    64
* yml2, which needs lxml (where to get?)
vb@448
    65
vb@448
    66
2. Building p≡p engine
vb@448
    67
----------------------
vb@448
    68
vb@447
    69
p≡p engine has an old style Makefile for building it.
vb@16
    70
vb@37
    71
The build is configured in Makefile.conf
vb@37
    72
vb@16
    73
It supports the common targets
vb@16
    74
vb@16
    75
$ make all
vb@16
    76
$ make install
vb@16
    77
$ make clean
vb@16
    78
vb@16
    79
and additionally
vb@16
    80
vb@16
    81
$ make package # for building a .tar.bz2 with the source distribution
vb@16
    82
vb@447
    83
On Windows, use Visual Studio.
vb@16
    84
roker@528
    85
roker@528
    86
3. How to cross-build
vb@16
    87
---------------------
vb@16
    88
vb@16
    89
For cross-building, BUILD_FOR is being used. I.e.:
vb@16
    90
vb@448
    91
$ BUILD_FOR=yourOS make -e
vb@448
    92
vb@16
    93
roker@528
    94
4. How to build the databases
vb@16
    95
-----------------------------
vb@16
    96
vb@447
    97
p≡p Engine uses two databases: ~/.pEp_management (on *NIX) or
vb@16
    98
%LOCALAPPDATA%\pEp\management.db on Windoze respectively, and
vb@16
    99
/usr/local/share/system.db on *NIX or %ALLUSERSPROFILE%\pEp\system.db
vb@447
   100
respectively. The latter contains the Trustwords dbs.
vb@16
   101
vb@447
   102
The managment db is being created by the first call of init() of p≡p Engine. It
vb@16
   103
does not need to be created manually. system.db is being created by using the
vb@16
   104
DDL in db/create_system_db.sql – the content is created by db/dic2csv.py
vb@16
   105
out of hunspell's dictionary packages (or something similar) and then being
vb@448
   106
imported using sqlite3's .import command. Dictionary files for different
vb@448
   107
languages are part of p≡p engine source distribution.
vb@448
   108
vb@448
   109
$ make db
vb@448
   110
$ make -C db install
vb@16
   111
vb@447
   112
You can test the Trustwords in system.db using db/trustwords.py
vb@16
   113
Both Python tools have a switch --help
vb@16
   114
roker@528
   115
roker@528
   116
5. How to run the tests
roker@528
   117
-----------------------
roker@528
   118
roker@528
   119
You have to import all the test keys into your local gpg instance:
roker@528
   120
roker@528
   121
	cd test
Edouard@764
   122
	cat 0x*.asc *_sec.asc| gpg --import
roker@528
   123