bench: improve context creation in ECDH benchmark
Calling `secp256k1_context_create` with `SECP256K1_FLAGS_TYPE_CONTEXT` seems to be not strictly API-compliant, as the only allowed (non-deprecated) value is `SECP256K1_CONTEXT_NONE`, even if the former happens to map to the latter currently. Fix this by not dynamically creating a context in the first place and switch to using the static context, as it is sufficient for this benchmark and presumably matches what the "no capabilities" comment intended back then.
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
#include "../../../include/secp256k1_ecdh.h"
|
#include "../../../include/secp256k1_ecdh.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
secp256k1_context *ctx;
|
const secp256k1_context *ctx;
|
||||||
secp256k1_pubkey point;
|
secp256k1_pubkey point;
|
||||||
unsigned char scalar[32];
|
unsigned char scalar[32];
|
||||||
} bench_ecdh_data;
|
} bench_ecdh_data;
|
||||||
@@ -46,12 +46,9 @@ static void run_ecdh_bench(int iters, int argc, char** argv) {
|
|||||||
bench_ecdh_data data;
|
bench_ecdh_data data;
|
||||||
int d = argc == 1;
|
int d = argc == 1;
|
||||||
|
|
||||||
/* create a context with no capabilities */
|
data.ctx = secp256k1_context_static;
|
||||||
data.ctx = secp256k1_context_create(SECP256K1_FLAGS_TYPE_CONTEXT);
|
|
||||||
|
|
||||||
if (d || have_flag(argc, argv, "ecdh")) run_benchmark("ecdh", bench_ecdh, bench_ecdh_setup, NULL, &data, 10, iters);
|
if (d || have_flag(argc, argv, "ecdh")) run_benchmark("ecdh", bench_ecdh, bench_ecdh_setup, NULL, &data, 10, iters);
|
||||||
|
|
||||||
secp256k1_context_destroy(data.ctx);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SECP256K1_MODULE_ECDH_BENCH_H */
|
#endif /* SECP256K1_MODULE_ECDH_BENCH_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user