commit | 41517a32e51d61a0ea43d2828b20bc80493e3b19 | [log] [tgz] |
---|---|---|
author | samuele-andreoli <samuele.andreoli@yahoo.it> | Fri Mar 13 09:54:18 2020 +0000 |
committer | GitHub <noreply@github.com> | Fri Mar 13 09:54:18 2020 +0000 |
tree | fbc1e3543e558d071b01a62dfc572ee8680229df | |
parent | b86c22f1c05759ec2ac5dd7a0efac838379f4a77 [diff] | |
parent | 8f053cce461cb34b6135bff82ed905e9bbd499df [diff] |
Merge pull request #31 from apache/issue29-update-amcl Update AMCL and apply trick to MTA ZKP
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 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