diff options
author | Nora Widdecke <nora@sequoia-pgp.org> | 2021-03-31 13:28:06 +0200 |
---|---|---|
committer | Nora Widdecke <nora@sequoia-pgp.org> | 2021-04-13 12:38:15 +0200 |
commit | b2c2862ba89eeef728c77e441af1d0f6c008adb9 (patch) | |
tree | 49c61892470cf54f08c13339cb94376581c3d8d4 | |
parent | 1e6c4d8e4aeac6d8673ca2b768d7243940e70d13 (diff) |
bench: Add benchmark generate_certs.
-rw-r--r-- | openpgp/Cargo.toml | 4 | ||||
-rw-r--r-- | openpgp/benches/generate_cert.rs | 38 |
2 files changed, 42 insertions, 0 deletions
diff --git a/openpgp/Cargo.toml b/openpgp/Cargo.toml index 5dda0492..cd6395c4 100644 --- a/openpgp/Cargo.toml +++ b/openpgp/Cargo.toml @@ -86,5 +86,9 @@ name = "pad" required-features = ["compression-deflate"] [[bench]] +name = "generate_cert" +harness = false + +[[bench]] name = "parse_cert" harness = false diff --git a/openpgp/benches/generate_cert.rs b/openpgp/benches/generate_cert.rs new file mode 100644 index 00000000..45b707ce --- /dev/null +++ b/openpgp/benches/generate_cert.rs @@ -0,0 +1,38 @@ +use criterion::{criterion_group, criterion_main, Criterion}; + +use sequoia_openpgp as openpgp; +use openpgp::cert::{CertBuilder, CipherSuite}; + +fn generate_cert(cipher: CipherSuite) { + // Parse the cert, ignore any errors + let _ = CertBuilder::general_purpose( + cipher, + Some("Alice Lovelace <alice@example.org>"), + ) + .generate() + .unwrap(); +} + +fn bench_generate_certs(c: &mut Criterion) { + let mut group = c.benchmark_group("generate cert"); + let cipher = CipherSuite::Cv25519; + group.bench_function(format!("{:?}", cipher), |b| { + b.iter(|| generate_cert(cipher)) + }); + let cipher = CipherSuite::P256; + group.bench_function(format!("{:?}", cipher), |b| { + b.iter(|| generate_cert(cipher)) + }); + let cipher = CipherSuite::P384; + group.bench_function(format!("{:?}", cipher), |b| { + b.iter(|| generate_cert(cipher)) + }); + let cipher = CipherSuite::P521; + group.bench_function(format!("{:?}", cipher), |b| { + b.iter(|| generate_cert(cipher)) + }); + group.finish(); +} + +criterion_group!(benches, bench_generate_certs); +criterion_main!(benches); |