Added test with additions resulting in infinity

This commit is contained in:
Elichai Turkel 2019-12-10 18:08:25 +02:00
parent 387d723c3f
commit 61d1ecb028
No known key found for this signature in database
GPG Key ID: 9383CDE9E8E66A7F
1 changed files with 34 additions and 0 deletions

View File

@ -2258,6 +2258,39 @@ void test_ge(void) {
free(zinv); free(zinv);
} }
void test_intialized_inf(void) {
secp256k1_ge p;
secp256k1_gej pj, npj, infj1, infj2, infj3;
secp256k1_fe zinv;
/* Test that adding P+(-P) results in a fully initalized infinity*/
random_group_element_test(&p);
secp256k1_gej_set_ge(&pj, &p);
secp256k1_gej_neg(&npj, &pj);
secp256k1_gej_add_var(&infj1, &pj, &npj, NULL);
CHECK(secp256k1_gej_is_infinity(&infj1));
CHECK(secp256k1_fe_is_zero(&infj1.x));
CHECK(secp256k1_fe_is_zero(&infj1.y));
CHECK(secp256k1_fe_is_zero(&infj1.z));
secp256k1_gej_add_ge_var(&infj2, &npj, &p, NULL);
CHECK(secp256k1_gej_is_infinity(&infj2));
CHECK(secp256k1_fe_is_zero(&infj2.x));
CHECK(secp256k1_fe_is_zero(&infj2.y));
CHECK(secp256k1_fe_is_zero(&infj2.z));
secp256k1_fe_set_int(&zinv, 1);
secp256k1_gej_add_zinv_var(&infj3, &npj, &p, &zinv);
CHECK(secp256k1_gej_is_infinity(&infj3));
CHECK(secp256k1_fe_is_zero(&infj3.x));
CHECK(secp256k1_fe_is_zero(&infj3.y));
CHECK(secp256k1_fe_is_zero(&infj3.z));
}
void test_add_neg_y_diff_x(void) { void test_add_neg_y_diff_x(void) {
/* The point of this test is to check that we can add two points /* The point of this test is to check that we can add two points
* whose y-coordinates are negatives of each other but whose x * whose y-coordinates are negatives of each other but whose x
@ -2331,6 +2364,7 @@ void run_ge(void) {
test_ge(); test_ge();
} }
test_add_neg_y_diff_x(); test_add_neg_y_diff_x();
test_intialized_inf();
} }
void test_ec_combine(void) { void test_ec_combine(void) {