Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implements the ping-pong topology introduced in VDAF-06 and refined in VDAF-07. We add a `topology` module, on the premise that we might someday add new topologies and their implementations there, and `topology::ping_pong`. This also adds an implementation of a dummy VDAF, brought over from Janus ([1]). `vdaf::dummy` is only compiled if the `test-util` Cargo feature is enabled. The dummy VDAF implements the `vdaf::{Vdaf, Aggregator, Client, Collector}` and provides associated types for output shares, prepare shares, etc., but it doesn't do anything except return success, making it useful for testing higher-level constructions like ping-pong. Finally, we replace the derived `std::fmt::Debug` implementations on a few `prio3` and `poplar1` associated types so that they redact fields that are either sensitive secrets or just too big to be worth printing when debugging. This is so that we can provide `Debug` impls on new types in `topology::ping_pong` without pulling in crate `derivative`, which would require us to do 9,000+ lines of audits. [1]: https://github.com/divviup/janus
- Loading branch information