@@ -2851,10 +2851,6 @@ given [=validated conversion options=] |options|,
28512851[=moment=] |now|,
28522852and a [=list=] of [=integers=] |histogram|:
28532853
2854- 1. Let |field| be Field128,
2855- as defined in [Section 6.1.3] (https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-vdaf-18#section-6.1.3)
2856- of [[VDAF]] .
2857-
285828541. Let |length| be the [=list/size=] of |histogram|.
28592855
286028561. Let |maxValue| be |options|.[=validated conversion options/max value=] .
@@ -2863,7 +2859,7 @@ and a [=list=] of [=integers=] |histogram|:
28632859 rounded to the nearest integer.
28642860
286528611. Let |vdaf| be a new PrioL1BoundSum VDAF [[PRIO-L1]] instance,
2866- passing |field|, | length|, |maxValue|, and |chunkLength|.
2862+ passing |length|, |maxValue|, and |chunkLength|.
28672863
286828641. Let |microEpsilon| be |options|.[=validated conversion options/epsilon=]
28692865 multiplied by 1,000,000, then rounded toward positive Infinity.
@@ -2878,14 +2874,14 @@ and a [=list=] of [=integers=] |histogram|:
28782874
28792875 1. An empty `task_info`.
28802876
2881- 1. A `leader_aggregator_endpoint` set to the URL of the DAP Leader,
2877+ 1. A `leader_aggregator_endpoint` set to the [=URL serializer|serialized=] URL of the DAP Leader,
28822878 taken from the [=implementation-defined=] definition
28832879 of the selected [=aggregation service=]
28842880 in |options|.[=validated conversion options/Aggregation Service=] .
28852881 The encoded value is produced by invoking the [=URL serializer=]
28862882 with the configured URL and `false` (for [=URL serializer/exclude fragment=] ).
28872883
2888- 1. A `helper_aggregator_endpoint` set to the URL of the DAP Helper,
2884+ 1. A `helper_aggregator_endpoint` set to the [=URL serializer|serialized=] URL of the DAP Helper,
28892885 taken from the [=implementation-defined=] definition
28902886 of the selected [=aggregation service=]
28912887 in |options|.[=validated conversion options/Aggregation Service=] ,
@@ -2960,14 +2956,17 @@ and a [=list=] of [=integers=] |histogram|:
29602956 obtained for the [=aggregation service=]
29612957 indicated by |options|.[=validated conversion options/Aggregation Service=] .
29622958
2963- <p class=note> The URL for <a enum-value for=AttributionAggregationProtocol>"dap-18-histogram"</a> is expected to identify the DAP Leader role.
2964- Implementations need to obtain HPKE configuration for both Aggregators statically.
2959+ <p class=note>
2960+ The URL for <a enum-value for=AttributionAggregationProtocol>"dap-18-histogram"</a>
2961+ is expected to identify the DAP Leader role.
2962+ Implementations need to obtain HPKE configuration for both Aggregators statically;
2963+ see [[#unconfigured]] .
29652964 The HPKE configuration <span class=allow-2119> must not</span> be fetched on demand,
29662965 as the time that takes will leak information
29672966 to callers of {{Attribution/measureConversion()}} .
29682967
2969- 1. Let |serverRole| be 2 for the first item (the Leader)
2970- and 3 for the second (the Helper).
2968+ 1. Let |serverRole| be a [=byte=] with a value of 2 for the first item (the Leader)
2969+ or 3 for the second (the Helper).
29712970
29722971 1. Let |info| be the [=byte sequence=] formed by concatenating:
29732972 the [=isomorphic encode|encoded=] value of the string `dap-18 input share`,
@@ -2981,7 +2980,7 @@ and a [=list=] of [=integers=] |histogram|:
29812980 an empty set (for `private_extensions`) and |share| (for `payload`),
29822981 following the structure for [`PlaintextInputShare`] (https://datatracker.ietf.org/doc/html/draft-ietf-ppm-dap-18#section-4.4.2.1).
29832982
2984- 1. Let |hpke| be an HPKE [[RFC9180]] configuration
2983+ 1. Let |hpke| be an HPKE [[RFC9180]] instantiation
29852984 that is based on the same [HPKE configuration] (https://datatracker.ietf.org/doc/html/draft-ietf-ppm-dap-18#section-4.4.1).
29862985
29872986 1. Let |encryptedShare| be the result of invoking |hpke|.[`Seal<mode_base>()`] (https://hpkewg.github.io/hpke/draft-ietf-hpke-hpke.html#section-6.1),
@@ -2997,6 +2996,12 @@ and a [=list=] of [=integers=] |histogram|:
29972996
299829971. Return |report|.
29992998
2999+ <p class=note>
3000+ This algorithm replicates some details of the DAP-related specifications.
3001+ If there is discrepancy between this document and those specifications,
3002+ that is an unintentional error in this document.
3003+ Always follow the referenced specification when interacting with DAP.
3004+
30003005</div>
30013006
30023007
@@ -3967,8 +3972,8 @@ spec:css-2025; type:dfn; text:user
39673972 "Martin Thomson"
39683973 ],
39693974 "title": "Distributed Aggregation Protocol (DAP) Extensions for the Attribution API",
3970- "date": "2025-01-15 ",
3971- "href": "https://datatracker.ietf.org/doc/html/draft-thomson-ppm-dap-attribution-00 "
3975+ "date": "2026-02-18 ",
3976+ "href": "https://datatracker.ietf.org/doc/html/draft-thomson-ppm-dap-attribution-01 "
39723977 },
39733978 "dap-taskprov": {
39743979 "authors": [
0 commit comments