Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/tests.c
Show First 20 Lines • Show All 2,209 Lines • ▼ Show 20 Lines | for (i1 = 0; i1 < 1 + 4 * runs; i1++) { | ||||
secp256k1_gej_double_var(&resj, &gej[i1], &zr2); | secp256k1_gej_double_var(&resj, &gej[i1], &zr2); | ||||
ge_equals_gej(&ref, &resj); | ge_equals_gej(&ref, &resj); | ||||
/* Check Z ratio. */ | /* Check Z ratio. */ | ||||
secp256k1_fe_mul(&zr2, &zr2, &gej[i1].z); | secp256k1_fe_mul(&zr2, &zr2, &gej[i1].z); | ||||
CHECK(secp256k1_fe_equal_var(&zr2, &resj.z)); | CHECK(secp256k1_fe_equal_var(&zr2, &resj.z)); | ||||
/* Normal doubling. */ | /* Normal doubling. */ | ||||
secp256k1_gej_double_var(&resj, &gej[i2], NULL); | secp256k1_gej_double_var(&resj, &gej[i2], NULL); | ||||
ge_equals_gej(&ref, &resj); | ge_equals_gej(&ref, &resj); | ||||
/* Constant-time doubling. */ | |||||
secp256k1_gej_double(&resj, &gej[i2]); | |||||
ge_equals_gej(&ref, &resj); | |||||
} | } | ||||
/* Test adding opposites. */ | /* Test adding opposites. */ | ||||
if ((i1 == 0 && i2 == 0) || ((i1 + 3)/4 == (i2 + 3)/4 && ((i1 + 3)%4)/2 != ((i2 + 3)%4)/2)) { | if ((i1 == 0 && i2 == 0) || ((i1 + 3)/4 == (i2 + 3)/4 && ((i1 + 3)%4)/2 != ((i2 + 3)%4)/2)) { | ||||
CHECK(secp256k1_ge_is_infinity(&ref)); | CHECK(secp256k1_ge_is_infinity(&ref)); | ||||
} | } | ||||
/* Test adding infinity. */ | /* Test adding infinity. */ | ||||
▲ Show 20 Lines • Show All 3,233 Lines • Show Last 20 Lines |