/** * @return PrivateKey */ public function createPrivateKey() { $secret = $this->generator->generate($this->getOrder()); return new PrivateKey($this->getAdapter(), $this, $secret); }
/** * @dataProvider getAdaptersWithRand */ public function testSignatureValidityWithGeneratedKeys(MathAdapterInterface $math, RandomNumberGeneratorInterface $rng) { $generator = EccFactory::getNistCurves($math)->generator192(); $signer = new Signer($math); $privateKey = $generator->createPrivateKey(); $publicKey = $privateKey->getPublicKey(); $randomK = $rng->generate($privateKey->getPoint()->getOrder()); $hash = $rng->generate($generator->getOrder()); $signature = $signer->sign($privateKey, $hash, $randomK); $this->assertTrue($signer->verify($publicKey, $signature, $hash), 'Correctly validates valid hash.'); $this->assertFalse($signer->verify($publicKey, $signature, $math->sub($hash, 1)), 'Correctly rejects tampered hash.'); }