Skip to content
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

Update protocol to generically allow >1 helper #117

Closed
ekr opened this issue Aug 16, 2021 · 2 comments · Fixed by #135
Closed

Update protocol to generically allow >1 helper #117

ekr opened this issue Aug 16, 2021 · 2 comments · Fixed by #135
Assignees

Comments

@ekr
Copy link
Collaborator

ekr commented Aug 16, 2021

No description provided.

@chris-wood
Copy link
Collaborator

This seems to be a dupe fo #68 -- can we close?

@tgeoghegan
Copy link
Collaborator

Per discussion in the call today, I think this issue is about updating the various PDU definitions to allow for multiple helpers. For instance, Param currently has fields Url leader_url and Url helper_url, but it should instead have Url aggregator_urls<1..lots>. #68 is the more complex problem of extending the protocol to handle >1 helper, which probably involves more rounds of communication. I'm going to grab this issue because I ran into #133 which I think is related, so I'll fix both.

@tgeoghegan tgeoghegan self-assigned this Aug 18, 2021
tgeoghegan added a commit that referenced this issue Aug 19, 2021
Modify `struct Param`, `struct Report` and `struct CollectResp` to
accommodate more than one helper. Note that the PPM protocol doesn't
actually support multiple helpers to enhance privacy (#68) but we
nonetheless want to define the PDUs so it is possible to introduce that
feature in the future. We do this by introducing an `AggregatorId` type
into various struct definitions, allowing participants to tell which
aggregator an input share or output share corresponds to. We also
introduce a special, reserved value of `AggregatorId` that allows
clients to tell which aggregator is the leader to which reports should
be uploaded. Finally, we use the aggregator ID in HPKE context
construction instead of the existing constants 0x00 and 0x01 for leader
and helper, respectively.

Along the way, we introduce the `HpkeConfigId` type alias used in few
different places.

Resolves #117, #133
tgeoghegan added a commit that referenced this issue Aug 23, 2021
Modify `struct Param`, `struct Report` and `struct CollectResp` to
accommodate more than one helper. Note that the PPM protocol doesn't
actually support multiple helpers to enhance privacy (#68) but we
nonetheless want to define the PDUs so it is possible to introduce that
feature in the future. We do this by introducing an `AggregatorId` type
into various struct definitions, allowing participants to tell which
aggregator an input share or output share corresponds to. We also
introduce a special, reserved value of `AggregatorId` that allows
clients to tell which aggregator is the leader to which reports should
be uploaded. Finally, we use the aggregator ID in HPKE context
construction instead of the existing constants 0x00 and 0x01 for leader
and helper, respectively.

Along the way, we introduce the `HpkeConfigId` type alias used in few
different places.

Resolves #117, #133
tgeoghegan added a commit that referenced this issue Aug 26, 2021
Modify `struct Param`, `struct Report` and `struct CollectResp` to
accommodate more than one helper. Note that the PPM protocol doesn't
actually support multiple helpers to enhance privacy (#68) but we
nonetheless want to define the PDUs so it is possible to introduce that
feature in the future.

We also move `task_id` from the HPKE AAD to the context's application
info, and introduce the `HpkeConfigId` type alias in a few different
places.

Resolves #117, #133
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants