Building MIRACL for Charm

The first step is to obtain the MIRACL library source from Currently, our pairing base module works with version 5.5.4 (released on 02/08/11). If you’re interested in using it for academic purposes, then you are not required to purchase a license. Otherwise, you will have to purchase a MIRACL license since it is not under an open source license. With that said, we provide instructions for how to compile MIRACL and the charm pairing module.

  1. Unzip the in the charm/charm/core/math/pairing/miracl/

    unzip -j -aa -L

  2. Change directories into the miracl dir and build the library using the provided compile script. Note that this script can build specific curves supported in the MIRACL library. These include ss for supersingular curves, mnt for MNT curves and bn for Barreto-Naehrig curves. This command may require super-user privileges to install on your system.

    sh bn

  3. If there are no errors during MIRACL compile/install, you may run configure at the top-level source dir and enable use of MIRACL with a specific curve. Unfortunately, we can only support one curve at run-time which is a mild inconvenience and requires re-running configure to switch to another curve.

    ./ --enable-pairing-miracl=bn

  4. You may build and install Charm as usual. These commands may or may not require super-user privileges depending on your environment.


    sudo make install