Skip to content

Commit 3f3964e

Browse files
committed
Add specific VERIFY tests for _fe_cmov
1 parent a0601cd commit 3f3964e

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

src/tests.c

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,7 @@ void random_field_element_magnitude(secp256k1_fe_t *fe) {
4747
secp256k1_fe_negate(&zero, &zero, 0);
4848
secp256k1_fe_mul_int(&zero, n - 1);
4949
secp256k1_fe_add(fe, &zero);
50-
#ifdef VERIFY
51-
CHECK(fe->magnitude == n);
52-
#endif
50+
VERIFY_CHECK(fe->magnitude == n);
5351
}
5452

5553
void random_group_element_test(secp256k1_ge_t *ge) {
@@ -752,7 +750,7 @@ void run_field_misc(void) {
752750
secp256k1_fe_t z;
753751
secp256k1_fe_t q;
754752
secp256k1_fe_t fe5 = SECP256K1_FE_CONST(0, 0, 0, 0, 0, 0, 0, 5);
755-
int i;
753+
int i, j;
756754
for (i = 0; i < 5*count; i++) {
757755
secp256k1_fe_storage_t xs, ys, zs;
758756
random_fe(&x);
@@ -765,15 +763,27 @@ void run_field_misc(void) {
765763
/* Test fe conditional move; z is not normalized here. */
766764
q = x;
767765
secp256k1_fe_cmov(&x, &z, 0);
766+
VERIFY_CHECK(!x.normalized && x.magnitude == z.magnitude);
768767
secp256k1_fe_cmov(&x, &x, 1);
769768
CHECK(fe_memcmp(&x, &z) != 0);
770769
CHECK(fe_memcmp(&x, &q) == 0);
771770
secp256k1_fe_cmov(&q, &z, 1);
771+
VERIFY_CHECK(!q.normalized && q.magnitude == z.magnitude);
772772
CHECK(fe_memcmp(&q, &z) == 0);
773-
/* Test storage conversion and conditional moves. */
774773
secp256k1_fe_normalize_var(&x);
775774
secp256k1_fe_normalize_var(&z);
776775
CHECK(!secp256k1_fe_equal_var(&x, &z));
776+
secp256k1_fe_normalize_var(&q);
777+
secp256k1_fe_cmov(&q, &z, (i&1));
778+
VERIFY_CHECK(q.normalized && q.magnitude == 1);
779+
for (j = 0; j < 6; j++) {
780+
secp256k1_fe_negate(&z, &z, j+1);
781+
secp256k1_fe_normalize_var(&q);
782+
secp256k1_fe_cmov(&q, &z, (j&1));
783+
VERIFY_CHECK(!q.normalized && q.magnitude == (j+2));
784+
}
785+
secp256k1_fe_normalize_var(&z);
786+
/* Test storage conversion and conditional moves. */
777787
secp256k1_fe_to_storage(&xs, &x);
778788
secp256k1_fe_to_storage(&ys, &y);
779789
secp256k1_fe_to_storage(&zs, &z);
@@ -1671,7 +1681,7 @@ void test_ecdsa_end_to_end(void) {
16711681
extra[31] = 0;
16721682
extra[0] = 1;
16731683
CHECK(secp256k1_ecdsa_sign(ctx, message, signature4, &signaturelen4, privkey, NULL, extra) == 1);
1674-
CHECK(signaturelen3 > 0);
1684+
CHECK(signaturelen4 > 0);
16751685
CHECK((signaturelen != signaturelen2) || (memcmp(signature, signature2, signaturelen) != 0));
16761686
CHECK((signaturelen != signaturelen3) || (memcmp(signature, signature3, signaturelen) != 0));
16771687
CHECK((signaturelen3 != signaturelen2) || (memcmp(signature3, signature2, signaturelen3) != 0));

0 commit comments

Comments
 (0)