Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/tests.c
Show First 20 Lines • Show All 1,816 Lines • ▼ Show 20 Lines | for (i = 0; i < 5*count; i++) { | ||||
CHECK(secp256k1_fe_cmp_var(&x, &x) == 0); | CHECK(secp256k1_fe_cmp_var(&x, &x) == 0); | ||||
CHECK(secp256k1_fe_equal_var(&x, &x)); | CHECK(secp256k1_fe_equal_var(&x, &x)); | ||||
z = x; | z = x; | ||||
secp256k1_fe_add(&z,&y); | secp256k1_fe_add(&z,&y); | ||||
/* Test fe conditional move; z is not normalized here. */ | /* Test fe conditional move; z is not normalized here. */ | ||||
q = x; | q = x; | ||||
secp256k1_fe_cmov(&x, &z, 0); | secp256k1_fe_cmov(&x, &z, 0); | ||||
#ifdef VERIFY | #ifdef VERIFY | ||||
CHECK(!x.normalized && x.magnitude == z.magnitude); | CHECK(x.normalized && x.magnitude == 1); | ||||
#endif | #endif | ||||
secp256k1_fe_cmov(&x, &x, 1); | secp256k1_fe_cmov(&x, &x, 1); | ||||
CHECK(fe_memcmp(&x, &z) != 0); | CHECK(fe_memcmp(&x, &z) != 0); | ||||
CHECK(fe_memcmp(&x, &q) == 0); | CHECK(fe_memcmp(&x, &q) == 0); | ||||
secp256k1_fe_cmov(&q, &z, 1); | secp256k1_fe_cmov(&q, &z, 1); | ||||
#ifdef VERIFY | #ifdef VERIFY | ||||
CHECK(!q.normalized && q.magnitude == z.magnitude); | CHECK(!q.normalized && q.magnitude == z.magnitude); | ||||
#endif | #endif | ||||
CHECK(fe_memcmp(&q, &z) == 0); | CHECK(fe_memcmp(&q, &z) == 0); | ||||
secp256k1_fe_normalize_var(&x); | secp256k1_fe_normalize_var(&x); | ||||
secp256k1_fe_normalize_var(&z); | secp256k1_fe_normalize_var(&z); | ||||
CHECK(!secp256k1_fe_equal_var(&x, &z)); | CHECK(!secp256k1_fe_equal_var(&x, &z)); | ||||
secp256k1_fe_normalize_var(&q); | secp256k1_fe_normalize_var(&q); | ||||
secp256k1_fe_cmov(&q, &z, (i&1)); | secp256k1_fe_cmov(&q, &z, (i&1)); | ||||
#ifdef VERIFY | #ifdef VERIFY | ||||
CHECK(q.normalized && q.magnitude == 1); | CHECK(q.normalized && q.magnitude == 1); | ||||
#endif | #endif | ||||
for (j = 0; j < 6; j++) { | for (j = 0; j < 6; j++) { | ||||
secp256k1_fe_negate(&z, &z, j+1); | secp256k1_fe_negate(&z, &z, j+1); | ||||
secp256k1_fe_normalize_var(&q); | secp256k1_fe_normalize_var(&q); | ||||
secp256k1_fe_cmov(&q, &z, (j&1)); | secp256k1_fe_cmov(&q, &z, (j&1)); | ||||
#ifdef VERIFY | #ifdef VERIFY | ||||
CHECK(!q.normalized && q.magnitude == (j+2)); | CHECK((q.normalized != (j&1)) && q.magnitude == ((j&1) ? z.magnitude : 1)); | ||||
#endif | #endif | ||||
} | } | ||||
secp256k1_fe_normalize_var(&z); | secp256k1_fe_normalize_var(&z); | ||||
/* Test storage conversion and conditional moves. */ | /* Test storage conversion and conditional moves. */ | ||||
secp256k1_fe_to_storage(&xs, &x); | secp256k1_fe_to_storage(&xs, &x); | ||||
secp256k1_fe_to_storage(&ys, &y); | secp256k1_fe_to_storage(&ys, &y); | ||||
secp256k1_fe_to_storage(&zs, &z); | secp256k1_fe_to_storage(&zs, &z); | ||||
secp256k1_fe_storage_cmov(&zs, &xs, 0); | secp256k1_fe_storage_cmov(&zs, &xs, 0); | ||||
▲ Show 20 Lines • Show All 3,470 Lines • Show Last 20 Lines |