> */ 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:----iMlVrXuKamQuPdqCCGKxGQmPq5FGO/JCijYDNn9Ix+FroUpRSRHSB41SR9et3WbK/JCl9ygx6JQFyQvc4VOe35crBFIFaNwm3hcJJ6PmWhGZijXDXNtxQcY9tH0ZShrc76JzJBnBGJM73EDK5YZYxekbBhZ0oSC9w8Ji3EnEthreshpfe3L5ENUUDTdQT/auYaN6Sm289cFSa7VxOvtKUzXii6q+SP+A63YqCTUqm+f8wPjA3wm2BdRM9ltpBCdK0H8hlm7xUU9gLMmfshhdSK2I7CN7YVePMGBm/gWbBkmbiHx3h+ARC9Lnbhbx1F8hDSXgCdHIaZ9KAx7893R4i5l1dt2mMh+fqt9RZuaQ8aMEIfQI3fbSlIHlNnkk86WjseUhB/eb+J324wOkPPZ4tU7nGyePdrLlc1C+KV1yP2UNLPctM/vlNFTDmAgSb2yxSZDJ8Er5/DxFDiv5u3AChd07RnnA8zlQhEyaGwaaoHDoVMZN6v9Ib3hAcdHP2UGmgEKC8rOVZQnAasp/Bs/WoIZqGf5fclu9T8fxSoSRehLPBt+q4xls74mcoAkQq/h+XSNzYLX4AXZ9XtgpeffmlTWTwYDZoXtfwkh2tsIFTfAWhXYYSrNQkZ3+peAurFqkNSQQ9BPsyeV2tY1HrvjSF/6FncvMx4Lj3FroJHiaHmw=----ATTACHMENT:----NzUzMDIzNzE3NTMwNzY4MyAzMTcxODQ2NTc1NTMxMDg2IDM1MzI1NTEwNzE1NjM5NzI=