diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 0e1dafeed7..ceefe8887a 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -51,12 +51,15 @@ class Keymanager { * @return string public key or false */ public static function getPublicKey( \OC_FilesystemView $view, $userId ) { - + + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; - return $view->file_get_contents( '/public-keys/' . $userId . '.public.key' ); + $result = $view->file_get_contents( '/public-keys/' . $userId . '.public.key' ); - \OC_FileProxy::$enabled = true; + \OC_FileProxy::$enabled = $proxyStatus; + + return $result; } @@ -175,7 +178,8 @@ class Keymanager { $filePath_f = ltrim( $filename, '/' ); $keyfilePath = '/' . $owner . '/files_encryption/keyfiles/' . $filePath_f . '.key'; - + + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; if ( $view->file_exists( $keyfilePath ) ) { @@ -188,7 +192,7 @@ class Keymanager { } - \OC_FileProxy::$enabled = true; + \OC_FileProxy::$enabled = $proxyStatus; return $result; @@ -243,15 +247,17 @@ class Keymanager { $user = \OCP\User::getUser(); $view = new \OC_FilesystemView( '/' . $user . '/files_encryption' ); - + + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); - return $view->file_put_contents( $user . '.private.key', $key ); - - \OC_FileProxy::$enabled = true; + $result = $view->file_put_contents( $user . '.private.key', $key ); + \OC_FileProxy::$enabled = $proxyStatus; + + return $result; } /** @@ -276,14 +282,17 @@ class Keymanager { public static function setPublicKey( $key ) { $view = new \OC_FilesystemView( '/public-keys' ); - + + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); - return $view->file_put_contents( \OCP\User::getUser() . '.public.key', $key ); + $result = $view->file_put_contents( \OCP\User::getUser() . '.public.key', $key ); - \OC_FileProxy::$enabled = true; + \OC_FileProxy::$enabled = $proxyStatus; + + return $result; } @@ -310,11 +319,14 @@ class Keymanager { $shareKeyPath = self::keySetPreparation( $view, $filename, $basePath, $owner ); $writePath = $basePath . '/' . $shareKeyPath . '.' . $userId . '.shareKey'; - + + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; $result = $view->file_put_contents( $writePath, $shareKey ); - + + \OC_FileProxy::$enabled = $proxyStatus; + if ( is_int( $result ) && $result > 0 @@ -368,7 +380,8 @@ class Keymanager { * of the keyfile must be performed by client code */ public static function getShareKey( \OC_FilesystemView $view, $userId, $filePath ) { - + + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; //here we need the currently logged in user, while userId can be a different user @@ -387,7 +400,7 @@ class Keymanager { } - \OC_FileProxy::$enabled = true; + \OC_FileProxy::$enabled = $proxyStatus; return $result; @@ -416,7 +429,8 @@ class Keymanager { * @brief Delete a single user's shareKey for a single file */ public static function delShareKey( \OC_FilesystemView $view, $userIds, $filePath ) { - + + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; //here we need the currently logged in user, while userId can be a different user @@ -448,7 +462,7 @@ class Keymanager { } - \OC_FileProxy::$enabled = false; + \OC_FileProxy::$enabled = $proxyStatus; return $result; @@ -472,7 +486,7 @@ class Keymanager { foreach ( $subdirs as $subdir ) { self::recursiveDelShareKeys($subdir, $userIds); } - return $true; + return true; } /**