diff options
author | Bjoern Schiessle <schiessle@owncloud.com> | 2013-12-17 15:53:25 +0100 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2013-12-17 15:53:25 +0100 |
commit | 69b89454a4070c0ae3e7e8b6e37f310a2ee28e73 (patch) | |
tree | b87738753a3f51cb2903679771d8bad32b3f32da /apps/files_encryption | |
parent | 5a1194520ec71e9f471289a6f85e4c2aa93a9e59 (diff) | |
download | nextcloud-server-69b89454a4070c0ae3e7e8b6e37f310a2ee28e73.tar.gz nextcloud-server-69b89454a4070c0ae3e7e8b6e37f310a2ee28e73.zip |
reliable detect encrypted files
Diffstat (limited to 'apps/files_encryption')
-rw-r--r-- | apps/files_encryption/lib/util.php | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index bf7c49504a2..d4aa4d31649 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -464,20 +464,22 @@ class Util { */ public function isEncryptedPath($path) { - $relPath = Helper::getPathToRealFile($path); - - if ($relPath === false) { - $relPath = Helper::stripUserFilesPath($path); - } - - $fileKey = Keymanager::getFileKey($this->view, $this, $relPath); + // Disable encryption proxy so data retrieved is in its + // original form + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; - if ($fileKey === false) { - return false; + // we only need 24 byte from the last chunk + $data = ''; + $handle = $this->view->fopen($path, 'r'); + if (is_resource($handle) && !fseek($handle, -24, SEEK_END)) { + $data = fgets($handle); } - return true; + // re-enable proxy + \OC_FileProxy::$enabled = $proxyStatus; + return Crypt::isCatfileContent($data); } /** |