Skip to content

Commit e21ef54

Browse files
committed
wasm+benches
1 parent 8e1f24d commit e21ef54

File tree

7 files changed

+112
-118
lines changed

7 files changed

+112
-118
lines changed

benches/README.md

+17-17
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,28 @@ Near-obvious uplift can be had with more careful modular multiplication & additi
66
using fewer reductions. Also, 'u16' arithmetic has a performance penalty.
77

88
~~~
9-
May 31, 2024
10-
Intel® Core™ i7-7700K CPU @ 4.20GHz × 8 Circa 2017 w/ Rust 1.78.0
9+
September 27, 2024
10+
Intel® Core™ i7-7700K CPU @ 4.20GHz × 8 Circa 2017 w/ Rust 1.81.0
1111
1212
$ RUSTFLAGS="-C target-cpu=native" cargo bench
1313
14-
ml_dsa_44 keygen time: [79.674 µs 79.754 µs 79.877 µs]
15-
ml_dsa_65 keygen time: [149.41 µs 149.44 µs 149.47 µs]
16-
ml_dsa_87 keygen time: [216.21 µs 217.08 µs 218.12 µs]
14+
ml_dsa_44 keygen time: [79.427 µs 79.563 µs 79.743 µs]
15+
ml_dsa_65 keygen time: [149.51 µs 149.54 µs 149.59 µs]
16+
ml_dsa_87 keygen time: [214.53 µs 214.62 µs 214.77 µs]
1717
18-
ml_dsa_44 sk sign time: [290.51 µs 293.15 µs 295.84 µs]
19-
ml_dsa_65 sk sign time: [443.48 µs 448.59 µs 454.09 µs]
20-
ml_dsa_87 sk sign time: [558.96 µs 566.32 µs 573.92 µs]
18+
ml_dsa_44 sk sign time: [285.42 µs 288.21 µs 291.02 µs]
19+
ml_dsa_65 sk sign time: [442.89 µs 447.03 µs 451.31 µs]
20+
ml_dsa_87 sk sign time: [567.67 µs 574.08 µs 580.57 µs]
2121
22-
ml_dsa_44 esk sign time: [231.09 µs 233.74 µs 236.46 µs]
23-
ml_dsa_65 esk sign time: [337.80 µs 341.81 µs 345.84 µs]
24-
ml_dsa_87 esk sign time: [376.49 µs 382.48 µs 388.55 µs]
22+
ml_dsa_44 esk sign time: [224.79 µs 227.11 µs 229.49 µs]
23+
ml_dsa_65 esk sign time: [338.46 µs 343.11 µs 347.75 µs]
24+
ml_dsa_87 esk sign time: [384.39 µs 388.84 µs 393.61 µs]
2525
26-
ml_dsa_44 pk verify time: [74.478 µs 74.909 µs 75.334 µs]
27-
ml_dsa_65 pk verify time: [120.80 µs 121.28 µs 121.79 µs]
28-
ml_dsa_87 pk verify time: [202.96 µs 203.28 µs 203.68 µs]
26+
ml_dsa_44 pk verify time: [72.814 µs 72.833 µs 72.854 µs]
27+
ml_dsa_65 pk verify time: [121.24 µs 121.29 µs 121.35 µs]
28+
ml_dsa_87 pk verify time: [200.09 µs 200.23 µs 200.41 µs]
2929
30-
ml_dsa_44 epk verify time: [20.728 µs 20.743 µs 20.758 µs]
31-
ml_dsa_65 epk verify time: [26.153 µs 26.159 µs 26.166 µs]
32-
ml_dsa_87 epk verify time: [35.696 µs 35.715 µs 35.729 µs]
30+
ml_dsa_44 epk verify time: [20.932 µs 20.966 µs 21.009 µs]
31+
ml_dsa_65 epk verify time: [26.543 µs 26.548 µs 26.554 µs]
32+
ml_dsa_87 epk verify time: [35.872 µs 35.886 µs 35.900 µs]
3333
~~~

benches/benchmark.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -52,32 +52,32 @@ pub fn criterion_benchmark(c: &mut Criterion) {
5252
c.bench_function("ml_dsa_87 keygen", |b| b.iter(|| ml_dsa_87::try_keygen_with_rng(&mut rng)));
5353

5454
c.bench_function("ml_dsa_44 sk sign", |b| {
55-
b.iter(|| sk44.try_sign_with_rng(&mut rng, &msg, &[0]))
55+
b.iter(|| sk44.try_sign_with_rng(&mut rng, &msg, &[]))
5656
});
5757
c.bench_function("ml_dsa_65 sk sign", |b| {
58-
b.iter(|| sk65.try_sign_with_rng(&mut rng, &msg, &[0]))
58+
b.iter(|| sk65.try_sign_with_rng(&mut rng, &msg, &[]))
5959
});
6060
c.bench_function("ml_dsa_87 sk sign", |b| {
61-
b.iter(|| sk87.try_sign_with_rng(&mut rng, &msg, &[0]))
61+
b.iter(|| sk87.try_sign_with_rng(&mut rng, &msg, &[]))
6262
});
6363

6464
c.bench_function("ml_dsa_44 esk sign", |b| {
65-
b.iter(|| esk44.try_sign_with_rng(&mut rng, &msg, &[0]))
65+
b.iter(|| esk44.try_sign_with_rng(&mut rng, &msg, &[]))
6666
});
6767
c.bench_function("ml_dsa_65 esk sign", |b| {
68-
b.iter(|| esk65.try_sign_with_rng(&mut rng, &msg, &[0]))
68+
b.iter(|| esk65.try_sign_with_rng(&mut rng, &msg, &[]))
6969
});
7070
c.bench_function("ml_dsa_87 esk sign", |b| {
71-
b.iter(|| esk87.try_sign_with_rng(&mut rng, &msg, &[0]))
71+
b.iter(|| esk87.try_sign_with_rng(&mut rng, &msg, &[]))
7272
});
7373

74-
c.bench_function("ml_dsa_44 pk verify", |b| b.iter(|| pk44.verify(&msg, &sig44, &[0])));
75-
c.bench_function("ml_dsa_65 pk verify", |b| b.iter(|| pk65.verify(&msg, &sig65, &[0])));
76-
c.bench_function("ml_dsa_87 pk verify", |b| b.iter(|| pk87.verify(&msg, &sig87, &[0])));
74+
c.bench_function("ml_dsa_44 pk verify", |b| b.iter(|| pk44.verify(&msg, &sig44, &[])));
75+
c.bench_function("ml_dsa_65 pk verify", |b| b.iter(|| pk65.verify(&msg, &sig65, &[])));
76+
c.bench_function("ml_dsa_87 pk verify", |b| b.iter(|| pk87.verify(&msg, &sig87, &[])));
7777

78-
c.bench_function("ml_dsa_44 epk verify", |b| b.iter(|| epk44.verify(&msg, &sig44, &[0])));
79-
c.bench_function("ml_dsa_65 epk verify", |b| b.iter(|| epk65.verify(&msg, &sig65, &[0])));
80-
c.bench_function("ml_dsa_87 epk verify", |b| b.iter(|| epk87.verify(&msg, &sig87, &[0])));
78+
c.bench_function("ml_dsa_44 epk verify", |b| b.iter(|| epk44.verify(&msg, &sig44, &[])));
79+
c.bench_function("ml_dsa_65 epk verify", |b| b.iter(|| epk65.verify(&msg, &sig65, &[])));
80+
c.bench_function("ml_dsa_87 epk verify", |b| b.iter(|| epk87.verify(&msg, &sig87, &[])));
8181
}
8282

8383
criterion_group!(benches, criterion_benchmark);

tests/messages.rs

+6-6
Large diffs are not rendered by default.

wasm/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "fips204-wasm"
3-
version = "0.2.1"
3+
version = "0.4.0"
44
authors = ["Eric Schorn <[email protected]>"]
55
description = "Sample web page utilizing FIPS 204 code"
66
repository = ""

wasm/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ pub fn sign(message: &str) -> String {
99
let seed = 123;
1010
let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed);
1111
let (pk, sk) = ml_dsa_44::try_keygen_with_rng(&mut rng).expect("keygen failed");
12-
let sig = sk.try_sign_with_rng(&mut rng, message.as_ref()).expect("sign failed");
13-
assert!(pk.verify(message.as_ref(), &sig), "verify failed");
12+
let sig = sk.try_sign_with_rng(&mut rng, message.as_ref(), &[]).expect("sign failed");
13+
assert!(pk.verify(message.as_ref(), &sig, &[]), "verify failed");
1414

1515
let sk_hex = hex::encode(&sk.into_bytes());
1616
let sig_hex = hex::encode(&sig);

0 commit comments

Comments
 (0)