pyPEBEL has been designed as a python 3.x module and has been built against the python 3.x version of Charm. The deployment for pyPEBEL has been checked solely on Ubuntu 12.10, NO OTHER platforms will be checked, unless there is a great demand.
A make file is also provided that abstracts over the installation of the module itself, and documentation generation. The Makefile also has targets used during development.
The current dependencies for pyPEBEL are:
- Python3
- pyCrypto
- Charm-Crypto
- pyParsing
- PBC
- GMP
- Doxygen
- doxypy
Git, m4, libssl-dev, GMP, DOxygen and checkinstall.
sudo apt-get install git m4 libssl-dev libgmp3c3 limpgmp3-dev checkinstall doxygen
CheckInstall is a nice Linux utility to install source build software inside a deb/rpm managed distro.
sudo pip install doxypy
sudo pip install pycrypto
sudo pip install pyparsing
PBC is a pairing based crypto
library. Installation instructions are supplied with the
project. After compilation from source instead of doing make install
I recommend doing checkinstall
. The Checkinstall doc-pak information
is use is:
-
Description: The PBC (Pairing-Based Cryptography) library is a free C library (released under the GNU Lesser General Public License) built on the GMP library that performs the mathematical operations underlying pairing-based cryptosystems.
-
provides: pbc
-
requires: libgmp3c2, libgmp3-dev
Charm is a framework for the rapid
prototyping of advanced cryptography. Installation instructions are
supplied with the project. After compilation from source instead of
doing make install
I recommend doing checkinstall
.
- Description: Charm is a framework for rapidly prototyping advanced cryptosystems. Based on the Python language, it was designed from the ground up to minimize development time and code complexity while promoting the reuse of components.
- Source Location
- requires: pbc, libgmp3c2, libgmp3-dev, python3, m4, python3-dev, python3-pyparsing, libssl-dev
- provides: charm
To install pyPEBEL into your site-package simply invoke the following commands:
python3 distribute_setup.py check build install
IF successful the module and commandline scripts should be added to your python3 site-packages, and PATH.
Although pyDoc can be used to generate the API documentation Doxygen is the preferred documentation tool for this project. Doxygen is a cross-language documentation generator, with support for: markdown syntax, call graphs, and multi output generation. Personally, it provides a nice balance between User and Developer documentation, in a form better than Sphinx.
The Doxygen project prefers the use of a non-idomatic means to document python code, however, the doxypy filter can be used to force doxygen to look inside python docstrings docstrings for the documentation.
Any version of Doxygen will do, however, Doxygen v1.8.3 has a nice attribute to set a random file as the mainpage. This is the version of Doxygen I use.
Usage instructions:
sudo pip install doxypy
doxygen DoxyFile
Generated documentation is generated to found within the folder doxydoc
.