/** * @param PointInterface $point * @return string */ public function serialize(PointInterface $point) { $length = CurveOidMapper::getByteSize($point->getCurve()) * 2; if ($this->debug) { error_log('Detected length: ' . $length); error_log('Unpadded:' . $this->adapter->decHex($point->getX())); error_log('Unpadded len:' . strlen($this->adapter->decHex($point->getX()))); error_log('Padded: ' . str_pad($this->adapter->decHex($point->getX()), $length, '0', STR_PAD_LEFT)); } $hexString = '04'; $hexString .= str_pad($this->adapter->decHex($point->getX()), $length, '0', STR_PAD_LEFT); $hexString .= str_pad($this->adapter->decHex($point->getY()), $length, '0', STR_PAD_LEFT); if ($this->debug) { error_log('Resulting length: ' . strlen($hexString)); error_log('Hex: ' . $hexString); } return $hexString; }