The Pairing-Based Cryptography (PBC) Library - C++ Wrapper Classes


Ben Lynn has developed the pairing-based cryptography (PBC) library, which implements the important primitives for pairing-based cryptography. The PBC library is developed in C over the gmp library. For more information about the PBC library, please refer to the PBC webpage.
I recently developed C++ wrapper classes for the PBC library for our distributed key generation project. Here, I am making available a library of these classes (released under the GNU Public License) for anybody to use.
Note that this C++ library does not modify the underlying PBC library. My sole aim is to make C++ development based on the PBC library more comfortable. As a salient feature of these wrapper classes, to improve the code readability, we have included operator overloading.

Download and Usage

Source Code : git clone git://

This version is compatible with version 0.5.6 of the PBC library.

Usage :
  • First, install the PBC library as described here and set the library path as described here. After that, decompress this wrapper class library and build it by calling make inside the PBCWrapper-x.y.z directory.
  • While using this wrapper classes library, please use the header (*.h) files to obtain the class declarations. Most of these declarations should be self-explanatory. For sample code, please see included in the PBCWrapper-x.y.z directory.
  • I did not write C++ functions for parameter generation. Use the excutables or the source codes in the gen subdirectory of the pbc-x.y.z directory to create a parameter file.

  • Contact

    Comments, questions, bug reports and suggestions are welcome. Please contact Aniket Kate at akate AT cs DOT uwaterloo DOT ca.


    Thanks to my supervisor, Prof. Ian Goldberg, for his suggestions during this development.

    Last Updated: November 09, 2009