File "CurveFpTest.php"
Full Path: /home/digidjwy/public_html/wp-content/plugins/mycryptocheckout/vendor/mdanter/ecc/tests/unit/Primitives/CurveFpTest.php
File size: 1.83 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Mdanter\Ecc\Tests\Primitives;
use Mdanter\Ecc\EccFactory;
use Mdanter\Ecc\Math\GmpMath;
use Mdanter\Ecc\Math\ModularArithmetic;
use Mdanter\Ecc\Primitives\CurveFp;
use Mdanter\Ecc\Primitives\CurveParameters;
use Mdanter\Ecc\Tests\AbstractTestCase;
class CurveFpTest extends AbstractTestCase
{
public function testInstance()
{
$adapter = EccFactory::getAdapter();
$generator = EccFactory::getNistCurves($adapter)->generator521();
$curve = $generator->getCurve();
// Test ModularArithmetic is returned, and initialized
// with correct prime by testing 0 = (p + 0) % p
$modAdapter = $curve->getModAdapter();
$zero = gmp_init(0);
$this->assertInstanceOf(ModularArithmetic::class, $modAdapter);
$this->assertTrue($adapter->equals($zero, $modAdapter->add($curve->getPrime(), $zero)));
$this->assertTrue($curve->contains($generator->getX(), $generator->getY()));
// Test infinity point is returned
$infinityPoint = $curve->getInfinity();
$this->assertTrue($infinityPoint->isInfinity());
// Check equality tests
$differentCurve = EccFactory::getNistCurves()->curve192();
$this->assertEquals(1, $curve->cmp($differentCurve));
$this->assertEquals(0, $curve->cmp($curve));
$this->assertFalse($curve->equals($differentCurve));
$this->assertTrue($curve->equals($curve));
}
public function testDebugInfo()
{
$adapter = new GmpMath();
$parameters = new CurveParameters(32, gmp_init(23, 10), gmp_init(1, 10), gmp_init(1, 10));
$curve = new CurveFp($parameters, $adapter);
$debug = $curve->__debugInfo();
$this->assertTrue(isset($debug['a']));
$this->assertTrue(isset($debug['b']));
$this->assertTrue(isset($debug['prime']));
}
}