The artifact for our USENIX Security paper

Ian Goldberg f5387bbbf0 The public sigma-rs artifact 2 месяцев назад
Scripts f5387bbbf0 The public sigma-rs artifact 2 месяцев назад
patches f5387bbbf0 The public sigma-rs artifact 2 месяцев назад
README.md f5387bbbf0 The public sigma-rs artifact 2 месяцев назад

README.md

Code artifact for sigma-rs

This repository contains the code artifact for sigma-rs, a Rust software stack for implementing protocols based on keyed-verification anonymous credentials (KVAC).

Artifact structure

The directories in this repository are as follows:

Building the artifact

You will need docker installed on your host system.

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 8 GB.

Start the docker

Start the docker with:

  docker run -it sigma-rs bash

All of the remaining commands below should be run within the docker.

Running the unit tests

To ensure everything has built properly, you should run the unit tests within the docker with:

  Scripts/run_all_tests

This should take less than 10 seconds to run.

Running the Lox native client / native server benchmarks

To run the Lox native client / native server benchmarks (the "native" columns in Table 2 of the paper):

  • zkp version: (cd application-lox-zkp/crates/lox-library/; ./run_test.sh)
    The results will be placed in the application-lox-zkp/crates/lox-library/parsed_results/ directory
  • sigma-rs version: (cd application-lox/crates/lox-extensions/; ./run_test.sh)
    The results will be placed in the application-lox/crates/lox-extensions/parsed_results/ directory

Each run should take less than 30 seconds.

Running the Lox wasm client / native server benchmarks

To run the Lox wasm client / native server benchmarks (the "wasm" columns in Table 2), follow the instructions in application-lox/crates/lox-extensions/TESTING.md. For now, you will have to manually adapt the instructions to a docker environment (more automation coming soon!).

Running the OONI native benchmarks

To run the OONI native benchmarks (the "native" columns in Table 3):

(cd application-ooni && \
    cargo bench -p ooniauth-core && \
    python3 scripts/criterion_extract.py )

This benchmark should take under 2 minutes to run.

Running the OONI iOS benchmarks

To run the OONI iOS benchmarks (the "iOS" column in Table 3), see the instructions in application-ooni/ios/README.md.

Using sigma-rs in your own code

For instructions on using the sigma-rs stack to implement your own KVAC protocols, see cmz/README.md.