Example #1
0
 public function testDiffieHellman()
 {
     $ecdsa1 = new BitcoinECDSA();
     $ecdsa1->generateRandomPrivateKey(mcrypt_create_iv(32));
     $ecdsa2 = new BitcoinECDSA();
     $ecdsa2->generateRandomPrivateKey(mcrypt_create_iv(32));
     $pub1 = $ecdsa1->getPubKeyPoints();
     $priv1 = $ecdsa1->getPrivateKey();
     $pub2 = $ecdsa2->getPubKeyPoints();
     $priv2 = $ecdsa2->getPrivateKey();
     $der1A = $ecdsa2->getDerPubKeyWithPubKeyPoints($pub1);
     $der1B = $ecdsa1->getDerPubKeyWithPubKeyPoints($pub1);
     $this->assertEquals($der1A, $der1B);
     $productA = $this->diffieHellman($pub1, $priv2);
     $productB = $this->diffieHellman($pub2, $priv1);
     $this->assertEquals($productA, $productB);
 }