From: Bjoern Schiessle Date: Thu, 1 Aug 2013 09:50:56 +0000 (+0200) Subject: catch broken server config and disable encryption app. X-Git-Tag: v6.0.0alpha2~348 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=cfbdad9cdb5c978225af796c128e4ad7bd011eee;p=nextcloud-server.git catch broken server config and disable encryption app. --- diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 741df166b70..e933207a9e1 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -40,7 +40,7 @@ class Hooks { public static function login($params) { $l = new \OC_L10N('files_encryption'); //check if all requirements are met - if(!Helper::checkRequirements() ) { + if(!Helper::checkRequirements() || !Helper::checkConfiguration() ) { $error_msg = $l->t("Missing requirements."); $hint = $l->t('Please make sure that PHP 5.3.3 or newer is installed and that the OpenSSL PHP extension is enabled and configured properly. For now, the encryption app has been disabled.'); \OC_App::disable('files_encryption'); diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 6eee8fed6a6..d3d4afff912 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -232,6 +232,18 @@ class Helper { return (bool) $result; } + + /** + * check some common errors if the server isn't configured properly for encryption + * @return bool true if configuration seems to be OK + */ + public static function checkConfiguration() { + if(openssl_pkey_new(array('private_key_bits' => 4096))) { + return true; + } else { + return false; + } + } /** * @brief glob uses different pattern than regular expressions, escape glob pattern only