This repository contains implementations of secure aggregation protocols. Currently, this only includes the Willow protocol (paper).
The codebase is built using Bazel. All other dependencies are built from source. We use SHELL for homomorphic encryption, and Curve25519-Dalek for elliptic curve operations. The library itself is written in Rust.
To build the library (with performance optimizations enabled), run
bazel build -c opt //...
To run tests:
bazel test -c opt //...
Usage examples can be found in willow/tests/willow_v1_shell.rs.
Benchmarks, and information how to run them, can be found in the benches folder.
To report a security issue, please read SECURITY.md.
This is not an officially supported Google product. The code is provided as-is, with no guarantees of correctness or security.