author vb
Wed, 06 Aug 2014 17:04:14 +0200
changeset 13 5b5031615884
parent 12 44803a6c4549
permissions -rw-r--r--
     1 pEp Engine
     2 ==========
     4 0. What is it
     5 1. How to use it
     6 2. Who is providing this, and how is it provided
     8 0. What is it
     9 -------------
    11 pEp Engine is an implementation of the p≡p standard as a portable C library.
    12 pEp Engine is written for being used on Windows, MacOS X, iOS, Android and
    13 GNU/Linux. It is meant to be used on other POSIX compliant systems as well.
    15 The p≡p standard defines how to use encryption and key management for message
    16 based communication between persons. It specifies a metric for encryption
    17 channels like OpenPGP or CMS, which then are applied on message transports like
    18 Internet Mail, SMS or WhatsApp. Additionally, the p≡p standard defines how to
    19 use GNUNet for implementing messaging where meta data can be hidden from
    20 eavesdroppers.
    22 1. How to use it
    23 ----------------
    25 pEp Engine never should be used by an application programmer directly. It is
    26 meant to be used by an adapting implementation which removes most of the attack
    27 vectors usually offered by C code and common application programming mistakes.
    28 Such an adapter must not be written in C. If possible, it must be written in a
    29 safe language without the problems pointers bring in. If this is not possible,
    30 the adapter must be written in an unsafe language like C++, but the interface
    31 to the application programmer has to implement safety against such application
    32 programmer mistakes.
    34 pEp Engine is offering keymanagement.h. This should be the only interface which
    35 is being used by an adapter. The documentation is in this header file. If this
    36 cannot be done, because an adapter needs more internal access to pEp Engine,
    37 there is the additional interface in pEpEngine.h. This may be used while it is
    38 recommended not to use it. Only if there is no other way for the programmer of
    39 the adapter pEpEngine.h should be used. This is true for opening and closing a
    40 session to pEp Engine.