2021-01-30 09:53:44 +00:00
|
|
|
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
|
2021-08-16 23:32:37 +00:00
|
|
|
use fuzzytags::{RootSecret};
|
2021-05-20 08:53:33 +00:00
|
|
|
use rand::rngs::OsRng;
|
2021-01-30 08:23:46 +00:00
|
|
|
use std::time::Duration;
|
|
|
|
|
|
|
|
fn benchmark_generate_tag(c: &mut Criterion) {
|
|
|
|
let mut group = c.benchmark_group("generate_tags");
|
2021-01-30 09:53:44 +00:00
|
|
|
group.measurement_time(Duration::new(10, 0));
|
2021-02-03 04:50:00 +00:00
|
|
|
group.sample_size(1000);
|
2021-05-20 08:53:33 +00:00
|
|
|
let mut rng = OsRng::default();
|
2021-05-22 19:39:04 +00:00
|
|
|
let secret_key = RootSecret::<24>::generate(&mut rng);
|
2021-05-20 08:53:33 +00:00
|
|
|
let public_key = secret_key.tagging_key();
|
2021-01-30 09:53:44 +00:00
|
|
|
for p in [5, 10, 15].iter() {
|
2021-05-20 06:31:14 +00:00
|
|
|
group.bench_with_input(BenchmarkId::from_parameter(p), p, |b, _gamma| {
|
2021-05-20 08:53:33 +00:00
|
|
|
b.iter(|| public_key.generate_tag(&mut rng))
|
2021-05-20 06:31:14 +00:00
|
|
|
});
|
2021-01-30 08:23:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn benchmark_test_tag(c: &mut Criterion) {
|
|
|
|
let mut group = c.benchmark_group("test_tags");
|
2021-01-30 09:53:44 +00:00
|
|
|
group.measurement_time(Duration::new(10, 0));
|
2021-02-03 04:50:00 +00:00
|
|
|
group.sample_size(1000);
|
2021-05-20 08:53:33 +00:00
|
|
|
let mut rng = OsRng::default();
|
2021-02-01 22:20:00 +00:00
|
|
|
|
2021-05-22 19:39:04 +00:00
|
|
|
let secret_key = RootSecret::<24>::generate(&mut rng);
|
|
|
|
|
2021-05-20 08:53:33 +00:00
|
|
|
for p in [5, 10, 15, 24].iter() {
|
2021-02-05 21:57:25 +00:00
|
|
|
let detection_key = secret_key.extract_detection_key(*p);
|
2021-05-20 06:31:14 +00:00
|
|
|
group.bench_with_input(BenchmarkId::from_parameter(p), p, |b, _gamma| {
|
2021-05-20 08:53:33 +00:00
|
|
|
let tag = secret_key.tagging_key().generate_tag(&mut rng);
|
2021-05-20 06:31:14 +00:00
|
|
|
b.iter(|| detection_key.test_tag(&tag))
|
|
|
|
});
|
2021-01-30 08:23:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
criterion_group!(benches, benchmark_generate_tag, benchmark_test_tag);
|
2021-01-30 09:53:44 +00:00
|
|
|
criterion_main!(benches);
|