Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Latest commit

 

History

History
133 lines (93 loc) · 3.67 KB

INSTALL

File metadata and controls

133 lines (93 loc) · 3.67 KB

-- mode: markdown --

pyPEBEL Installation Documentation

Overview

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.

Dependencies

The current dependencies for pyPEBEL are:

  • Python3
  • pyCrypto
  • Charm-Crypto
    • pyParsing
    • PBC
    • GMP
  • Doxygen
    • doxypy

Instructions

Prerequisites

Dev Tools

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.

Python Modules

sudo pip install doxypy
sudo pip install pycrypto
sudo pip install pyparsing

PBC Library

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.

  • Source location

  • provides: pbc

  • requires: libgmp3c2, libgmp3-dev

Charm

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

pyPEBEL

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.

Building Documentation

API Documentation

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.

User Documentation