Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/bench_ecmult.c
Show First 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
int main(int argc, char **argv) { | int main(int argc, char **argv) { | ||||
bench_data data; | bench_data data; | ||||
int i, p; | int i, p; | ||||
secp256k1_gej* pubkeys_gej; | secp256k1_gej* pubkeys_gej; | ||||
size_t scratch_size; | size_t scratch_size; | ||||
data.ecmult_multi = secp256k1_ecmult_multi_var; | |||||
if (argc > 1) { | if (argc > 1) { | ||||
if(have_flag(argc, argv, "pippenger_wnaf")) { | if(have_flag(argc, argv, "pippenger_wnaf")) { | ||||
printf("Using pippenger_wnaf:\n"); | printf("Using pippenger_wnaf:\n"); | ||||
data.ecmult_multi = secp256k1_ecmult_pippenger_batch_single; | data.ecmult_multi = secp256k1_ecmult_pippenger_batch_single; | ||||
} else if(have_flag(argc, argv, "strauss_wnaf")) { | } else if(have_flag(argc, argv, "strauss_wnaf")) { | ||||
printf("Using strauss_wnaf:\n"); | printf("Using strauss_wnaf:\n"); | ||||
data.ecmult_multi = secp256k1_ecmult_strauss_batch_single; | data.ecmult_multi = secp256k1_ecmult_strauss_batch_single; | ||||
} | |||||
} else { | } else { | ||||
data.ecmult_multi = secp256k1_ecmult_multi_var; | fprintf(stderr, "%s: unrecognized argument '%s'.\n", argv[0], argv[1]); | ||||
fprintf(stderr, "Use 'pippenger_wnaf', 'strauss_wnaf' or no argument to benchmark a combined algorithm.\n"); | |||||
return 1; | |||||
} | |||||
} | } | ||||
/* Allocate stuff */ | /* Allocate stuff */ | ||||
data.ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY); | data.ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY); | ||||
scratch_size = secp256k1_strauss_scratch_size(POINTS) + STRAUSS_SCRATCH_OBJECTS*16; | scratch_size = secp256k1_strauss_scratch_size(POINTS) + STRAUSS_SCRATCH_OBJECTS*16; | ||||
data.scratch = secp256k1_scratch_space_create(data.ctx, scratch_size); | data.scratch = secp256k1_scratch_space_create(data.ctx, scratch_size); | ||||
data.scalars = malloc(sizeof(secp256k1_scalar) * POINTS); | data.scalars = malloc(sizeof(secp256k1_scalar) * POINTS); | ||||
data.seckeys = malloc(sizeof(secp256k1_scalar) * POINTS); | data.seckeys = malloc(sizeof(secp256k1_scalar) * POINTS); | ||||
Show All 37 Lines |