Add tests for adding P+Q with P.x!=Q.x and P.y=-Q.y
This commit is contained in:
parent
8c5d5f7b5b
commit
765742021a
14
src/tests.c
14
src/tests.c
|
@ -958,11 +958,17 @@ void ge_equals_gej(const secp256k1_ge_t *a, const secp256k1_gej_t *b) {
|
|||
|
||||
void test_ge(void) {
|
||||
int i, i1;
|
||||
#ifdef USE_ENDOMORPHISM
|
||||
int runs = 6;
|
||||
#else
|
||||
int runs = 4;
|
||||
#endif
|
||||
/* Points: (infinity, p1, p1, -p1, -p1, p2, p2, -p2, -p2, p3, p3, -p3, -p3, p4, p4, -p4, -p4).
|
||||
* The second in each pair of identical points uses a random Z coordinate in the Jacobian form.
|
||||
* All magnitudes are randomized.
|
||||
* All 17*17 combinations of points are added to eachother, using all applicable methods.
|
||||
*
|
||||
* When the endomorphism code is compiled in, p5 = lambda*p1 and p6 = lambda^2*p1 are added as well.
|
||||
*/
|
||||
secp256k1_ge_t *ge = (secp256k1_ge_t *)malloc(sizeof(secp256k1_ge_t) * (1 + 4 * runs));
|
||||
secp256k1_gej_t *gej = (secp256k1_gej_t *)malloc(sizeof(secp256k1_gej_t) * (1 + 4 * runs));
|
||||
|
@ -977,6 +983,14 @@ void test_ge(void) {
|
|||
int j;
|
||||
secp256k1_ge_t g;
|
||||
random_group_element_test(&g);
|
||||
#ifdef USE_ENDOMORPHISM
|
||||
if (i >= runs - 2) {
|
||||
secp256k1_ge_mul_lambda(&g, &ge[1]);
|
||||
}
|
||||
if (i >= runs - 1) {
|
||||
secp256k1_ge_mul_lambda(&g, &g);
|
||||
}
|
||||
#endif
|
||||
ge[1 + 4 * i] = g;
|
||||
ge[2 + 4 * i] = g;
|
||||
secp256k1_ge_neg(&ge[3 + 4 * i], &g);
|
||||
|
|
Loading…
Reference in New Issue