'JWS', self::ALG_TYPE_JWE => 'JWE' ]; private const ALGS = [ Jwk::ALGORITHM_HS256 => self::ALG_TYPE_JWS, Jwk::ALGORITHM_HS384 => self::ALG_TYPE_JWS, Jwk::ALGORITHM_HS512 => self::ALG_TYPE_JWS, Jwk::ALGORITHM_A128KW => self::ALG_TYPE_JWE, Jwk::ALGORITHM_A192KW => self::ALG_TYPE_JWE, Jwk::ALGORITHM_A256KW => self::ALG_TYPE_JWE, Jwk::ALGORITHM_A128GCMKW => self::ALG_TYPE_JWE, Jwk::ALGORITHM_A192GCMKW => self::ALG_TYPE_JWE, Jwk::ALGORITHM_A256GCMKW => self::ALG_TYPE_JWE, ]; /** * @var array */ private $algs; /** * @param array $algs Additional algorithms. */ public function __construct(array $algs = []) { $this->algs = array_merge($algs, self::ALGS); } public function getAlgorithmType(string $alg): int { return $this->algs[$alg]; } /** * @inheritDoc */ public function toOptionArray() { $options = []; foreach (array_keys($this->algs) as $algorithm) { $options[] = [ 'label' => __($algorithm . implode('', [' (', self::ALG_TYPE_NAME[$this->algs[$algorithm]], ')'])), 'value' => $algorithm ]; } return $options; } }