-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Delete the old IPA implementation #956
Delete the old IPA implementation #956
Conversation
Code compiles, but likely I removed more than required
@@ -181,7 +154,7 @@ fn gen_inputs( | |||
) -> io::Result<()> { | |||
let rng = seed | |||
.map(StdRng::seed_from_u64) | |||
.unwrap_or_else(|| StdRng::from_entropy()); | |||
.unwrap_or_else(StdRng::from_entropy); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here and below - clippy error fixes
@@ -89,6 +91,26 @@ where | |||
Ok(Replicated::new_arr(lhs, rhs)) | |||
} | |||
|
|||
/// Implement secure multiplication for semi-honest contexts with replicated secret sharing. | |||
#[async_trait] | |||
impl<C, F, const N: usize> super::SecureMul<C> for Replicated<F, N> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
moved things around to avoid slapping descriptive-gate feature flag on too many things
@@ -32,6 +27,16 @@ pub trait Reveal<C: Context, B: RecordBinding>: Sized { | |||
async fn reveal<'fut>(&self, ctx: C, record_binding: B) -> Result<Self::Output, Error> | |||
where | |||
C: 'fut; | |||
|
|||
/// partial reveal protocol to open a shared secret to all helpers except helper `left_out` inside the MPC ring. | |||
async fn partial_reveal<'fut>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PartialReveal
trait is removed too, I don't see a why partial_reveal
should be on its own trait.
@@ -602,26 +604,55 @@ mod tests { | |||
} | |||
|
|||
async fn ipa_query(app: &TestApp) -> Result<(), BoxError> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GenericReportTestInput
and associated macro ipa_test_input!
are gone
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #956 +/- ##
==========================================
- Coverage 90.30% 88.43% -1.88%
==========================================
Files 182 158 -24
Lines 26091 21462 -4629
==========================================
- Hits 23561 18979 -4582
+ Misses 2530 2483 -47 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. I noticed you also changed some inputs to use a value rather than reference. There might be other parts that we can remove (e.g. some of the files in ff). We can always removed them later once we have a clear picture what we still need.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you explain the issue with descriptive-gate? Compact gate doesn't work with malicious security any more for some reason?
Yes that is our common source of pain - anything that we don't execute as part of |
I had to add more clippy checks because I noticed we don't run it when
web-app
feature is enabled, so we've accumulated quite a bit of debt there.Maybe controversial, but I removed the radix sort implementation, mainly because it is not compatible with the new shuffle protocol. I think if we want to use it, we need to rewrite it anyway.