From cfbdad9cdb5c978225af796c128e4ad7bd011eee Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Thu, 1 Aug 2013 11:50:56 +0200 Subject: [PATCH] catch broken server config and disable encryption app. --- apps/files_encryption/hooks/hooks.php | 2 +- apps/files_encryption/lib/helper.php | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 741df166b7..e933207a9e 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 6eee8fed6a..d3d4afff91 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