Esempio n. 1
0
 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();
 }
Esempio n. 2
0
 /**
  * @param NamedCurveFp $curve
  * @param PublicKeyInterface $publicKey
  * @return Sequence
  */
 public function getSubjectKeyASN(NamedCurveFp $curve, PublicKeyInterface $publicKey)
 {
     return new Sequence(new Sequence(new ObjectIdentifier(CertificateSerializer::ECPUBKEY_OID), CurveOidMapper::getCurveOid($curve)), new BitString($this->pubKeySer->getUncompressedKey($publicKey)));
 }
Esempio n. 3
0
 /**
  * @param NamedCurveFp $curve
  * @param PublicKeyInterface $publicKey
  * @return Sequence
  */
 public function getSubjectKeyASN(NamedCurveFp $curve, PublicKeyInterface $publicKey)
 {
     return new Sequence(new Sequence(new ObjectIdentifier('1.2.840.10045.2.1'), CurveOidMapper::getCurveOid($curve)), new BitString($this->pubKeySer->getUncompressedKey($publicKey)));
 }
Esempio n. 4
0
 /**
  * @param NamedCurveFp $c
  * @return string
  */
 public function serialize(NamedCurveFp $c)
 {
     $oid = CurveOidMapper::getCurveOid($c);
     $content = self::HEADER . PHP_EOL . base64_encode($oid->getBinary()) . PHP_EOL . self::FOOTER;
     return $content;
 }
 /**
  * {@inheritDoc}
  * @see \Mdanter\Ecc\Serializer\PrivateKeySerializerInterface::serialize()
  */
 public function serialize(PrivateKeyInterface $key)
 {
     $privateKeyInfo = new Sequence(new Integer(self::VERSION), new OctetString($this->formatKey($key)), new ExplicitlyTaggedObject(0, CurveOidMapper::getCurveOid($key->getPoint()->getCurve())), new ExplicitlyTaggedObject(1, $this->encodePubKey($key)));
     return $privateKeyInfo->getBinary();
 }
Esempio n. 6
0
 /**
  * {@inheritDoc}
  * @see \Mdanter\Ecc\Serializer\PrivateKeySerializerInterface::serialize()
  */
 public function getPrivateKeyInfo(PrivateKeyInterface $key)
 {
     $keyData = $this->serializer->serialize($key);
     $privateKeyInfo = new Sequence(new Integer(self::VERSION), new Sequence(new ObjectIdentifier(DerPublicKeySerializer::X509_ECDSA_OID), CurveOidMapper::getCurveOid($key->getPoint()->getCurve())), new OctetString(bin2hex($keyData)));
     return $privateKeyInfo;
 }