private-attribution / ipa

A raw implementation of Interoperable Private Attribution
MIT License
42 stars 25 forks source link

Use Shuffleable traits for all shuffle routines #1402

Closed andyleiserson closed 3 weeks ago

andyleiserson commented 3 weeks ago

This uses the Shuffleable trait (originally added for the semi-honest sharded shuffle) in the base shuffle and malicious shuffle code. Doing so simplifies the trait bounds on many of the shuffle routines.

The bounds on ShuffleShare here are similar to but different from BooleanArray. I avoid assuming Copy, which probably doesn't matter much for the things we shuffle currently, but makes the implementation more extensible to shuffling larger things.

There are also a few other changes. Most notably, I adopt the one-side PRSS generation that was added #1187. I also eliminate some clones and make some other small adjustments / simplifications.

codecov[bot] commented 3 weeks ago

Codecov Report

Attention: Patch coverage is 98.74214% with 4 lines in your changes missing coverage. Please review.

Project coverage is 93.34%. Comparing base (1e3a417) to head (de1bd4b). Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
ipa-core/src/protocol/ipa_prf/shuffle/mod.rs 69.23% 4 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1402 +/- ## ========================================== + Coverage 93.32% 93.34% +0.01% ========================================== Files 223 223 Lines 38533 38500 -33 ========================================== - Hits 35960 35936 -24 + Misses 2573 2564 -9 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.