. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Tools\OAuthServer\Utils; use Defuse\Crypto\Crypto; use Defuse\Crypto\Exception\EnvironmentIsBrokenException; use Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException; use RuntimeException; use SensitiveParameter; class Crypt { public function __construct( private CryptKeyProvider $keyProvider, ) {} public function decrypt(#[SensitiveParameter] string $value): string { $key = $this->keyProvider->getCryptKey(); try { return Crypto::decryptWithPassword($value, $key); } catch (EnvironmentIsBrokenException|WrongKeyOrModifiedCiphertextException $e) { throw new RuntimeException(previous: $e); } } }