/** * @param CurveFpInterface $curve * @param string $data * @return PointInterface */ public function unserialize(CurveFpInterface $curve, $data) { if (substr($data, 0, 2) != '04') { throw new \InvalidArgumentException('Invalid data: only uncompressed keys are supported.'); } $data = substr($data, 2); $dataLength = strlen($data); $x = $this->adapter->hexDec(substr($data, 0, $dataLength / 2)); $y = $this->adapter->hexDec(substr($data, $dataLength / 2)); return $curve->getPoint($x, $y); }
private function add(MathAdapterInterface $math, CurveFpInterface $c, $x1, $y1, $x2, $y2, $x3, $y3) { $p1 = $c->getPoint($x1, $y1); $p2 = $c->getPoint($x2, $y2); $p3 = $p1->add($p2); $this->assertEquals($math->mod($p3->getX(), 23), $x3); $this->assertEquals($math->mod($p3->getY(), 23), $y3); }