p≡p engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.5 KiB

6 years ago
8 years ago
8 years ago
6 years ago
6 years ago
6 years ago
6 years ago
8 years ago
8 years ago
8 years ago
6 years ago
8 years ago
8 years ago
8 years ago
8 years ago
6 years ago
8 years ago
6 years ago
8 years ago
6 years ago
8 years ago
8 years ago
6 years ago
8 years ago
  1. p≡p Engine
  2. ==========
  3. 0. What it is
  4. -------------
  5. The p≡p engine is a Free Software library encapsulating implementations of:
  6. - Key Management
  7. Key Management in p≡p engine is based on GnuPG key chains (NetPGP on iOS).
  8. Keys are stored in an OpenPGP compatbile format and can be used for different
  9. crypto implementations.
  10. - Trust Rating
  11. p≡p engine is sporting a two phase trust rating system. In phase one there is
  12. a rating based on channel, crypto and key security named “comm_types”. In
  13. phase 2 these are mapped to user representable values which have attached
  14. colors to present them in traffic light semantics.
  15. - Abstract Crypto API
  16. The Abstract Crypto API is providing functions to encrypt and decrypt data or
  17. full messages without requiring an application programmer to understand the
  18. different formats and standards.
  19. - Message Transports
  20. p≡p engine will sport a growing list of Message Transports to support any
  21. widespread text messaging system including E-Mail, SMS, XMPP and many more.
  22. p≡p engine is written in C99. It is not meant to be used in application code
  23. directly. Instead, p≡p engine is coming together with a list of software
  24. adapters for a variety of programming languages and development environments.
  25. p≡p engine is under Gnu General Public License v3. If you want to use it under
  26. a different license, please contact mailto:council@pep.foundation.
  27. 1. Dependencies
  28. ---------------
  29. p≡p engine is depending on the following FOSS libraries:
  30. * libetpan, see https://github.com/fdik/libetpan
  31. git clone https://github.com/fdik/libetpan
  32. * zlib, see http://zlib.net/
  33. * OpenSSL, see http://openssl.org/
  34. * iconv, see http://www.gnu.org/software/libiconv/
  35. * Cyrus SASL, see http://cyrusimap.org/
  36. * GnuPG via GPGME, see https://gnupg.org/
  37. * NetPGP/p≡p, see https://cacert.pep.foundation/dev/repos/netpgp-et/
  38. * Asn1c, download from https://lionet.info/soft/asn1c-0.9.27.tar.gz
  39. (Debian's version 0.9.24 does not work)
  40. * yml2, which needs lxml (where to get?)
  41. 2. Building p≡p engine
  42. ----------------------
  43. p≡p engine has an old style Makefile for building it.
  44. The build is configured in Makefile.conf
  45. It supports the common targets
  46. $ make all
  47. $ make install
  48. $ make clean
  49. and additionally
  50. $ make package # for building a .tar.bz2 with the source distribution
  51. On Windows, use Visual Studio.
  52. 3. How to cross-build
  53. ---------------------
  54. For cross-building, BUILD_FOR is being used. I.e.:
  55. $ BUILD_FOR=yourOS make -e
  56. 4. How to build the databases
  57. -----------------------------
  58. p≡p Engine uses two databases: ~/.pEp_management (on *NIX) or
  59. %LOCALAPPDATA%\pEp\management.db on Windoze respectively, and
  60. /usr/local/share/system.db on *NIX or %ALLUSERSPROFILE%\pEp\system.db
  61. respectively. The latter contains the Trustwords dbs.
  62. The managment db is being created by the first call of init() of p≡p Engine. It
  63. does not need to be created manually. system.db is being created by using the
  64. DDL in db/create_system_db.sql – the content is created by db/dic2csv.py
  65. out of hunspell's dictionary packages (or something similar) and then being
  66. imported using sqlite3's .import command. Dictionary files for different
  67. languages are part of p≡p engine source distribution.
  68. $ make db
  69. $ make -C db install
  70. You can test the Trustwords in system.db using db/trustwords.py
  71. Both Python tools have a switch --help
  72. 5. How to run the tests
  73. -----------------------
  74. You have to import all the test keys into your local gpg instance:
  75. cd test
  76. cat 0x*.asc *_sec.asc| gpg --import