<?php
namespace Mdanter\Ecc\Tests\Crypto\Key;
use Mdanter\Ecc\Crypto\EcDH\EcDH;
use Mdanter\Ecc\Crypto\Key\PublicKey;
use Mdanter\Ecc\EccFactory;
use Mdanter\Ecc\Primitives\CurveFp;
use Mdanter\Ecc\Primitives\GeneratorPoint;
use Mdanter\Ecc\Tests\AbstractTestCase;
class PrivateKeyTest extends AbstractTestCase
{
public function testInstance()
{
$nist = EccFactory::getNistCurves();
$generator = $nist->generator521();
$curve = $generator->getCurve();
$key = $generator->createPrivateKey();
$this->assertInstanceOf(PublicKey::class, $key->getPublicKey());
$this->assertInstanceOf(GeneratorPoint::class, $key->getPoint());
$this->assertSame($generator, $key->getPoint());
$this->assertInstanceOf(CurveFp::class, $key->getCurve());
$this->assertSame($curve, $key->getCurve());
$this->assertInstanceOf(\GMP::class, $key->getSecret());
$this->assertInstanceOf(EcDH::class, $key->createExchange());
}
}