README.txt
author Krista Grothoff <krista@pep-project.org>
Wed, 18 Jan 2017 13:02:00 +0100
changeset 1543 44866373e733
parent 1513 e7f7e42385b5
child 1707 6c6e4315ba6f
permissions -rw-r--r--
Added test case for Patrick's trust issue - we can add additional apple mails to it if we have problems with detached sigs, but so far, trusted status works as it should from the TCs we have so far.
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