private-attribution / ipa

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

Sharded decrypt and uniqueness verification #1358

Closed eriktaubeneck closed 1 month ago

eriktaubeneck commented 1 month ago

This makes decryption and uniqueness verification work in a sharded context.

Because we cannot reshard dynamically sized structs (e.g., an EncryptedHybridReport), this takes the approach of:

  1. EncryptedHybridReports -> (UniqueTag, HybridReport) (e.g., decryption)
  2. Reshard UniqueTags (but not HybridReports)
  3. Verify uniqueness over UniqueTags
  4. Continue with protocol (TODO)

Now, this is not idea because we have to complete all decryption before we can do the uniqueness check. I attempted to try and get this working with streaming, but ran into a bunch of issues. Still happy to keep trying that approach, but wanted to get this up to get some feedback.

codecov[bot] commented 1 month ago

Codecov Report

Attention: Patch coverage is 89.67972% with 29 lines in your changes missing coverage. Please review.

Project coverage is 93.46%. Comparing base (4307265) to head (589637d). Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
ipa-core/src/query/runner/hybrid.rs 92.54% 12 Missing :warning:
ipa-core/src/test_fixture/world.rs 52.17% 11 Missing :warning:
ipa-core/src/report/hybrid.rs 88.88% 5 Missing :warning:
ipa-core/src/query/executor.rs 0.00% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1358 +/- ## ========================================== - Coverage 93.47% 93.46% -0.02% ========================================== Files 210 210 Lines 35101 35232 +131 ========================================== + Hits 32811 32928 +117 - Misses 2290 2304 +14 ```

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