Add support for public extensions in Reports.#754
Conversation
cjpatton
left a comment
There was a problem hiding this comment.
I believe we're missing one feature: we need to resolve repeated extensions across the public and private extension fields.
So the spec says: Which I take to mean a conflict between the public and private extensions is allowed. |
mendess
left a comment
There was a problem hiding this comment.
not even a nit, just a comment. I don't have a preference but instead of Vec::new() you can write vec![]
The intent of the text is: "if the same extension appears twice, then the report MUST be rejected - regardless of what fields the extensions appear in." In particular, if the taskprov extension appears in the public and private fields, then reject. |
eda9b3c to
5078b99
Compare
cjpatton
left a comment
There was a problem hiding this comment.
The code looks largely correct, though I have some suggestions for behavior changes. I think the tests need a bit of work. Also, I have some suggestions for making the code a little cleaner/easier to read.
28ff330 to
0287417
Compare
cjpatton
left a comment
There was a problem hiding this comment.
Looks pretty good. Let's chat in our 1:1 about the necessity of the e2e tests.
0287417 to
8f8e5b9
Compare
7e5cd9e to
afbafd0
Compare
afbafd0 to
fbbe9e9
Compare
|
I've rebased this PR and updated the capnp schema to include the public extensions field. I've also added unit tests to confirm encoding/decoding works (thanks @mendess for the help there). |
fbbe9e9 to
ed04ead
Compare
|
Updated the commit to fix clippy |
| vdafVerifyKey @4 :VdafVerifyKey; | ||
| } | ||
|
|
||
| struct PublicExtensionsList @0x8b3c98c0ddd0043e { |
There was a problem hiding this comment.
@mendess I just ran capnp id and pasted the output here. So this is really just a random ID that needs to be unique?
|
I see CI passing, so I'm gonna squash and merge. |
ed04ead to
483032d
Compare
483032d to
f0bc7b1
Compare
|
Rebased on the PR @mendess merged, hoping that solves the |
Draft 13 adds mandatory support for public extensions in the ReportMetadata, but doesn't define any (Taskprov is (for now) a private extension). This PR adds support for rejecting unknown extensions, which is all of them.