diff options
author | Nora Widdecke <nora@sequoia-pgp.org> | 2021-01-19 15:39:42 +0100 |
---|---|---|
committer | Nora Widdecke <nora@sequoia-pgp.org> | 2021-01-19 15:45:03 +0100 |
commit | ba723b54efebc0548150f6166e2d1192740d6b8d (patch) | |
tree | 9ad8773e3a26e63c318c8df3f499db651b937e2d | |
parent | 204644b0e50baddbfb80ade07d2c61f5ea5d90ec (diff) |
change key to cert
-rw-r--r-- | openpgp/Cargo.toml | 4 | ||||
-rw-r--r-- | openpgp/benches/generate_cert.rs | 28 | ||||
-rw-r--r-- | openpgp/benches/generate_keys.rs | 22 | ||||
-rw-r--r-- | openpgp/benches/parse_cert.rs | 31 | ||||
-rw-r--r-- | openpgp/benches/read_keys.rs | 26 |
5 files changed, 61 insertions, 50 deletions
diff --git a/openpgp/Cargo.toml b/openpgp/Cargo.toml index ff1e57a1..883e485f 100644 --- a/openpgp/Cargo.toml +++ b/openpgp/Cargo.toml @@ -86,9 +86,9 @@ name = "pad" required-features = ["compression-deflate"] [[bench]] -name = "generate_keys" +name = "generate_cert" harness = false [[bench]] -name = "read_keys" +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..0f5705a6 --- /dev/null +++ b/openpgp/benches/generate_cert.rs @@ -0,0 +1,28 @@ +use criterion::{criterion_group, criterion_main, Criterion}; + +use sequoia_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(); +} + +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); diff --git a/openpgp/benches/generate_keys.rs b/openpgp/benches/generate_keys.rs deleted file mode 100644 index c006fd83..00000000 --- a/openpgp/benches/generate_keys.rs +++ /dev/null @@ -1,22 +0,0 @@ -use criterion::{criterion_group, criterion_main, Criterion}; - -use sequoia_openpgp::cert::{Cert, CertBuilder}; - -// Borrowed from chapter 01 of the guide -// Generates an signing-capable key. -fn generate_signing() -> sequoia_openpgp::Result<Cert> { - let (cert, _revocation) = CertBuilder::new() - .add_userid("someone@example.org") - .add_signing_subkey() - .generate()?; - Ok(cert) -} - -fn bench_generate_keys(c: &mut Criterion) { - let mut group = c.benchmark_group("generate keys"); - group.bench_function("signing", |b| b.iter(|| generate_signing())); - group.finish(); -} - -criterion_group!(benches, bench_generate_keys); -criterion_main!(benches); diff --git a/openpgp/benches/parse_cert.rs b/openpgp/benches/parse_cert.rs new file mode 100644 index 00000000..f40485ae --- /dev/null +++ b/openpgp/benches/parse_cert.rs @@ -0,0 +1,31 @@ +use criterion::{criterion_group, criterion_main, Criterion, Throughput}; + +use sequoia_openpgp::cert::Cert; +use sequoia_openpgp::parse::Parse; + +use std::convert::TryInto; + +fn read_cert(bytes: &[u8]) { + // Parse the cert, ignore any errors + let _ = Cert::from_bytes(bytes); +} + +macro_rules! bench_parse_cert { + ( $filename: expr, $group: expr ) => { + let bytes = include_bytes!(concat!("../tests/data/keys/", $filename)); + $group.throughput(Throughput::Bytes(bytes.len().try_into().unwrap())); + $group.bench_function($filename, |b| b.iter(|| read_cert(bytes))); + } + +} +fn bench_parse_certs(c: &mut Criterion) { + let mut group = c.benchmark_group("parse flooded cert"); + bench_parse_cert!("dkg.gpg", group); + group.finish(); + let mut group = c.benchmark_group("parse typical cert"); + bench_parse_cert!("neal.pgp", group); + group.finish(); +} + +criterion_group!(benches, bench_parse_certs); +criterion_main!(benches); diff --git a/openpgp/benches/read_keys.rs b/openpgp/benches/read_keys.rs deleted file mode 100644 index 0f227ae6..00000000 --- a/openpgp/benches/read_keys.rs +++ /dev/null @@ -1,26 +0,0 @@ -use criterion::{criterion_group, criterion_main, Criterion}; - -use sequoia_openpgp::cert::Cert; -use sequoia_openpgp::parse::Parse; - -fn read_key(bytes: &[u8]) { - // Parse the cert, ignore any errors - let _ = Cert::from_bytes(bytes); -} - -macro_rules! bench_parse_key { - ( $filename: expr, $group: expr ) => { - let bytes = include_bytes!(concat!("../tests/data/keys/", $filename)); - $group.bench_function($filename, |b| b.iter(|| read_key(bytes))); - } - -} -fn bench_read_keys(c: &mut Criterion) { - let mut group = c.benchmark_group("read keys"); - bench_parse_key!("dkg.gpg", group); - bench_parse_key!("neal.pgp", group); - group.finish(); -} - -criterion_group!(benches, bench_read_keys); -criterion_main!(benches); |