diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 75cf78c5f946dcded4dbfb7004965873aa14cf21..fcfcbb83f7f529c1d64d9dbdf73d48d314e8e8aa 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -435,15 +435,16 @@ class Util { $lastChunkContentEncrypted=substr($lastChunkContentEncrypted,Crypt::BLOCKSIZE); } } - + fclose($stream); $relPath = \OCA\Encryption\Helper::stripUserFilesPath($path); - $session = new \OCA\Encryption\Session(new \OC\Files\View('/')); + $shareKey = Keymanager::getShareKey($this->view, $this->keyId, $this, $relPath); + if($shareKey===false) { + return $result; + } + $session = new \OCA\Encryption\Session($this->view); $privateKey = $session->getPrivateKey(); $plainKeyfile = $this->decryptKeyfile($relPath, $privateKey); - $shareKey = Keymanager::getShareKey($this->view, $this->keyId, $this, $relPath); - $plainKey = Crypt::multiKeyDecrypt($plainKeyfile, $shareKey, $privateKey); - $lastChunkContent=Crypt::symmetricDecryptFileContent($lastChunkContentEncrypted, $plainKey, $cipher); // calc the real file size with the size of the last chunk