Skip to content

Commit 053e895

Browse files
committed
Update taskprov advertisement encoding for latest draft
1 parent b01c4e4 commit 053e895

File tree

15 files changed

+785
-552
lines changed

15 files changed

+785
-552
lines changed

crates/dapf/src/acceptance/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,10 @@ impl Test {
381381
lifetime: 60,
382382
min_batch_size: reports_per_batch.try_into().unwrap(),
383383
query: DapBatchMode::LeaderSelected {
384-
max_batch_size: NonZeroU32::new(reports_per_batch.try_into().unwrap()),
384+
draft09_max_batch_size: match version {
385+
DapVersion::Draft09 => NonZeroU32::new(reports_per_batch.try_into().unwrap()),
386+
DapVersion::Latest => None,
387+
},
385388
},
386389
vdaf: self.vdaf_config,
387390
..Default::default()

crates/dapf/src/cli_parsers.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ impl FromStr for CliDapBatchMode {
155155
Ok(Self(DapBatchMode::TimeInterval))
156156
} else if let Some(size) = s.strip_prefix("leader-selected") {
157157
Ok(Self(DapBatchMode::LeaderSelected {
158-
max_batch_size: if let Some(size) = size.strip_prefix("-") {
158+
draft09_max_batch_size: if let Some(size) = size.strip_prefix("-") {
159159
Some(
160160
size.parse()
161161
.map_err(|e| format!("{s} is an invalid max batch size: {e:?}"))?,

crates/dapf/src/main.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ async fn handle_test_routes(action: TestAction, http_client: HttpClient) -> anyh
845845
let CliDapBatchMode(query) = use_or_request_from_user_or_default(
846846
query,
847847
|| DapBatchMode::LeaderSelected {
848-
max_batch_size: None,
848+
draft09_max_batch_size: None,
849849
},
850850
"query",
851851
)?;
@@ -885,7 +885,9 @@ async fn handle_test_routes(action: TestAction, http_client: HttpClient) -> anyh
885885
)?,
886886
max_batch_size: match query {
887887
DapBatchMode::TimeInterval => None,
888-
DapBatchMode::LeaderSelected { max_batch_size } => max_batch_size,
888+
DapBatchMode::LeaderSelected {
889+
draft09_max_batch_size,
890+
} => draft09_max_batch_size,
889891
},
890892
time_precision: use_or_request_from_user_or_default(
891893
time_precision,

crates/daphne-server/src/roles/aggregator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ impl DapAggregator for crate::App {
196196
num_agg_span_shards: global_config.default_num_agg_span_shards,
197197
})
198198
},
199-
Some(task_config.task_expiration),
199+
Some(task_config.not_after()),
200200
)
201201
.await
202202
.map_err(|e| match &*e {

crates/daphne-server/src/roles/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,9 @@ mod test_utils {
287287
err = "command failed: unexpected max batch size"
288288
))
289289
}
290-
(2, max_batch_size) => DapBatchMode::LeaderSelected { max_batch_size },
290+
(2, max_batch_size) => DapBatchMode::LeaderSelected {
291+
draft09_max_batch_size: max_batch_size,
292+
},
291293
_ => {
292294
return Err(fatal_error!(
293295
err = "command failed: unrecognized batch mode"

crates/daphne-server/src/router/extractor.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -671,17 +671,25 @@ mod test {
671671
helper_url: daphne::messages::taskprov::UrlBytes {
672672
bytes: b"http://helper".into(),
673673
},
674-
query_config: daphne::messages::taskprov::QueryConfig {
675-
time_precision: 1,
676-
max_batch_query_count: 1,
677-
min_batch_size: 1,
678-
batch_mode: daphne::messages::taskprov::BatchMode::TimeInterval,
674+
time_precision: 1,
675+
min_batch_size: 1,
676+
query_config: daphne::messages::taskprov::QueryConfig::TimeInterval,
677+
lifetime: match version {
678+
DapVersion::Draft09 => {
679+
daphne::messages::taskprov::TaskLifetime::Draft09 { expiration: 1 }
680+
}
681+
DapVersion::Latest => daphne::messages::taskprov::TaskLifetime::Latest {
682+
start: 0,
683+
duration: 1,
684+
},
679685
},
680-
task_expiration: 1,
681-
vdaf_config: daphne::messages::taskprov::VdafConfig {
682-
dp_config: daphne::messages::taskprov::DpConfig::None,
683-
var: daphne::messages::taskprov::VdafTypeVar::Prio2 { dimension: 1 },
686+
vdaf_config: daphne::messages::taskprov::VdafConfig::Prio2 { dimension: 1 },
687+
extensions: Vec::new(),
688+
draft09_max_batch_query_count: match version {
689+
DapVersion::Draft09 => Some(1),
690+
DapVersion::Latest => None,
684691
},
692+
draft09_dp_config: Some(daphne::messages::taskprov::DpConfig::None),
685693
};
686694

687695
let req = test::<()>(

crates/daphne-server/tests/e2e/e2e.rs

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -478,69 +478,6 @@ async fn leader_upload_taskprov() {
478478
.unwrap();
479479
}
480480

481-
async fn leader_upload_taskprov_wrong_version(version: DapVersion) {
482-
let wrong_version = match version {
483-
DapVersion::Draft09 => DapVersion::Latest,
484-
DapVersion::Latest => DapVersion::Draft09,
485-
};
486-
let method = match version {
487-
DapVersion::Draft09 => &http::Method::PUT,
488-
DapVersion::Latest => &http::Method::POST,
489-
};
490-
let t = TestRunner::default_with_version(version).await;
491-
let client = t.http_client();
492-
let hpke_config_list = t.get_hpke_configs(version, client).await.unwrap();
493-
494-
let (task_config, task_id, taskprov_advertisement) = DapTaskParameters {
495-
version,
496-
min_batch_size: 10,
497-
query: DapBatchMode::TimeInterval,
498-
leader_url: t.task_config.leader_url.clone(),
499-
helper_url: t.task_config.helper_url.clone(),
500-
..Default::default()
501-
}
502-
.to_config_with_taskprov(
503-
b"cool task".to_vec(),
504-
t.now,
505-
daphne::roles::aggregator::TaskprovConfig {
506-
hpke_collector_config: &t.taskprov_collector_hpke_receiver.config,
507-
vdaf_verify_key_init: &t.taskprov_vdaf_verify_key_init,
508-
},
509-
)
510-
.unwrap();
511-
512-
let report = task_config
513-
.vdaf
514-
.produce_report_with_extensions(
515-
&hpke_config_list,
516-
t.now,
517-
&task_id,
518-
DapMeasurement::U32Vec(vec![1; 10]),
519-
vec![Extension::Taskprov],
520-
version,
521-
)
522-
.unwrap();
523-
t.leader_request_expect_abort(
524-
client,
525-
None,
526-
&format!("tasks/{}/reports", task_id.to_base64url()),
527-
method,
528-
DapMediaType::Report,
529-
Some(
530-
&taskprov_advertisement
531-
.serialize_to_header_value(wrong_version)
532-
.unwrap(),
533-
),
534-
report.get_encoded_with_param(&version).unwrap(),
535-
400,
536-
"unrecognizedTask",
537-
)
538-
.await
539-
.unwrap();
540-
}
541-
542-
async_test_versions!(leader_upload_taskprov_wrong_version);
543-
544481
async fn internal_leader_process(version: DapVersion) {
545482
let t = TestRunner::default_with_version(version).await;
546483
let path = t.upload_path();

crates/daphne-server/tests/e2e/test_runner.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,10 @@ impl TestRunner {
6868
Self::with(
6969
version,
7070
&DapBatchMode::LeaderSelected {
71-
max_batch_size: Some(NonZeroU32::new(MAX_BATCH_SIZE).unwrap()),
71+
draft09_max_batch_size: match version {
72+
DapVersion::Draft09 => NonZeroU32::new(MAX_BATCH_SIZE),
73+
DapVersion::Latest => None,
74+
},
7275
},
7376
)
7477
.await
@@ -178,7 +181,9 @@ impl TestRunner {
178181

179182
let (batch_mode, max_batch_size) = match t.task_config.query {
180183
DapBatchMode::TimeInterval => (1, None),
181-
DapBatchMode::LeaderSelected { max_batch_size } => (2, Some(max_batch_size)),
184+
DapBatchMode::LeaderSelected {
185+
draft09_max_batch_size,
186+
} => (2, draft09_max_batch_size),
182187
};
183188

184189
const MAX_ATTEMPTS: usize = 10;

crates/daphne-worker/src/aggregator/roles/aggregator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ impl DapAggregator for App {
195195
num_agg_span_shards: global_config.default_num_agg_span_shards,
196196
})
197197
},
198-
Some(task_config.task_expiration),
198+
Some(task_config.not_after()),
199199
),
200200
)
201201
.await

crates/daphne-worker/src/aggregator/roles/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,9 @@ mod test_utils {
269269
err = "command failed: unexpected max batch size"
270270
))
271271
}
272-
(2, max_batch_size) => DapBatchMode::LeaderSelected { max_batch_size },
272+
(2, max_batch_size) => DapBatchMode::LeaderSelected {
273+
draft09_max_batch_size: max_batch_size,
274+
},
273275
_ => {
274276
return Err(fatal_error!(
275277
err = "command failed: unrecognized batch mode"

0 commit comments

Comments
 (0)