From: Sam Tuke Date: Tue, 9 Apr 2013 17:11:38 +0000 (+0200) Subject: Fixed naming bug of public owncloud key dir, which caused new keypair to be generated... X-Git-Tag: v6.0.0alpha2~743^2~196 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=400cf5beb30de7475520192e840ddb899d0f742e;p=nextcloud-server.git Fixed naming bug of public owncloud key dir, which caused new keypair to be generated on each pageload --- 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; + } }