Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/tests_exhaustive.c
Show First 20 Lines • Show All 190 Lines • ▼ Show 20 Lines | static int ecmult_multi_callback(secp256k1_scalar *sc, secp256k1_ge *pt, size_t idx, void *cbdata) { | ||||
ecmult_multi_data *data = (ecmult_multi_data*) cbdata; | ecmult_multi_data *data = (ecmult_multi_data*) cbdata; | ||||
*sc = data->sc[idx]; | *sc = data->sc[idx]; | ||||
*pt = data->pt[idx]; | *pt = data->pt[idx]; | ||||
return 1; | return 1; | ||||
} | } | ||||
void test_exhaustive_ecmult_multi(const secp256k1_context *ctx, const secp256k1_ge *group, int order) { | void test_exhaustive_ecmult_multi(const secp256k1_context *ctx, const secp256k1_ge *group, int order) { | ||||
int i, j, k, x, y; | int i, j, k, x, y; | ||||
secp256k1_scratch *scratch = secp256k1_scratch_create(&ctx->error_callback, 1024, 4096); | secp256k1_scratch *scratch = secp256k1_scratch_create(&ctx->error_callback, 4096); | ||||
for (i = 0; i < order; i++) { | for (i = 0; i < order; i++) { | ||||
for (j = 0; j < order; j++) { | for (j = 0; j < order; j++) { | ||||
for (k = 0; k < order; k++) { | for (k = 0; k < order; k++) { | ||||
for (x = 0; x < order; x++) { | for (x = 0; x < order; x++) { | ||||
for (y = 0; y < order; y++) { | for (y = 0; y < order; y++) { | ||||
secp256k1_gej tmp; | secp256k1_gej tmp; | ||||
secp256k1_scalar g_sc; | secp256k1_scalar g_sc; | ||||
ecmult_multi_data data; | ecmult_multi_data data; | ||||
▲ Show 20 Lines • Show All 304 Lines • Show Last 20 Lines |