mirror of
https://github.com/saymrwulf/fips205-source.git
synced 2026-09-04 20:03:45 +00:00
154 lines
7.1 KiB
Rust
154 lines
7.1 KiB
Rust
use criterion::{criterion_group, criterion_main, Criterion};
|
|
use fips205::traits::{KeyGen, Signer, Verifier};
|
|
use fips205::{
|
|
slh_dsa_sha2_128f, slh_dsa_sha2_128s, slh_dsa_sha2_192f, slh_dsa_sha2_192s, slh_dsa_sha2_256f,
|
|
slh_dsa_sha2_256s, slh_dsa_shake_128f, slh_dsa_shake_128s, slh_dsa_shake_192f,
|
|
slh_dsa_shake_192s, slh_dsa_shake_256f, slh_dsa_shake_256s,
|
|
};
|
|
|
|
|
|
#[allow(clippy::redundant_closure)]
|
|
pub fn criterion_benchmark(c: &mut Criterion) {
|
|
let message = [0u8, 1, 2, 3, 4, 5, 6, 7];
|
|
let randomize = false;
|
|
|
|
let (pk_sha2_128s, sk_sha2_128s) = slh_dsa_sha2_128s::KG::try_keygen().unwrap();
|
|
let (pk_sha2_128f, sk_sha2_128f) = slh_dsa_sha2_128f::KG::try_keygen().unwrap();
|
|
let (pk_sha2_192s, sk_sha2_192s) = slh_dsa_sha2_192s::KG::try_keygen().unwrap();
|
|
let (pk_sha2_192f, sk_sha2_192f) = slh_dsa_sha2_192f::KG::try_keygen().unwrap();
|
|
let (pk_sha2_256s, sk_sha2_256s) = slh_dsa_sha2_256s::KG::try_keygen().unwrap();
|
|
let (pk_sha2_256f, sk_sha2_256f) = slh_dsa_sha2_256f::KG::try_keygen().unwrap();
|
|
let (pk_shake_128s, sk_shake_128s) = slh_dsa_shake_128s::KG::try_keygen().unwrap();
|
|
let (pk_shake_128f, sk_shake_128f) = slh_dsa_shake_128f::KG::try_keygen().unwrap();
|
|
let (pk_shake_192s, sk_shake_192s) = slh_dsa_shake_192s::KG::try_keygen().unwrap();
|
|
let (pk_shake_192f, sk_shake_192f) = slh_dsa_shake_192f::KG::try_keygen().unwrap();
|
|
let (pk_shake_256s, sk_shake_256s) = slh_dsa_shake_256s::KG::try_keygen().unwrap();
|
|
let (pk_shake_256f, sk_shake_256f) = slh_dsa_shake_256f::KG::try_keygen().unwrap();
|
|
|
|
let sig_sha2_128s = sk_sha2_128s
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_sha2_128f = sk_sha2_128f
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_sha2_192s = sk_sha2_192s
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_sha2_192f = sk_sha2_192f
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_sha2_256s = sk_sha2_256s
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_sha2_256f = sk_sha2_256f
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_shake_128s = sk_shake_128s
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_shake_128f = sk_shake_128f
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_shake_192s = sk_shake_192s
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_shake_192f = sk_shake_192f
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_shake_256s = sk_shake_256s
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
let sig_shake_256f = sk_shake_256f
|
|
.try_sign(&message, b"context", randomize)
|
|
.unwrap();
|
|
|
|
c.bench_function("sha2_128f keygen", |b| b.iter(|| slh_dsa_sha2_128f::KG::try_keygen()));
|
|
c.bench_function("sha2_192f keygen", |b| b.iter(|| slh_dsa_sha2_192f::KG::try_keygen()));
|
|
c.bench_function("sha2_256f keygen", |b| b.iter(|| slh_dsa_sha2_256f::KG::try_keygen()));
|
|
c.bench_function("shake_128f keygen", |b| b.iter(|| slh_dsa_shake_128f::KG::try_keygen()));
|
|
c.bench_function("shake_192f keygen", |b| b.iter(|| slh_dsa_shake_192f::KG::try_keygen()));
|
|
c.bench_function("shake_256f keygen", |b| b.iter(|| slh_dsa_shake_256f::KG::try_keygen()));
|
|
c.bench_function("sha2_128s keygen", |b| b.iter(|| slh_dsa_sha2_128s::KG::try_keygen()));
|
|
c.bench_function("sha2_192s keygen", |b| b.iter(|| slh_dsa_sha2_192s::KG::try_keygen()));
|
|
c.bench_function("sha2_256s keygen", |b| b.iter(|| slh_dsa_sha2_256s::KG::try_keygen()));
|
|
c.bench_function("shake_128s keygen", |b| b.iter(|| slh_dsa_shake_128s::KG::try_keygen()));
|
|
c.bench_function("shake_192s keygen", |b| b.iter(|| slh_dsa_shake_192s::KG::try_keygen()));
|
|
c.bench_function("shake_256s keygen", |b| b.iter(|| slh_dsa_shake_256s::KG::try_keygen()));
|
|
//
|
|
c.bench_function("sha2_128f sign ", |b| {
|
|
b.iter(|| sk_sha2_128f.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("sha2_192f sign ", |b| {
|
|
b.iter(|| sk_sha2_192f.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("sha2_256f sign ", |b| {
|
|
b.iter(|| sk_sha2_256f.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("shake_128f sign ", |b| {
|
|
b.iter(|| sk_shake_128f.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("shake_192f sign ", |b| {
|
|
b.iter(|| sk_shake_192f.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("shake_256f sign ", |b| {
|
|
b.iter(|| sk_shake_256f.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("sha2_128s sign ", |b| {
|
|
b.iter(|| sk_sha2_128s.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("sha2_192s sign ", |b| {
|
|
b.iter(|| sk_sha2_192s.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("sha2_256s sign ", |b| {
|
|
b.iter(|| sk_sha2_256s.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("shake_128s sign ", |b| {
|
|
b.iter(|| sk_shake_128s.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("shake_192s sign ", |b| {
|
|
b.iter(|| sk_shake_192s.try_sign(&message, b"context", randomize))
|
|
});
|
|
c.bench_function("shake_256s sign ", |b| {
|
|
b.iter(|| sk_shake_256s.try_sign(&message, b"context", randomize))
|
|
});
|
|
//
|
|
c.bench_function("sha2_128f verify", |b| {
|
|
b.iter(|| pk_sha2_128f.verify(&message, &sig_sha2_128f, b"context"))
|
|
});
|
|
c.bench_function("sha2_192f verify", |b| {
|
|
b.iter(|| pk_sha2_192f.verify(&message, &sig_sha2_192f, b"context"))
|
|
});
|
|
c.bench_function("sha2_256f verify", |b| {
|
|
b.iter(|| pk_sha2_256f.verify(&message, &sig_sha2_256f, b"context"))
|
|
});
|
|
c.bench_function("shake_128f verify", |b| {
|
|
b.iter(|| pk_shake_128f.verify(&message, &sig_shake_128f, b"context"))
|
|
});
|
|
c.bench_function("shake_192f verify", |b| {
|
|
b.iter(|| pk_shake_192f.verify(&message, &sig_shake_192f, b"context"))
|
|
});
|
|
c.bench_function("shake_256f verify", |b| {
|
|
b.iter(|| pk_shake_256f.verify(&message, &sig_shake_256f, b"context"))
|
|
});
|
|
c.bench_function("sha2_128s verify", |b| {
|
|
b.iter(|| pk_sha2_128s.verify(&message, &sig_sha2_128s, b"context"))
|
|
});
|
|
c.bench_function("sha2_192s verify", |b| {
|
|
b.iter(|| pk_sha2_192s.verify(&message, &sig_sha2_192s, b"context"))
|
|
});
|
|
c.bench_function("sha2_256s verify", |b| {
|
|
b.iter(|| pk_sha2_256s.verify(&message, &sig_sha2_256s, b"context"))
|
|
});
|
|
c.bench_function("shake_128s verify", |b| {
|
|
b.iter(|| pk_shake_128s.verify(&message, &sig_shake_128s, b"context"))
|
|
});
|
|
c.bench_function("shake_192s verify", |b| {
|
|
b.iter(|| pk_shake_192s.verify(&message, &sig_shake_192s, b"context"))
|
|
});
|
|
c.bench_function("shake_256s verify", |b| {
|
|
b.iter(|| pk_shake_256s.verify(&message, &sig_shake_256s, b"context"))
|
|
});
|
|
}
|
|
|
|
criterion_group!(benches, criterion_benchmark);
|
|
criterion_main!(benches);
|