From 400cf5beb30de7475520192e840ddb899d0f742e Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 9 Apr 2013 19:11:38 +0200 Subject: [PATCH] Fixed naming bug of public owncloud key dir, which caused new keypair to be generated on each pageload --- apps/files_encryption/lib/session.php | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 171a6900f0f..7bfea7bed48 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -27,32 +27,44 @@ namespace OCA\Encryption; */ class Session { + + private $view; /** * @brief if session is started, check if ownCloud key pair is set up, if not create it * * The ownCloud key pair is used to allow public link sharing even if encryption is enabled */ - public function __construct() { + public function __construct( \OC_FilesystemView $view ) { + + $this->view = $view; + + if ( ! $this->view->is_dir( 'owncloud_private_key' ) ) { - $view = new \OC\Files\View('/'); - if (!$view->is_dir('owncloud_private_key')) { - $view->mkdir('owncloud_private_key'); + $this->view->mkdir('owncloud_private_key'); } - if (!$view->file_exists("/public-keys/owncloud.public.key") || !$view->file_exists("/owncloud_private_key/owncloud.private.key") ) { + + if ( + ! $this->view->file_exists("/public-keys/owncloud.public.key") + || ! $this->view->file_exists("/owncloud_private_key/owncloud.private.key" ) + ) { $keypair = Crypt::createKeypair(); \OC_FileProxy::$enabled = false; + // Save public key - $view->file_put_contents( '/public-keys/ownCloud.public.key', $keypair['publicKey'] ); + $this->view->file_put_contents( '/public-keys/owncloud.public.key', $keypair['publicKey'] ); + // Encrypt private key empthy passphrase $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], '' ); + // Save private key - $view->file_put_contents( '/owncloud_private_key/ownCloud.private.key', $encryptedPrivateKey ); + $this->view->file_put_contents( '/owncloud_private_key/owncloud.private.key', $encryptedPrivateKey ); \OC_FileProxy::$enabled = true; + } } -- 2.39.5