Skip to content

Commit d556a9d

Browse files
committed
Add benchmark for key generation
1 parent 855c8e6 commit d556a9d

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/bench.c

+17
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,22 @@ static void bench_sign_run(void* arg, int iters) {
121121
}
122122
}
123123

124+
static void bench_keygen_run(void* arg, int iters) {
125+
int i;
126+
bench_sign_data *data = (bench_sign_data*)arg;
127+
128+
for (i = 0; i < iters; i++) {
129+
unsigned char pub33[33];
130+
size_t len = 33;
131+
secp256k1_pubkey pubkey;
132+
CHECK(secp256k1_ec_pubkey_create(data->ctx, &pubkey, data->key));
133+
CHECK(secp256k1_ec_pubkey_serialize(data->ctx, pub33, &len, &pubkey, SECP256K1_EC_COMPRESSED));
134+
memcpy(data->key, pub33 + 1, 32);
135+
data->key[17] ^= i;
136+
}
137+
}
138+
139+
124140
#ifdef ENABLE_MODULE_ECDH
125141
# include "modules/ecdh/bench_impl.h"
126142
#endif
@@ -212,6 +228,7 @@ int main(int argc, char** argv) {
212228
data.ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN);
213229

214230
if (d || have_flag(argc, argv, "ecdsa") || have_flag(argc, argv, "sign") || have_flag(argc, argv, "ecdsa_sign")) run_benchmark("ecdsa_sign", bench_sign_run, bench_sign_setup, NULL, &data, 10, iters);
231+
if (d || have_flag(argc, argv, "ec") || have_flag(argc, argv, "keygen") || have_flag(argc, argv, "ec_keygen")) run_benchmark("ec_keygen", bench_keygen_run, bench_sign_setup, NULL, &data, 10, iters);
215232

216233
secp256k1_context_destroy(data.ctx);
217234

0 commit comments

Comments
 (0)