public function format(PublicKeyInterface $key) { if (!$key->getCurve() instanceof NamedCurveFp) { throw new \RuntimeException('Not implemented for unnamed curves'); } $sequence = new Sequence(new Sequence(new ObjectIdentifier(DerPublicKeySerializer::X509_ECDSA_OID), CurveOidMapper::getCurveOid($key->getCurve())), new BitString($this->encodePoint($key->getPoint()))); return $sequence->getBinary(); }
/** * @param OutputInterface $output * @param PublicKeyInterface $key */ public static function dumpPublicKey(OutputInterface $output, PublicKeyInterface $key) { $order = $key->getPoint()->getOrder(); $output->writeln('<comment>Public key information</comment>'); $output->writeln(''); $output->writeln('<info>Curve type</info> : ' . $key->getCurve()->getName()); $output->writeln('<info>X</info> : ' . $key->getPoint()->getX()); $output->writeln('<info>Y</info> : ' . $key->getPoint()->getY()); $output->writeln('<info>Order</info> : ' . (empty($order) ? '<null>' : $key->getPoint()->getOrder())); }