Skip to content
Snippets Groups Projects
Commit a8a60d76 authored by Björn Schießle's avatar Björn Schießle
Browse files

Merge pull request #3715 from owncloud/fixes_for_3641_3620

files_encryption: bug fixes for reported problems.
parents 6c534c81 62f4ed70
No related branches found
No related tags found
No related merge requests found
......@@ -168,7 +168,7 @@ class Crypt {
* e.g. filename or /Docs/filename, NOT admin/files/filename
* @return boolean
*/
public static function isLegacyEncryptedContent($data, $relPath) {
public static function isLegacyEncryptedContent($isCatFileContent, $relPath) {
// Fetch all file metadata from DB
$metadata = \OC\Files\Filesystem::getFileInfo($relPath, '');
......@@ -178,7 +178,7 @@ class Crypt {
// legacy encryption system
if (isset($metadata['encrypted'])
&& $metadata['encrypted'] === true
&& !self::isCatfileContent($data)
&& $isCatFileContent === false
) {
return true;
......@@ -480,7 +480,7 @@ class Crypt {
} else {
\OCP\Util::writeLog('Encryption library', 'Decryption (asymmetric) of sealed content failed', \OCP\Util::ERROR);
\OCP\Util::writeLog('Encryption library', 'Decryption (asymmetric) of sealed content with share-key "'.$shareKey.'" failed', \OCP\Util::ERROR);
return false;
......
......@@ -424,8 +424,7 @@ class Util {
// where they got re-enabled :/
\OC_FileProxy::$enabled = false;
$data = $this->view->file_get_contents($filePath);
$isEncryptedPath = $this->isEncryptedPath($filePath);
// If the file is encrypted
// NOTE: If the userId is
// empty or not set, file will
......@@ -435,7 +434,7 @@ class Util {
// will eat server resources :(
if (
Keymanager::getFileKey($this->view, $this->userId, $relPath)
&& Crypt::isCatfileContent($data)
&& $isEncryptedPath
) {
$found['encrypted'][] = array(
......@@ -445,7 +444,7 @@ class Util {
// If the file uses old
// encryption system
} elseif (Crypt::isLegacyEncryptedContent($data, $relPath)) {
} elseif (Crypt::isLegacyEncryptedContent($isEncryptedPath, $relPath)) {
$found['legacy'][] = array(
'name' => $file,
......@@ -698,7 +697,7 @@ class Util {
$plainHandle = $this->view->fopen($rawPath, 'rb');
// Open enc file handle for binary writing, with same filename as original plain file
$encHandle = fopen('crypt://' . $relPath . '.tmp', 'wb');
$encHandle = fopen('crypt://' . $relPath . '.part', 'wb');
// Move plain file to a temporary location
$size = stream_copy_to_stream($plainHandle, $encHandle);
......@@ -708,7 +707,7 @@ class Util {
$fakeRoot = $this->view->getRoot();
$this->view->chroot('/' . $this->userId . '/files');
$this->view->rename($relPath . '.tmp', $relPath);
$this->view->rename($relPath . '.part', $relPath);
$this->view->chroot($fakeRoot);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment