Skip to content

Commit f5b2973

Browse files
committed
Add dndk-gcm benchmark
1 parent 023a943 commit f5b2973

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

benches/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ aes-gcm-siv = { path = "../aes-gcm-siv/" }
1919
ascon-aead128 = { path = "../ascon-aead128/" }
2020
chacha20poly1305 = { path = "../chacha20poly1305/" }
2121
deoxys = { path = "../deoxys/" }
22+
dndk-gcm = { path = "../dndk-gcm/" }
2223
eax = { path = "../eax/" }
2324

2425
[target.'cfg(any(target_arch = "x86_64", target_arch = "x86"))'.dependencies]
@@ -49,6 +50,11 @@ name = "deoxys"
4950
path = "src/deoxys.rs"
5051
harness = false
5152

53+
[[bench]]
54+
name = "dndk-gcm"
55+
path = "src/dndk-gcm.rs"
56+
harness = false
57+
5258
[[bench]]
5359
name = "eax"
5460
path = "src/eax.rs"

benches/src/dndk-gcm.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput};
2+
3+
use dndk_gcm::aead::{Aead, KeyInit};
4+
use dndk_gcm::DndkGcm;
5+
6+
const KB: usize = 1024;
7+
8+
#[cfg(not(any(target_arch = "x86_64", target_arch = "x86")))]
9+
type Benchmarker = Criterion;
10+
#[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
11+
type Benchmarker = Criterion<criterion_cycles_per_byte::CyclesPerByte>;
12+
13+
fn bench(c: &mut Benchmarker) {
14+
let mut group = c.benchmark_group("dndk-gcm");
15+
16+
for size in &[KB, 2 * KB, 4 * KB, 8 * KB, 16 * KB] {
17+
let buf = vec![0u8; *size];
18+
19+
group.throughput(Throughput::Bytes(*size as u64));
20+
21+
group.bench_function(BenchmarkId::new("encrypt-256", size), |b| {
22+
let cipher = DndkGcm::new(&Default::default());
23+
b.iter(|| cipher.encrypt(&Default::default(), &*buf))
24+
});
25+
group.bench_function(BenchmarkId::new("decrypt-256", size), |b| {
26+
let cipher = DndkGcm::new(&Default::default());
27+
b.iter(|| cipher.decrypt(&Default::default(), &*buf))
28+
});
29+
}
30+
31+
group.finish();
32+
}
33+
34+
#[cfg(not(any(target_arch = "x86_64", target_arch = "x86")))]
35+
criterion_group!(
36+
name = benches;
37+
config = Criterion::default();
38+
targets = bench
39+
);
40+
41+
#[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
42+
criterion_group!(
43+
name = benches;
44+
config = Criterion::default().with_measurement(criterion_cycles_per_byte::CyclesPerByte);
45+
targets = bench
46+
);
47+
48+
criterion_main!(benches);

0 commit comments

Comments
 (0)