/** * Initialize from a PrivateKey object. * * @param PrivateKey $priv_key Private key * @throws \UnexpectedValueException * @return self */ public static function fromPrivateKey(PrivateKey $priv_key) { if ($priv_key instanceof RSAPrivateKey) { return RSAPrivateKeyJWK::fromRSAPrivateKey($priv_key); } if ($priv_key instanceof ECPrivateKey) { return ECPrivateKeyJWK::fromECPrivateKey($priv_key); } throw new \UnexpectedValueException("Unsupported private key."); }
public static function fromJWK(JWK $jwk, Header $header) { $alg = JWA::deriveAlgorithmName($header, $jwk); if (!array_key_exists($alg, self::MAP_ALGO_TO_CLASS)) { throw new \UnexpectedValueException("Unsupported algorithm '{$alg}'."); } $cls = self::MAP_ALGO_TO_CLASS[$alg]; if ($jwk->has(...ECPrivateKeyJWK::MANAGED_PARAMS)) { return $cls::fromPrivateKey(ECPrivateKeyJWK::fromJWK($jwk)); } return $cls::fromPublicKey(ECPublicKeyJWK::fromJWK($jwk)); }