commit | 743bbb45238686810eef6dc8e4743a733524cd0d | [log] [tgz] |
---|---|---|
author | Samuele Andreoli <samuele.andreoli@yahoo.it> | Mon Feb 17 16:17:43 2020 +0000 |
committer | Samuele Andreoli <samuele.andreoli@yahoo.it> | Tue Feb 18 14:08:50 2020 +0000 |
tree | 9130206192f51bed16a49bfaaaa73657410064dd | |
parent | e26c94ad09e0704c63aa2c7cadc629487356847a [diff] |
Add wrapper for Schnorr Proof
AMCL - Apache Milagro Crypto Multi-Party Computation
This library implements Multi-Party Computation (MPC) using the milargo crypto library.
In order to build this library, the following packages are required:
On Ubuntu 18.04 these packages are installed with the following commands;
sudo apt-get update sudo apt-get install -y build-essential cmake doxygen lcov python3-dev python3-pip wget git pip3 install cffi
AMCL is required
Build and install the AMCL library
git clone https://github.com/apache/incubator-milagro-crypto-c.git cd incubator-milagro-crypto-c git checkout 86c33c63d34fd3b9024a5e5c32934d4103805b9c mkdir build cd build cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON -D AMCL_CHUNK=64 -D AMCL_CURVE="BLS381,SECP256K1" -D AMCL_RSA="" -D BUILD_PAILLIER=ON -D BUILD_PYTHON=ON -D BUILD_BLS=ON -D BUILD_WCC=OFF -D BUILD_MPIN=ON -D BUILD_X509=OFF -D CMAKE_INSTALL_PREFIX=/usr/local .. make make test sudo make install
Build and test code.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./ mkdir build cd build cmake .. make make doc make test sudo make install
or build and run test on all builds
./scripts/build.sh ./scripts/test.sh
The documentation is generated using doxygen and can accessed (post build) via the file
./build/doxygen/html/index.html
Build and run tests using docker
docker build --no-cache -t libmpc . docker run --cap-add SYS_PTRACE --rm libmpc
Generate coverage figures
docker run --rm libmpc ./scripts/coverage.sh
or copy to host
CONTAINER_ID=$(docker run --cap-add SYS_PTRACE -d libmpc ./scripts/coverage.sh) docker logs $CONTAINER_ID docker cp ${CONTAINER_ID}:"/root/target/Coverage/coverage" ./ docker rm -f ${CONTAINER_ID} || true
There is a Python wrapper in ./python.
In “./vagrant” there are configuration files to run the software on a VM