aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_encryption/lib/stream.php
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2013-04-12 14:13:38 +0200
committerBjörn Schießle <schiessle@owncloud.com>2013-04-12 14:13:38 +0200
commitf87229ddafff57980bfc93f52d6aff3427e9a0e9 (patch)
tree352b8014e7f92f7e586cdb9e0bb7896605a939e7 /apps/files_encryption/lib/stream.php
parentc3a284569b5a6f83104cf3b5f0a52b2ecfffd8c2 (diff)
downloadnextcloud-server-f87229ddafff57980bfc93f52d6aff3427e9a0e9.tar.gz
nextcloud-server-f87229ddafff57980bfc93f52d6aff3427e9a0e9.zip
fix stream wrapper to make initial encryption work
Diffstat (limited to 'apps/files_encryption/lib/stream.php')
-rw-r--r--apps/files_encryption/lib/stream.php19
1 files changed, 10 insertions, 9 deletions
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index 8bacb981268..3bad43de2e0 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -52,7 +52,7 @@ class Stream {
// TODO: make all below properties private again once unit testing is
// configured correctly
public $rawPath; // The raw path received by stream_open
- public $path_f; // The raw path formatted to include username and data dir
+ public $relPath; // rel path to users file dir
private $userId;
private $handle; // Resource returned by fopen
private $path;
@@ -80,8 +80,9 @@ class Stream {
// Strip identifier text from path
$this->rawPath = str_replace( 'crypt://', '', $path );
- // Set file path relative to user files dir
- $this->relPath = $this->userId . '/files/' . $this->rawPath;
+ // Set file path relative to user files dir (7 = string length of '/files/')
+ $this->relPath = substr($this->rawPath, strlen($this->userId)+7);
+ //$this->relPath = $this->userId . '/files/' . $this->rawPath;
if (
dirname( $this->rawPath ) == 'streams'
@@ -110,7 +111,7 @@ class Stream {
} else {
- $this->size = $this->rootView->filesize( $this->relPath, $mode );
+ $this->size = $this->rootView->filesize( $this->rawPath, $mode );
//$this->size = filesize( $this->rawPath );
@@ -121,13 +122,13 @@ class Stream {
//$this->handle = fopen( $this->rawPath, $mode );
- $this->handle = $this->rootView->fopen( $this->relPath, $mode );
+ $this->handle = $this->rootView->fopen( $this->rawPath, $mode );
\OC_FileProxy::$enabled = true;
if ( ! is_resource( $this->handle ) ) {
- \OCP\Util::writeLog( 'files_encryption', 'failed to open file "' . $this->relPath . '"', \OCP\Util::ERROR );
+ \OCP\Util::writeLog( 'files_encryption', 'failed to open file "' . $this->rawPath . '"', \OCP\Util::ERROR );
} else {
@@ -226,13 +227,13 @@ class Stream {
// If a keyfile already exists for a file named identically to
// file to be written
- if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->rawPath . '.key' ) ) {
+ if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->relPath . '.key' ) ) {
// TODO: add error handling for when file exists but no
// keyfile
// Fetch existing keyfile
- $this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->rawPath );
+ $this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->relPath );
$this->getUser();
@@ -317,7 +318,7 @@ class Stream {
$userId = \OCP\User::getUser();
// Save the new encrypted file key
- Keymanager::setFileKey( $view, $this->rawPath, $userId, $this->encKeyfile );
+ Keymanager::setFileKey( $view, $this->relPath, $userId, $this->encKeyfile );
}