Exemple #1
0
 /**
  *
  * @param JWK $jwk
  * @param Header $header
  * @throws \UnexpectedValueException
  * @return RSASSAPKCS1Algorithm
  */
 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(...RSAPrivateKeyJWK::MANAGED_PARAMS)) {
         return $cls::fromPrivateKey(RSAPrivateKeyJWK::fromJWK($jwk));
     }
     return $cls::fromPublicKey(RSAPublicKeyJWK::fromJWK($jwk));
 }