Skip to content

Commit

Permalink
Benchmark constant time EC p*x+q*y operation
Browse files Browse the repository at this point in the history
  • Loading branch information
randombit committed Feb 23, 2025
1 parent 9a06593 commit c94c556
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions src/cli/perf_ec.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ class PerfTest_EllipticCurve final : public PerfTest {
auto add_timer = config.make_timer(group_name + " point addition");
auto der_uc_timer = config.make_timer(group_name + " point deserialize (uncompressed)");
auto der_c_timer = config.make_timer(group_name + " point deserialize (compressed)");
auto mul2_setup_timer = config.make_timer(group_name + " mul2 setup");
auto mul2_timer = config.make_timer(group_name + " mul2");
auto mul2_setup_timer = config.make_timer(group_name + " mul2_vartime setup");
auto mul2_vt_timer = config.make_timer(group_name + " mul2_vartime");
auto mul2_ct_timer = config.make_timer(group_name + " mul2");
auto scalar_inv_timer = config.make_timer(group_name + " scalar inversion");
auto scalar_inv_vt_timer = config.make_timer(group_name + " scalar inversion vartime");
auto h2c_nu_timer = config.make_timer(group_name + " hash to curve (NU)");
Expand Down Expand Up @@ -75,7 +76,9 @@ class PerfTest_EllipticCurve final : public PerfTest {

auto mul2 = mul2_setup_timer->run([&]() { return Botan::EC_Group::Mul2Table(r1); });

auto pt = mul2_timer->run([&]() { return mul2.mul2_vartime(k, k2); });
auto pt = mul2_vt_timer->run([&]() { return mul2.mul2_vartime(k, k2); });

auto pt2 = mul2_ct_timer->run([&]() { return Botan::EC_AffinePoint::mul_px_qy(g, k, r1, k2, rng); });

if(h2c_supported) {
h2c_nu_timer->run([&]() { Botan::EC_AffinePoint::hash_to_curve_nu(group, "SHA-256", r1_bytes, {}); });
Expand All @@ -94,7 +97,8 @@ class PerfTest_EllipticCurve final : public PerfTest {
config.record_result(*bp_timer);
config.record_result(*vp_timer);
config.record_result(*mul2_setup_timer);
config.record_result(*mul2_timer);
config.record_result(*mul2_vt_timer);
config.record_result(*mul2_ct_timer);
config.record_result(*scalar_inv_timer);
config.record_result(*scalar_inv_vt_timer);
config.record_result(*der_uc_timer);
Expand Down

0 comments on commit c94c556

Please sign in to comment.