Getting Started
PETAce-SetOps
Requirements
| System | Toolchain | 
|---|---|
| Linux | Clang++ (>= 5.0) or GNU G++ (>= 5.5), CMake (>= 3.15) | 
| Required dependency | Tested version | Use | 
|---|---|---|
| PETAce-Solo | 0.4.0 | Cryptography primitives | 
| PETAce-Verse | 0.4.0 | Primitive cryptographic protocols | 
| PETAce-Duet | 0.4.0 | Two-party secure computing protocols | 
| PETAce-Network | 0.4.0 | Network communication protocols | 
| Google Logging | 0.4.0 | Logging | 
| JSON for Modern C++(JSON) | 3.10.1 | PSI parameter configuration | 
| Optional dependency | Tested version | Use | 
|---|---|---|
| GoogleTest | 1.12.1 | For running tests | 
| gflags | 2.2.2 | For running benchmarks | 
Building PETAce-SetOps
We assume that all commands presented below are executed in the root directory of PETAce-SetOps.
First, build JSON for Modern C++ (JSON) using the following scripts.
Assume that JSON is cloned into the directory ${JSON}.
cmake -B ${JSON}/build -S ${JSON}
cmake --build ${JSON}/build -j
Then, build PETAce-SetOps library (optionally with test and example):
cmake -S . -B build -Dnlohmann_json_DIR=${JSON}/build -DSETOPS_BUILD_TEST=ON -DSETOPS_BUILD_EXAMPLE=ON
cmake --build build
Output binaries can be found in build/lib/ and build/bin/ directories.
| Compile Options | Values | Default | Description | 
|---|---|---|---|
| CMAKE_BUILD_TYPE | Release/Debug | Release | Debug mode decreases run-time performance. | 
| SETOPS_BUILD_SHARED_LIBS | ON/OFF | OFF | Build a shared library if set to ON. | 
| SETOPS_BUILD_EXAMPLE | ON/OFF | ON | Build C++ example if set to ON. | 
| SETOPS_BUILD_TEST | ON/OFF | ON | Build C++ test if set to ON. | 
| SETOPS_BUILD_DEPS | ON/OFF | ON | Download and build unmet dependencies if set to ON. | 
Here we give a simple example to run protocols in PETAce-SetOps.
To run as Party A (a sender):
bash build/example/scripts/ecdh_psi_sender_example.sh
To run as Party B (a receiver):
bash build/example/scripts/ecdh_psi_receiver_example.sh
Last modified
July 29, 2025
: Automated sync of README sections from multiple repositories (cea4bd2)