summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2014-04-29 15:00:57 +0200
committerBjoern Schiessle <schiessle@owncloud.com>2014-05-13 12:35:25 +0200
commita9ac11718e62017c70682f99eb35b43b1ef9c498 (patch)
treed4874aca27972f45acdb756ba2200f886617141b /apps
parent254fa5eb22efa5ba572702064377a6ad9eec9a53 (diff)
downloadnextcloud-server-a9ac11718e62017c70682f99eb35b43b1ef9c498.tar.gz
nextcloud-server-a9ac11718e62017c70682f99eb35b43b1ef9c498.zip
backup the encryption key after the encryption was disabled so that the user
can restore them if needed
Diffstat (limited to 'apps')
-rw-r--r--apps/files_encryption/lib/util.php4
-rwxr-xr-xapps/files_encryption/tests/util.php11
2 files changed, 13 insertions, 2 deletions
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index 6372ab31b6e..27b4db9253a 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -788,8 +788,8 @@ class Util {
}
if ($successful) {
- $this->view->deleteAll($this->keyfilesPath);
- $this->view->deleteAll($this->shareKeysPath);
+ $this->view->rename($this->keyfilesPath, $this->keyfilesPath . '.backup');
+ $this->view->rename($this->shareKeysPath, $this->shareKeysPath . '.backup');
}
\OC_FileProxy::$enabled = true;
diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php
index 88ded7ec40a..fa8e1d729dd 100755
--- a/apps/files_encryption/tests/util.php
+++ b/apps/files_encryption/tests/util.php
@@ -413,8 +413,16 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
// file should no longer be encrypted
$this->assertEquals(0, $fileInfoUnencrypted['encrypted']);
+ // check if the keys where moved to the backup location
+ $this->assertTrue($this->view->is_dir($this->userId . '/files_encryption/keyfiles.backup'));
+ $this->assertTrue($this->view->file_exists($this->userId . '/files_encryption/keyfiles.backup/' . $filename . '.key'));
+ $this->assertTrue($this->view->is_dir($this->userId . '/files_encryption/share-keys.backup'));
+ $this->assertTrue($this->view->file_exists($this->userId . '/files_encryption/share-keys.backup/' . $filename . '.' . $user . '.shareKey'));
+
// cleanup
$this->view->unlink($this->userId . '/files/' . $filename);
+ $this->view->deleteAll($this->userId . '/files_encryption/keyfiles.backup');
+ $this->view->deleteAll($this->userId . '/files_encryption/share-keys.backup');
OC_App::enable('files_encryption');
}
@@ -485,8 +493,11 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
$this->assertFalse($this->view->is_dir($this->userId . '/files_encryption/keyfiles/'));
$this->assertFalse($this->view->is_dir($this->userId . '/files_encryption/share-keys/'));
+ //cleanup
$this->view->unlink($this->userId . '/files/' . $file1);
$this->view->unlink($this->userId . '/files/' . $file2);
+ $this->view->deleteAll($this->userId . '/files_encryption/keyfiles.backup');
+ $this->view->deleteAll($this->userId . '/files_encryption/share-keys.backup');
}