@@ -1481,31 +1481,21 @@ public void Libsecp256k1_StaticTest(byte[] xba, byte[] yba, byte[] r1ba, byte[]
1481
1481
Assert . True ( z . Verify ( ) ) ;
1482
1482
Assert . Equal ( r1 , z ) ;
1483
1483
1484
- // TODO: activate the inverse tests, our Inverse() currently has a bug
1485
-
1486
- //if (!y.IsZero)
1487
- //{
1488
- // //secp256k1_scalar_inverse(&zz, &y);
1489
- // Scalar8x32 zz = y.Inverse();
1490
- // //CHECK(!secp256k1_scalar_check_overflow(&zz));
1491
- // Assert.True(zz.Verify());
1492
- // //secp256k1_scalar_inverse_var(&zzv, &y);
1493
- // Scalar8x32 zzv = y.InverseVar();
1494
- // //CHECK(secp256k1_scalar_eq(&zzv, &zz));
1495
- // Assert.Equal(zzv, zz);
1496
- // //secp256k1_scalar_mul(&z, &z, &zz);
1497
- // z = z.Multiply(zz);
1498
- // //CHECK(!secp256k1_scalar_check_overflow(&z));
1499
- // Assert.True(z.Verify());
1500
- // //CHECK(secp256k1_scalar_eq(&x, &z));
1501
- // Assert.Equal(x, z);
1502
- // //secp256k1_scalar_mul(&zz, &zz, &y);
1503
- // zz = zz.Multiply(y);
1504
- // //CHECK(!secp256k1_scalar_check_overflow(&zz));
1505
- // Assert.True(zz.Verify());
1506
- // //CHECK(secp256k1_scalar_eq(&secp256k1_scalar_one, &zz));
1507
- // Assert.Equal(Scalar8x32.One, zz);
1508
- //}
1484
+ if ( ! y . IsZero )
1485
+ {
1486
+ Scalar8x32 zz = y . Inverse ( ) ;
1487
+ Assert . True ( zz . Verify ( ) ) ;
1488
+ Scalar8x32 zzv = y . InverseVar ( ) ;
1489
+ Assert . Equal ( zzv , zz ) ;
1490
+ // x*y*y' == x*1 == x (y' represents inverse of y)
1491
+ z = z . Multiply ( zz ) ;
1492
+ Assert . True ( z . Verify ( ) ) ;
1493
+ Assert . Equal ( x , z ) ;
1494
+ // y'*y == 1
1495
+ zz = zz . Multiply ( y ) ;
1496
+ Assert . True ( zz . Verify ( ) ) ;
1497
+ Assert . Equal ( Scalar8x32 . One , zz ) ;
1498
+ }
1509
1499
}
1510
1500
1511
1501
#endregion
0 commit comments