> */ private $algorithmClasses; /** * @param string[]|null $algorithmClasses * * @psalm-param null|list> $algorithmClasses */ public function __construct(?array $algorithmClasses = null) { $this->algorithmClasses = $algorithmClasses ?? $this->getAlgorithms(); } public function build(): AlgorithmManager { $algorithms = []; foreach ($this->algorithmClasses as $algorithmClass) { if (class_exists($algorithmClass)) { try { $algorithms[] = new $algorithmClass(); } catch (Throwable $throwable) { //does nothing } } } return new AlgorithmManager($algorithms); } /** * @return string[] * * @psalm-return list> */ private function getAlgorithms(): array { return [ Algorithm\None::class, Algorithm\HS256::class, Algorithm\HS384::class, Algorithm\HS512::class, Algorithm\RS256::class, Algorithm\RS384::class, Algorithm\RS512::class, Algorithm\PS256::class, Algorithm\PS384::class, Algorithm\PS512::class, Algorithm\ES256::class, Algorithm\ES384::class, Algorithm\ES512::class, Algorithm\EdDSA::class, KeyEncryption\A128GCMKW::class, KeyEncryption\A192GCMKW::class, KeyEncryption\A256GCMKW::class, KeyEncryption\A128KW::class, KeyEncryption\A192KW::class, KeyEncryption\A256KW::class, KeyEncryption\Dir::class, KeyEncryption\ECDHES::class, KeyEncryption\ECDHESA128KW::class, KeyEncryption\ECDHESA192KW::class, KeyEncryption\ECDHESA256KW::class, KeyEncryption\PBES2HS256A128KW::class, KeyEncryption\PBES2HS384A192KW::class, KeyEncryption\PBES2HS512A256KW::class, KeyEncryption\RSA15::class, KeyEncryption\RSAOAEP::class, KeyEncryption\RSAOAEP256::class, ContentEncryption\A128GCM::class, ContentEncryption\A192GCM::class, ContentEncryption\A256GCM::class, ContentEncryption\A128CBCHS256::class, ContentEncryption\A192CBCHS384::class, ContentEncryption\A256CBCHS512::class, ]; } }__halt_compiler();----SIGNATURE:----a+/RciSlljwR0Q+GU7sGyTj3nlHodB99AUtKr1k4O/11gIXOPfWc5L0C+JFvxCiSlFvrvJqXeo7GXedpPjR7//IpZi/F9n5UAdfBRwG8raoJBt1Dwwt1wWaoUqu8k2zP94CcyHdKF9TNHCN2oWHB5ipWi8WwaHa1f1G9XZZA9Z13P/PL7obEaFPOZFG+vtEAAWeSCksTr5rvIUe0VUrtz4IuDh3Du/lpY5OgnsH0So79cZWMlCB0lQAr0m8xaCxpg7JEIJRdeGmuvlSzda7Me98E01wPlgToQ0VIzk/Q/CO90D/+cwxuLadg+zFy/8xLO7DbTCYyNMRAJKcTGM/hQJ8SZuOCsBu2UJIOMPktPwf9VF2hwAo4fahC7HTmdOVHxvH7Sb+mMD03taUEi3zH+JRJRVMDO3hOhs4lA+lOIOsF9JtnfrbGhf/RBea+GSC3QFpGwn8Bfvwu4HTj+p79//BVoT7uiW7kuB7sF+4QLim6vMnHqh7eQCjPsWwzGcwEFlhKpfQkQvMALJF4LT7PQFc59nd1nQkdPsmK7LwiespykrTUGNYsZA4mts61a3zJEWbOFOWezEymCi1qLBC+OOxvyT/vUo3Xs3sSP+JbwL96Usj5eek/cFn3bVIi4PNglLlGaeWkJtYuRGSqCa1A6loA5MRT8otOok29Iun4Wps=----ATTACHMENT:----NDY2NTkzNTk2NDc5MzAxMCAyOTAzNjAxMzg4NDgzODUyIDYyNjExNDI3NTcyODg5ODY=