diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/encryption/manager.php | 27 | ||||
-rw-r--r-- | lib/private/encryption/update.php | 2 | ||||
-rw-r--r-- | lib/private/files/storage/wrapper/encryption.php | 6 | ||||
-rw-r--r-- | lib/public/encryption/imanager.php | 19 |
4 files changed, 24 insertions, 30 deletions
diff --git a/lib/private/encryption/manager.php b/lib/private/encryption/manager.php index 8e080507c81..1a42646daf6 100644 --- a/lib/private/encryption/manager.php +++ b/lib/private/encryption/manager.php @@ -101,17 +101,17 @@ class Manager implements IManager { throw new Exceptions\ModuleAlreadyExistsException($id, $displayName); } - $defaultEncryptionModuleId = $this->getDefaultEncryptionModuleId(); - - if (empty($defaultEncryptionModuleId)) { - $this->setDefaultEncryptionModule($id); - } - $this->encryptionModules[$id] = [ 'id' => $id, 'displayName' => $displayName, 'callback' => $callback, ]; + + $defaultEncryptionModuleId = $this->getDefaultEncryptionModuleId(); + + if (empty($defaultEncryptionModuleId)) { + $this->setDefaultEncryptionModule($id); + } } /** @@ -158,7 +158,7 @@ class Manager implements IManager { * @return \OCP\Encryption\IEncryptionModule * @throws Exceptions\ModuleDoesNotExistsException */ - public function getDefaultEncryptionModule() { + protected function getDefaultEncryptionModule() { $defaultModuleId = $this->getDefaultEncryptionModuleId(); if (!empty($defaultModuleId)) { if (isset($this->encryptionModules[$defaultModuleId])) { @@ -182,12 +182,13 @@ class Manager implements IManager { */ public function setDefaultEncryptionModule($moduleId) { try { - $this->config->setAppValue('core', 'default_encryption_module', $moduleId); - return true; + $this->getEncryptionModule($moduleId); } catch (\Exception $e) { return false; } + $this->config->setAppValue('core', 'default_encryption_module', $moduleId); + return true; } /** @@ -195,12 +196,8 @@ class Manager implements IManager { * * @return string */ - protected function getDefaultEncryptionModuleId() { - try { - return $this->config->getAppValue('core', 'default_encryption_module'); - } catch (\Exception $e) { - return ''; - } + public function getDefaultEncryptionModuleId() { + return $this->config->getAppValue('core', 'default_encryption_module'); } public static function setupStorage() { diff --git a/lib/private/encryption/update.php b/lib/private/encryption/update.php index f262099a3c5..a0b0af968c6 100644 --- a/lib/private/encryption/update.php +++ b/lib/private/encryption/update.php @@ -137,7 +137,7 @@ class Update { $allFiles = array($path); } - $encryptionModule = $this->encryptionManager->getDefaultEncryptionModule(); + $encryptionModule = $this->encryptionManager->getEncryptionModule(); foreach ($allFiles as $file) { $usersSharing = $this->file->getAccessList($file); diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php index 0dc59cbb2a0..af48d3475c3 100644 --- a/lib/private/files/storage/wrapper/encryption.php +++ b/lib/private/files/storage/wrapper/encryption.php @@ -311,12 +311,10 @@ class Encryption extends Wrapper { || $mode === 'wb' || $mode === 'wb+' ) { - if (!empty($encryptionModuleId)) { + if ($encryptionEnabled) { + // if $encryptionModuleId is empty, the default module will be used $encryptionModule = $this->encryptionManager->getEncryptionModule($encryptionModuleId); $shouldEncrypt = $encryptionModule->shouldEncrypt($fullPath); - } elseif ($encryptionEnabled) { - $encryptionModule = $this->encryptionManager->getDefaultEncryptionModule(); - $shouldEncrypt = $encryptionModule->shouldEncrypt($fullPath); } } else { // only get encryption module if we found one in the header diff --git a/lib/public/encryption/imanager.php b/lib/public/encryption/imanager.php index 3a370710781..0b12c7524d2 100644 --- a/lib/public/encryption/imanager.php +++ b/lib/public/encryption/imanager.php @@ -37,7 +37,7 @@ interface IManager { * @return bool true if enabled, false if not * @since 8.1.0 */ - function isEnabled(); + public function isEnabled(); /** * Registers an callback function which must return an encryption module instance @@ -48,7 +48,7 @@ interface IManager { * @throws ModuleAlreadyExistsException * @since 8.1.0 */ - function registerEncryptionModule($id, $displayName, callable $callback); + public function registerEncryptionModule($id, $displayName, callable $callback); /** * Unregisters an encryption module @@ -56,7 +56,7 @@ interface IManager { * @param string $moduleId * @since 8.1.0 */ - function unregisterEncryptionModule($moduleId); + public function unregisterEncryptionModule($moduleId); /** * get a list of all encryption modules @@ -64,27 +64,26 @@ interface IManager { * @return array [id => ['id' => $id, 'displayName' => $displayName, 'callback' => callback]] * @since 8.1.0 */ - function getEncryptionModules(); + public function getEncryptionModules(); /** * get a specific encryption module * - * @param string $moduleId + * @param string $moduleId Empty to get the default module * @return IEncryptionModule * @throws ModuleDoesNotExistsException * @since 8.1.0 */ - function getEncryptionModule($moduleId); + public function getEncryptionModule($moduleId = ''); /** - * get default encryption module + * get default encryption module Id * - * @return \OCP\Encryption\IEncryptionModule - * @throws ModuleDoesNotExistsException + * @return string * @since 8.1.0 */ - public function getDefaultEncryptionModule(); + public function getDefaultEncryptionModuleId(); /** * set default encryption module Id |