Skip to content

Commit 8a3900d

Browse files
authored
p256: use ecdsa::bench_ecdsa! macro (#1591)
Uses the macro introduced in RustCrypto/signtaures#1142 to write a basic ECDSA benchmark that tests both signing and verification
1 parent aa68e9b commit 8a3900d

File tree

5 files changed

+30
-4
lines changed

5 files changed

+30
-4
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bp256/benches/field.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ const FE_B: FieldElement = FieldElement::from_hex_vartime(
1313
"547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997",
1414
);
1515

16-
primefield::bench_field!(bench_field_element, "FieldElement", FE_A, FE_B);
17-
criterion_group!(benches, bench_field_element);
16+
primefield::bench_field!(bench_ecdsa, "FieldElement", FE_A, FE_B);
17+
criterion_group!(benches, bench_ecdsa);
1818
criterion_main!(benches);

p256/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ test-vectors = ["dep:hex-literal"]
6262
[package.metadata.docs.rs]
6363
all-features = true
6464

65+
[[bench]]
66+
name = "ecdsa"
67+
harness = false
68+
required-features = ["ecdsa"]
69+
6570
[[bench]]
6671
name = "field"
6772
harness = false

p256/benches/ecdsa.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//! p256 ECDSA benchmarks
2+
3+
use criterion::{criterion_group, criterion_main};
4+
use hex_literal::hex;
5+
use p256::ecdsa::{Signature, SigningKey};
6+
7+
const SIGNING_KEY_BYTES: [u8; 32] =
8+
hex!("1cf6bc6c7f642a84994119e206c9f0753ff100709f4fd12f2338c1be60bf4175");
9+
10+
fn signing_key() -> SigningKey {
11+
SigningKey::from_bytes(&SIGNING_KEY_BYTES.into()).unwrap()
12+
}
13+
14+
ecdsa_core::bench_ecdsa!(
15+
bench_ecdsa,
16+
"ECDSA/P-256 (SHA-256)",
17+
signing_key(),
18+
Signature
19+
);
20+
criterion_group!(benches, bench_ecdsa);
21+
criterion_main!(benches);

primefield/src/dev.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/// Write a series of `criterion`-based benchmarks for a field implementation.
22
#[macro_export]
33
macro_rules! bench_field {
4-
{ $name:ident, $desc:expr, $fe_a:expr, $fe_b:expr } => {
4+
($name:ident, $desc:expr, $fe_a:expr, $fe_b:expr) => {
55
fn bench_add<M: ::criterion::measurement::Measurement>(
66
group: &mut ::criterion::BenchmarkGroup<'_, M>,
77
) {

0 commit comments

Comments
 (0)