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

Fetch key for B&A request #1289

Merged
merged 21 commits into from
Oct 1, 2024
Merged
Changes from 19 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions spec.bs
Original file line number Diff line number Diff line change
Expand Up @@ -3195,6 +3195,23 @@ The <dfn for=Navigator method>getInterestGroupAdAuctionData(|configIDL|)</dfn> m
1. Let |p| be [=a new promise=].
1. Let |queue| be the result of [=starting a new parallel queue=].
1. [=parallel queue/enqueue steps|Enqueue the following steps=] to |queue|:
1. If |config|'s [=auction data config/coordinator=] is not one of the [=implementation-defined=]
coordinators supported by this [=user agent=]:
1. [=Queue a global task=] on the [=DOM manipulation task source=], given |global|, to
[=reject=] |p| with a {{TypeError}}.
1. Abort these steps.
1. Let |key|,|key id| be a [=byte sequence=] containing one of the [[RFC9180|HPKE]] public
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems broken. Key is a [=byte sequence=], not (|key|, |keyId|). Need to rewrite it a little bit

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrased (pulled out to a function).

encryption keys for |config|'s [=auction data config/seller=] and its
corresponding key ID as determined by |config|'s
[=auction data config/coordinator=], or failure if no key is
available. The actual method for this lookup is [=implementation-defined=],
and may consist of fetching the keys from a known [=URL=].
1. If |key| is failure then:
1. [=Queue a global task=] on the [=DOM manipulation task source=], given |global|, to
[=reject=] |p| with a {{TypeError}}.
1. Abort these steps.
1. Set |config|'s [=auction data config/encryption key=] to |key|.
1. Set |config|'s [=auction data config/encryption key id=] to |key id|.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

|keyId|

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

1. Let |igMap| be a new [=map=] whose [=map/keys=] are [=origins=] and [=map/values=] are [=lists=].
1. Let |startTime| be a [=moment=] equal to the [=current wall time=].
1. [=list/For each=] |ig| of the [=user agent=]'s [=interest group set=]:
Expand Down Expand Up @@ -7657,6 +7674,11 @@ An <dfn>auction data config</dfn> is a [=struct=] with the following [=struct/it
: <dfn>coordinator</dfn>
:: The origin of the coordinator hosting public encryption keys for the server
running the ad auction. The [=origin/scheme=] must be "`https`".
: <dfn>encryption key</dfn>
brusshamilton marked this conversation as resolved.
Show resolved Hide resolved
:: A [=byte sequence=]. The public [[RFC9180|HPKE]] encryption key to be used
to encrypt the request.
: <dfn>encryption key id</dfn>
:: An {{octet}} containing the key ID corresponding to the [=auction data config/encryption key=].
: <dfn>request size</dfn>
:: {{unsigned long}} or null. An optional field, containing the desired size
for the returned encrypted request blob.
Expand Down
Loading