Beispiel #1
0
 /**
  * @return PrivateKey
  */
 public function createPrivateKey()
 {
     $secret = $this->generator->generate($this->getOrder());
     return new PrivateKey($this->getAdapter(), $this, $secret);
 }
Beispiel #2
0
 /**
  * @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.');
 }