The artifact for our USENIX Security paper
|
|
1 ay önce | |
|---|---|---|
| Scripts | 1 hafta önce | |
| patches | 1 hafta önce | |
| LICENSE | 1 hafta önce | |
| README.md | 1 hafta önce |
sigma-rsThis repository contains the code artifact for sigma-rs, a Rust
software stack for implementing protocols based on keyed-verification
anonymous credentials (KVAC).
The directories in this repository are as follows:
Scripts
: Useful scripts for building a docker image for this artifact, and running tests therein
patches
: Patches to the Cargo.toml file for our sigma-rs collection of
crates, to force them to use the local copies of each other as
dependencies, rather than using the published versions from crates.io.
These patches are applied automatically by the build-docker script.
This document will assume your host is Ubuntu 24.04, but any similar system should be fine. You will need installed on the host:
gitdocker or podman. The scripts will auto-detect which of
docker or podman you have. The names of the scripts contain
the word "docker", even if they end up using podman instead.To execute the OONI iOS benchmarks (the "iOS" column in Figure 3 in the paper), you will need a Mac host with Xcode installed, and an iOS device on which you can install apps you compile yourself.
After downloading or cloning this repository, build a docker image with:
./Scripts/build-docker
On a recentish laptop, this image should take around 10 minutes to build. The resulting image is about 9 GB.
To ensure everything has built properly, you should run the unit tests within the docker with:
Scripts/run-docker Scripts/run_all_tests
This should take less than 30 seconds to run.
To run the Lox native and wasm benchmarks (Tables 2 and 5 of the paper):
Scripts/run-docker Scripts/run_lox_benches
When the wasm benchmarks are run (twice: once for the new sigma-rs
version of Lox, and once for the original zkp version), the script
will prompt you with a URL to load in a wasm-capable web browser. Do so
when prompted each of the two times.
These benchmarks should take a couple of minutes to run.
The output of the script will end with the data tables corresponding to Tables 2 and 5 in the paper. The values in Table 2 are times in milliseconds (with stddevs in parens). The values in Table 5 are sizes in bytes.
To run the OONI native benchmarks (the "native" columns in Table 3):
Scripts/run-docker Scripts/run_ooni_benches
These benchmarks should take less than 30 seconds to run.
The output of the script will be the data tables corresponding to the "native" columns of Table 3 in the paper. The values are times in milliseconds (means and stddevs).
To run the OONI iOS benchmarks (the "iOS" column in Table 3), build the iOS app using the instructions in the ios/README.md file in the OONI repository.
You would typically run these instructions to build the iOS app on a Mac host with Xcode installed, not in a docker.
sigma-rs in your own codeFor instructions on using the sigma-rs stack to implement your own
KVAC protocols, see README.md in the cmz repository.