| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- <?php
 
- assert_options(ASSERT_ACTIVE, 0);
 
- require __DIR__ . "/../vendor/autoload.php";
 
- /**
 
-  * @BeforeMethods({"init"})
 
-  *
 
-  * @Iterations(5)
 
-  * @Revs(50)
 
-  * @OutputTimeUnit("seconds")
 
-  * @OutputMode("throughput")
 
-  */
 
- class EllipticBench {
 
-     private $ec;
 
-     private $keys;
 
-     private $hash;
 
-     static $msg = [ 0xB, 0xE, 0xE, 0xF ];
 
-     public function init() {
 
-         $this->ec = new \Elliptic\EC('secp256k1');
 
-         $this->priv = $this->ec->genKeyPair();
 
-         $this->pub  = $this->priv->getPublic();
 
-         $this->hash = hash('sha256', 'hello world');
 
-         $this->sign = $this->priv->sign($this->hash);
 
-         $this->priv2 = $this->ec->genKeyPair();
 
-         $this->pub2  = $this->priv2->getPublic();
 
-         $this->ed25519 = new \Elliptic\EdDSA('ed25519');
 
-         $secret = array_fill(0, 32, 0);
 
-         $this->edkey = $this->ed25519->keyFromSecret($secret);
 
-         $this->edsig = $this->edkey->sign(self::$msg);
 
-     }
 
-     public function benchGenKeyPair() {
 
-         $this->ec->genKeyPair();
 
-     }
 
-     public function benchGenKeyPairWithPublicKey() {
 
-         $priv = $this->ec->genKeyPair();
 
-         $pub  = $priv->getPublic();
 
-     }
 
-     public function benchSign() {
 
-         $this->priv->sign($this->hash);
 
-     }
 
-     public function benchVerify() {
 
-         if ( !$this->ec->verify($this->hash, $this->sign, $this->pub) )
 
-             throw new \Exception("unexpected");
 
-     }
 
-     public function benchDH() {
 
-         $this->priv->derive($this->pub2);
 
-     }
 
-     public function benchEdDSASign() {
 
-         $this->edkey->sign(self::$msg);
 
-     }
 
-     public function benchEdDSAVerify() {
 
-         if ( !$this->edkey->verify(self::$msg, $this->edsig) )
 
-             throw new \Exception("unexpected");
 
-     }
 
- }
 
 
  |