algorithmManagerFactory = $algorithmManagerFactory; $this->compressionMethodManagerFactory = $compressionMethodManagerFactory; } /** * Creates a JWE Builder object using the given key encryption algorithms, content encryption algorithms and compression methods. * * @param string[] $keyEncryptionAlgorithms * @param string[] $contentEncryptionAlgorithm * @param string[] $compressionMethods */ public function create(array $keyEncryptionAlgorithms, array $contentEncryptionAlgorithm, array $compressionMethods): JWEBuilder { $keyEncryptionAlgorithmManager = $this->algorithmManagerFactory->create($keyEncryptionAlgorithms); $contentEncryptionAlgorithmManager = $this->algorithmManagerFactory->create($contentEncryptionAlgorithm); $compressionMethodManager = $this->compressionMethodManagerFactory->create($compressionMethods); return new JWEBuilder($keyEncryptionAlgorithmManager, $contentEncryptionAlgorithmManager, $compressionMethodManager); } }