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