From: Bjoern Schiessle Date: Mon, 30 Mar 2015 15:29:07 +0000 (+0200) Subject: remove old encryption app X-Git-Tag: v8.1.0alpha1~78^2~83 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e7a68d1c21c52a39ddec59579ab7701dfef82b2a;p=nextcloud-server.git remove old encryption app --- diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php deleted file mode 100644 index 1c13df8b885..00000000000 --- a/apps/files_encryption/ajax/adminrecovery.php +++ /dev/null @@ -1,91 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Lukas Reschke - * @author Morris Jobke - * @author Robin Appelman - * @author Sam Tuke - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -use OCA\Files_Encryption\Helper; - -\OCP\JSON::checkAdminUser(); -\OCP\JSON::checkAppEnabled('files_encryption'); -\OCP\JSON::callCheck(); - -$l = \OC::$server->getL10N('files_encryption'); - -$return = false; -$errorMessage = $l->t("Unknown error"); - -//check if both passwords are the same -if (empty($_POST['recoveryPassword'])) { - $errorMessage = $l->t('Missing recovery key password'); - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); - exit(); -} - -if (empty($_POST['confirmPassword'])) { - $errorMessage = $l->t('Please repeat the recovery key password'); - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); - exit(); -} - -if ($_POST['recoveryPassword'] !== $_POST['confirmPassword']) { - $errorMessage = $l->t('Repeated recovery key password does not match the provided recovery key password'); - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); - exit(); -} - -// Enable recoveryAdmin -$recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId'); - -if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1') { - - $return = Helper::adminEnableRecovery($recoveryKeyId, (string)$_POST['recoveryPassword']); - - // Return success or failure - if ($return) { - $successMessage = $l->t('Recovery key successfully enabled'); - } else { - $errorMessage = $l->t('Could not disable recovery key. Please check your recovery key password!'); - } - -// Disable recoveryAdmin -} elseif ( - isset($_POST['adminEnableRecovery']) - && '0' === $_POST['adminEnableRecovery'] -) { - $return = Helper::adminDisableRecovery((string)$_POST['recoveryPassword']); - - if ($return) { - $successMessage = $l->t('Recovery key successfully disabled'); - } else { - $errorMessage = $l->t('Could not disable recovery key. Please check your recovery key password!'); - } -} - -// Return success or failure -if ($return) { - \OCP\JSON::success(array('data' => array('message' => $successMessage))); -} else { - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); -} diff --git a/apps/files_encryption/ajax/changeRecoveryPassword.php b/apps/files_encryption/ajax/changeRecoveryPassword.php deleted file mode 100644 index 146c0c5c5dc..00000000000 --- a/apps/files_encryption/ajax/changeRecoveryPassword.php +++ /dev/null @@ -1,92 +0,0 @@ - - * @author Christopher Schäpers - * @author Florin Peter - * @author Joas Schilling - * @author Lukas Reschke - * @author Morris Jobke - * @author Robin Appelman - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -\OCP\JSON::checkAdminUser(); -\OCP\JSON::checkAppEnabled('files_encryption'); -\OCP\JSON::callCheck(); - -$l = \OC::$server->getL10N('core'); - -$return = false; - -$oldPassword = (string)$_POST['oldPassword']; -$newPassword = (string)$_POST['newPassword']; -$confirmPassword = (string)$_POST['confirmPassword']; - -//check if both passwords are the same -if (empty($_POST['oldPassword'])) { - $errorMessage = $l->t('Please provide the old recovery password'); - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); - exit(); -} - -if (empty($_POST['newPassword'])) { - $errorMessage = $l->t('Please provide a new recovery password'); - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); - exit(); -} - -if (empty($_POST['confirmPassword'])) { - $errorMessage = $l->t('Please repeat the new recovery password'); - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); - exit(); -} - -if ($_POST['newPassword'] !== $_POST['confirmPassword']) { - $errorMessage = $l->t('Repeated recovery key password does not match the provided recovery key password'); - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); - exit(); -} - -$view = new \OC\Files\View('/'); -$util = new \OCA\Files_Encryption\Util(new \OC\Files\View('/'), \OCP\User::getUser()); - -$proxyStatus = \OC_FileProxy::$enabled; -\OC_FileProxy::$enabled = false; - -$keyId = $util->getRecoveryKeyId(); - -$encryptedRecoveryKey = \OCA\Files_Encryption\Keymanager::getPrivateSystemKey($keyId); -$decryptedRecoveryKey = $encryptedRecoveryKey ? \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedRecoveryKey, $oldPassword) : false; - -if ($decryptedRecoveryKey) { - $cipher = \OCA\Files_Encryption\Helper::getCipher(); - $encryptedKey = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($decryptedRecoveryKey, $newPassword, $cipher); - if ($encryptedKey) { - \OCA\Files_Encryption\Keymanager::setPrivateSystemKey($encryptedKey, $keyId); - $return = true; - } -} - -\OC_FileProxy::$enabled = $proxyStatus; - -// success or failure -if ($return) { - \OCP\JSON::success(array('data' => array('message' => $l->t('Password successfully changed.')))); -} else { - \OCP\JSON::error(array('data' => array('message' => $l->t('Could not change the password. Maybe the old password was not correct.')))); -} diff --git a/apps/files_encryption/ajax/getMigrationStatus.php b/apps/files_encryption/ajax/getMigrationStatus.php deleted file mode 100644 index e140a296f32..00000000000 --- a/apps/files_encryption/ajax/getMigrationStatus.php +++ /dev/null @@ -1,44 +0,0 @@ - - * @author Björn Schießle - * @author Joas Schilling - * @author Lukas Reschke - * @author Morris Jobke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -use OCA\Files_Encryption\Util; - -\OCP\JSON::checkAppEnabled('files_encryption'); - -$loginname = isset($_POST['user']) ? (string)$_POST['user'] : ''; -$password = isset($_POST['password']) ? (string)$_POST['password'] : ''; - -$migrationStatus = Util::MIGRATION_COMPLETED; - -if ($loginname !== '' && $password !== '') { - $username = \OCP\User::checkPassword($loginname, $password); - if ($username) { - $util = new Util(new \OC\Files\View('/'), $username); - $migrationStatus = $util->getMigrationStatus(); - } -} - -\OCP\JSON::success(array('data' => array('migrationStatus' => $migrationStatus))); diff --git a/apps/files_encryption/ajax/updatePrivateKeyPassword.php b/apps/files_encryption/ajax/updatePrivateKeyPassword.php deleted file mode 100644 index e5f2d654348..00000000000 --- a/apps/files_encryption/ajax/updatePrivateKeyPassword.php +++ /dev/null @@ -1,81 +0,0 @@ - - * @author Christopher Schäpers - * @author Joas Schilling - * @author Lukas Reschke - * @author Morris Jobke - * @author Robin Appelman - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -\OCP\JSON::checkLoggedIn(); -\OCP\JSON::checkAppEnabled('files_encryption'); -\OCP\JSON::callCheck(); - -$l = \OC::$server->getL10N('core'); - -$return = false; -$errorMessage = $l->t('Could not update the private key password.'); - -$oldPassword = (string)$_POST['oldPassword']; -$newPassword = (string)$_POST['newPassword']; - -$view = new \OC\Files\View('/'); -$session = new \OCA\Files_Encryption\Session($view); -$user = \OCP\User::getUser(); -$loginName = \OC::$server->getUserSession()->getLoginName(); - -// check new password -$passwordCorrect = \OCP\User::checkPassword($loginName, $newPassword); - -if ($passwordCorrect !== false) { - -$proxyStatus = \OC_FileProxy::$enabled; -\OC_FileProxy::$enabled = false; - -$encryptedKey = \OCA\Files_Encryption\Keymanager::getPrivateKey($view, $user); -$decryptedKey = $encryptedKey ? \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, $oldPassword) : false; - -if ($decryptedKey) { - $cipher = \OCA\Files_Encryption\Helper::getCipher(); - $encryptedKey = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($decryptedKey, $newPassword, $cipher); - if ($encryptedKey) { - \OCA\Files_Encryption\Keymanager::setPrivateKey($encryptedKey, $user); - $session->setPrivateKey($decryptedKey); - $return = true; - } -} else { - $result = false; - $errorMessage = $l->t('The old password was not correct, please try again.'); -} - -\OC_FileProxy::$enabled = $proxyStatus; - -} else { - $result = false; - $errorMessage = $l->t('The current log-in password was not correct, please try again.'); -} - -// success or failure -if ($return) { - $session->setInitialized(\OCA\Files_Encryption\Session::INIT_SUCCESSFUL); - \OCP\JSON::success(array('data' => array('message' => $l->t('Private key password successfully updated.')))); -} else { - \OCP\JSON::error(array('data' => array('message' => $errorMessage))); -} diff --git a/apps/files_encryption/ajax/userrecovery.php b/apps/files_encryption/ajax/userrecovery.php deleted file mode 100644 index a1145172f71..00000000000 --- a/apps/files_encryption/ajax/userrecovery.php +++ /dev/null @@ -1,63 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Lukas Reschke - * @author Morris Jobke - * @author Sam Tuke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -\OCP\JSON::checkLoggedIn(); -\OCP\JSON::checkAppEnabled('files_encryption'); -\OCP\JSON::callCheck(); - -$l = \OC::$server->getL10N('files_encryption'); - -if ( - isset($_POST['userEnableRecovery']) - && (0 == $_POST['userEnableRecovery'] || '1' === $_POST['userEnableRecovery']) -) { - - $userId = \OCP\USER::getUser(); - $view = new \OC\Files\View('/'); - $util = new \OCA\Files_Encryption\Util($view, $userId); - - // Save recovery preference to DB - $return = $util->setRecoveryForUser((string)$_POST['userEnableRecovery']); - - if ($_POST['userEnableRecovery'] === '1') { - $util->addRecoveryKeys(); - } else { - $util->removeRecoveryKeys(); - } - -} else { - - $return = false; - -} - -// Return success or failure -if ($return) { - \OCP\JSON::success(array('data' => array('message' => $l->t('File recovery settings updated')))); -} else { - \OCP\JSON::error(array('data' => array('message' => $l->t('Could not update file recovery')))); -} diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php deleted file mode 100644 index 5da8a3a7cb9..00000000000 --- a/apps/files_encryption/appinfo/app.php +++ /dev/null @@ -1,57 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Morris Jobke - * @author Robin Appelman - * @author Sam Tuke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ -\OCP\Util::addscript('files_encryption', 'encryption'); -\OCP\Util::addscript('files_encryption', 'detect-migration'); - -if (!OC_Config::getValue('maintenance', false)) { - OC_FileProxy::register(new OCA\Files_Encryption\Proxy()); - - // User related hooks - OCA\Files_Encryption\Helper::registerUserHooks(); - - // Sharing related hooks - OCA\Files_Encryption\Helper::registerShareHooks(); - - // Filesystem related hooks - OCA\Files_Encryption\Helper::registerFilesystemHooks(); - - // App manager related hooks - OCA\Files_Encryption\Helper::registerAppHooks(); - - if(!in_array('crypt', stream_get_wrappers())) { - stream_wrapper_register('crypt', 'OCA\Files_Encryption\Stream'); - } -} else { - // logout user if we are in maintenance to force re-login - OCP\User::logout(); -} - -\OC::$server->getCommandBus()->requireSync('\OC\Command\FileAccess'); - -// Register settings scripts -OCP\App::registerAdmin('files_encryption', 'settings-admin'); -OCP\App::registerPersonal('files_encryption', 'settings-personal'); diff --git a/apps/files_encryption/appinfo/info.xml b/apps/files_encryption/appinfo/info.xml deleted file mode 100644 index 7f7e09d6271..00000000000 --- a/apps/files_encryption/appinfo/info.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - files_encryption - Server-side Encryption - - This application encrypts all files accessed by ownCloud at rest, wherever they are stored. As an example, with this application enabled, external cloud based Amazon S3 storage will be encrypted, protecting this data on storage outside of the control of the Admin. When this application is enabled for the first time, all files are encrypted as users log in and are prompted for their password. The recommended recovery key option enables recovery of files in case the key is lost. - Note that this app encrypts all files that are touched by ownCloud, so external storage providers and applications such as SharePoint will see new files encrypted when they are accessed. Encryption is based on AES 128 or 256 bit keys. More information is available in the Encryption documentation - - AGPL - Sam Tuke, Bjoern Schiessle, Florin Peter - 4 - true - - user-encryption - admin-encryption - - false - - - - 166047 - - openssl - - diff --git a/apps/files_encryption/appinfo/register_command.php b/apps/files_encryption/appinfo/register_command.php deleted file mode 100644 index 4864e801162..00000000000 --- a/apps/files_encryption/appinfo/register_command.php +++ /dev/null @@ -1,26 +0,0 @@ - - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -use OCA\Files_Encryption\Command\MigrateKeys; - -$userManager = OC::$server->getUserManager(); -$application->add(new MigrateKeys($userManager)); diff --git a/apps/files_encryption/appinfo/routes.php b/apps/files_encryption/appinfo/routes.php deleted file mode 100644 index 8884ac3b6aa..00000000000 --- a/apps/files_encryption/appinfo/routes.php +++ /dev/null @@ -1,39 +0,0 @@ - - * @author Lukas Reschke - * @author Morris Jobke - * @author Tom Needham - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -/** @var $this \OCP\Route\IRouter */ - -$this->create('files_encryption_ajax_adminrecovery', 'ajax/adminrecovery.php') - ->actionInclude('files_encryption/ajax/adminrecovery.php'); -$this->create('files_encryption_ajax_changeRecoveryPassword', 'ajax/changeRecoveryPassword.php') - ->actionInclude('files_encryption/ajax/changeRecoveryPassword.php'); -$this->create('files_encryption_ajax_getMigrationStatus', 'ajax/getMigrationStatus.php') - ->actionInclude('files_encryption/ajax/getMigrationStatus.php'); -$this->create('files_encryption_ajax_updatePrivateKeyPassword', 'ajax/updatePrivateKeyPassword.php') - ->actionInclude('files_encryption/ajax/updatePrivateKeyPassword.php'); -$this->create('files_encryption_ajax_userrecovery', 'ajax/userrecovery.php') - ->actionInclude('files_encryption/ajax/userrecovery.php'); - -// Register with the capabilities API -OC_API::register('get', '/cloud/capabilities', array('OCA\Files_Encryption\Capabilities', 'getCapabilities'), 'files_encryption', OC_API::USER_AUTH); diff --git a/apps/files_encryption/appinfo/spec.txt b/apps/files_encryption/appinfo/spec.txt deleted file mode 100644 index ddd3983a9eb..00000000000 --- a/apps/files_encryption/appinfo/spec.txt +++ /dev/null @@ -1,77 +0,0 @@ -Encrypted files ---------------- - -- Each encrypted file has at least two components: the encrypted data file - ('catfile'), and it's corresponding key file ('keyfile'). Shared files have an - additional key file ('share key'). The catfile contains the encrypted data - concatenated with delimiter text, followed by the initialisation vector ('IV'), - and padding. e.g.: - - [encrypted data string][delimiter][IV][padding] - [anhAAjAmcGXqj1X9g==][00iv00][MSHU5N5gECP7aAg7][xx] (square braces added) - -- Directory structure: - - Encrypted user data (catfiles) are stored in the usual /data/user/files dir - - Keyfiles are stored in /data/user/files_encryption/keyfiles - - Sharekey are stored in /data/user/files_encryption/share-files - -- File extensions: - - Catfiles have to keep the file extension of the original file, pre-encryption - - Keyfiles use .keyfile - - Sharekeys have .shareKey - -Shared files ------------- - -Shared files have a centrally stored catfile and keyfile, and one sharekey for -each user that shares it. - -When sharing is used, a different encryption method is used to encrypt the -keyfile (openssl_seal). Although shared files have a keyfile, its contents -use a different format therefore. - -Each time a shared file is edited or deleted, all sharekeys for users sharing -that file must have their sharekeys changed also. The keyfile and catfile -however need only changing in the owners files, as there is only one copy of -these. - -Publicly shared files (public links) ------------------------------------- - -Files shared via public links use a separate system user account called 'ownCloud'. All public files are shared to that user's public key, and the private key is used to access the files when the public link is used in browser. - -This means that files shared via public links are accessible only to users who know the shared URL, or to admins who know the 'ownCloud' user password. - -Lost password recovery ----------------------- - -In order to enable users to read their encrypted files in the event of a password loss/reset scenario, administrators can choose to enable a 'recoveryAdmin' account. This is a user that all user files will automatically be shared to of the option is enabled. This allows the recoveryAdmin user to generate new keyfiles for the user. By default the UID of the recoveryAdmin is 'recoveryAdmin'. - -OC_FilesystemView ------------------ - -files_encryption deals extensively with paths and the filesystem. In order to minimise bugs, it makes calls to filesystem methods in a consistent way: OC_FilesystemView{} objects always use '/' as their root, and specify paths each time particular methods are called. e.g. do this: - -$view->file_exists( 'path/to/file' ); - -Not: - -$view->chroot( 'path/to' ); -$view->file_exists( 'file' ); - -Using this convention means that $view objects are more predictable and less likely to break. Problems with paths are the #1 cause of bugs in this app, and consistent $view handling is an important way to prevent them. - -Notes ------ - -- The user passphrase is required in order to set up or upgrade the app. New - keypair generation, and the re-encryption of legacy encrypted files requires - it. Therefore an appinfo/update.php script cannot be used, and upgrade logic - is handled in the login hook listener. Therefore each time the user logs in - their files are scanned to detect unencrypted and legacy encrypted files, and - they are (re)encrypted as necessary. This may present a performance issue; we - need to monitor this. -- When files are saved to ownCloud via WebDAV, a .part file extension is used so - that the file isn't cached before the upload has been completed. .part files - are not compatible with files_encrytion's key management system however, so - we have to always sanitise such paths manually before using them. \ No newline at end of file diff --git a/apps/files_encryption/appinfo/update.php b/apps/files_encryption/appinfo/update.php deleted file mode 100644 index e8ccee063ef..00000000000 --- a/apps/files_encryption/appinfo/update.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @author Morris Jobke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ -use OCA\Files_Encryption\Migration; - -$installedVersion=OCP\Config::getAppValue('files_encryption', 'installed_version'); - -// Migration OC7 -> OC8 -if (version_compare($installedVersion, '0.7', '<')) { - $m = new Migration(); - $m->reorganizeFolderStructure(); -} diff --git a/apps/files_encryption/appinfo/version b/apps/files_encryption/appinfo/version deleted file mode 100644 index 39e898a4f95..00000000000 --- a/apps/files_encryption/appinfo/version +++ /dev/null @@ -1 +0,0 @@ -0.7.1 diff --git a/apps/files_encryption/command/migratekeys.php b/apps/files_encryption/command/migratekeys.php deleted file mode 100644 index 4f3e558167b..00000000000 --- a/apps/files_encryption/command/migratekeys.php +++ /dev/null @@ -1,95 +0,0 @@ - - * @author Morris Jobke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Command; - -use OCA\Files_Encryption\Migration; -use OCP\IUserBackend; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -class MigrateKeys extends Command { - - /** @var \OC\User\Manager */ - private $userManager; - - public function __construct(\OC\User\Manager $userManager) { - $this->userManager = $userManager; - parent::__construct(); - } - - protected function configure() { - $this - ->setName('encryption:migrate-keys') - ->setDescription('migrate encryption keys') - ->addArgument( - 'user_id', - InputArgument::OPTIONAL | InputArgument::IS_ARRAY, - 'will migrate keys of the given user(s)' - ); - } - - protected function execute(InputInterface $input, OutputInterface $output) { - - // perform system reorganization - $migration = new Migration(); - $output->writeln("Reorganize system folder structure"); - $migration->reorganizeSystemFolderStructure(); - - $users = $input->getArgument('user_id'); - if (!empty($users)) { - foreach ($users as $user) { - if ($this->userManager->userExists($user)) { - $output->writeln("Migrating keys $user"); - $migration->reorganizeFolderStructureForUser($user); - } else { - $output->writeln("Unknown user $user"); - } - } - } else { - foreach($this->userManager->getBackends() as $backend) { - $name = get_class($backend); - - if ($backend instanceof IUserBackend) { - $name = $backend->getBackendName(); - } - - $output->writeln("Migrating keys for users on backend $name"); - - $limit = 500; - $offset = 0; - do { - $users = $backend->getUsers('', $limit, $offset); - foreach ($users as $user) { - $output->writeln(" $user"); - $migration->reorganizeFolderStructureForUser($user); - } - $offset += $limit; - } while(count($users) >= $limit); - } - } - - } -} diff --git a/apps/files_encryption/css/settings-personal.css b/apps/files_encryption/css/settings-personal.css deleted file mode 100644 index 8eb5bedcb06..00000000000 --- a/apps/files_encryption/css/settings-personal.css +++ /dev/null @@ -1,10 +0,0 @@ -/* Copyright (c) 2013, Sam Tuke, - This file is licensed under the Affero General Public License version 3 or later. - See the COPYING-README file. */ - -#encryptAllError -, #encryptAllSuccess -, #recoveryEnabledError -, #recoveryEnabledSuccess { - display: none; -} diff --git a/apps/files_encryption/exception/encryptionexception.php b/apps/files_encryption/exception/encryptionexception.php deleted file mode 100644 index 637103f5651..00000000000 --- a/apps/files_encryption/exception/encryptionexception.php +++ /dev/null @@ -1,50 +0,0 @@ - - * @author Joas Schilling - * @author Morris Jobke - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Exception; - -/** - * Base class for all encryption exception - * - * Possible Error Codes: - * 10 - generic error - * 20 - unexpected end of encryption header - * 30 - unexpected blog size - * 40 - encryption header to large - * 50 - unknown cipher - * 60 - encryption failed - * 70 - decryption failed - * 80 - empty data - * 90 - private key missing - */ -class EncryptionException extends \Exception { - const GENERIC = 10; - const UNEXPECTED_END_OF_ENCRYPTION_HEADER = 20; - const UNEXPECTED_BLOCK_SIZE = 30; - const ENCRYPTION_HEADER_TO_LARGE = 40; - const UNKNOWN_CIPHER = 50; - const ENCRYPTION_FAILED = 60; - const DECRYPTION_FAILED = 70; - const EMPTY_DATA = 80; - const PRIVATE_KEY_MISSING = 90; -} diff --git a/apps/files_encryption/exception/multikeydecryptexception.php b/apps/files_encryption/exception/multikeydecryptexception.php deleted file mode 100644 index a75bd663dc6..00000000000 --- a/apps/files_encryption/exception/multikeydecryptexception.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @author Joas Schilling - * @author Morris Jobke - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Exception; - -/** - * Throw this encryption if multi key decryption failed - * - * Possible error codes: - * 110 - openssl_open failed - */ -class MultiKeyDecryptException extends EncryptionException { - const OPENSSL_OPEN_FAILED = 110; -} diff --git a/apps/files_encryption/exception/multikeyencryptexception.php b/apps/files_encryption/exception/multikeyencryptexception.php deleted file mode 100644 index 3b485a33982..00000000000 --- a/apps/files_encryption/exception/multikeyencryptexception.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @author Joas Schilling - * @author Morris Jobke - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Exception; - -/** - * Throw this exception if multi key encrytion fails - * - * Possible error codes: - * 110 - openssl_seal failed - */ -class MultiKeyEncryptException extends EncryptionException { - const OPENSSL_SEAL_FAILED = 110; -} diff --git a/apps/files_encryption/files/error.php b/apps/files_encryption/files/error.php deleted file mode 100644 index 6976c9ff6cd..00000000000 --- a/apps/files_encryption/files/error.php +++ /dev/null @@ -1,75 +0,0 @@ - - * @author Joas Schilling - * @author Lukas Reschke - * @author Morris Jobke - * @author Robin Appelman - * @author Thomas Müller - * @author Volkan Gezer - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ -if (!isset($_)) { //also provide standalone error page - require_once __DIR__ . '/../../../lib/base.php'; - require_once __DIR__ . '/../lib/crypt.php'; - - OC_JSON::checkAppEnabled('files_encryption'); - OC_App::loadApp('files_encryption'); - - $l = \OC::$server->getL10N('files_encryption'); - - if (isset($_GET['errorCode'])) { - $errorCode = $_GET['errorCode']; - switch ($errorCode) { - case \OCA\Files_Encryption\Crypt::ENCRYPTION_NOT_INITIALIZED_ERROR: - $errorMsg = $l->t('Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app.'); - break; - case \OCA\Files_Encryption\Crypt::ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR: - $theme = new OC_Defaults(); - $errorMsg = $l->t('Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.', array($theme->getName())); - break; - case \OCA\Files_Encryption\Crypt::ENCRYPTION_NO_SHARE_KEY_FOUND: - $errorMsg = $l->t('Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.'); - break; - default: - $errorMsg = $l->t("Unknown error. Please check your system settings or contact your administrator"); - break; - } - } else { - $errorCode = \OCA\Files_Encryption\Crypt::ENCRYPTION_UNKNOWN_ERROR; - $errorMsg = $l->t("Unknown error. Please check your system settings or contact your administrator"); - } - - if (isset($_GET['p']) && $_GET['p'] === '1') { - header('HTTP/1.0 403 ' . $errorMsg); - } - -// check if ajax request - if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { - \OCP\JSON::error(array('data' => array('message' => $errorMsg))); - } else { - header('HTTP/1.0 403 ' . $errorMsg); - $tmpl = new OC_Template('files_encryption', 'invalid_private_key', 'guest'); - $tmpl->assign('message', $errorMsg); - $tmpl->assign('errorCode', $errorCode); - $tmpl->printPage(); - } - - exit; -} - diff --git a/apps/files_encryption/img/app.svg b/apps/files_encryption/img/app.svg deleted file mode 100644 index 1157c71c66e..00000000000 --- a/apps/files_encryption/img/app.svg +++ /dev/null @@ -1,51 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/apps/files_encryption/js/detect-migration.js b/apps/files_encryption/js/detect-migration.js deleted file mode 100644 index f5627edf4e4..00000000000 --- a/apps/files_encryption/js/detect-migration.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (c) 2013 - * Bjoern Schiessle - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - - -$(document).ready(function(){ - $('form[name="login"]').on('submit', function() { - var user = $('#user').val(); - var password = $('#password').val(); - $.ajax({ - type: 'POST', - url: OC.linkTo('files_encryption', 'ajax/getMigrationStatus.php'), - dataType: 'json', - data: {user: user, password: password}, - async: false, - success: function(response) { - if (response.data.migrationStatus === OC.Encryption.MIGRATION_OPEN) { - var message = t('files_encryption', 'Initial encryption started... This can take some time. Please wait.'); - $('#messageText').text(message); - $('#message').removeClass('hidden').addClass('update'); - } else if (response.data.migrationStatus === OC.Encryption.MIGRATION_IN_PROGRESS) { - var message = t('files_encryption', 'Initial encryption running... Please try again later.'); - $('#messageText').text(message); - $('#message').removeClass('hidden').addClass('update'); - } - } - }); - }); - -}); diff --git a/apps/files_encryption/js/encryption.js b/apps/files_encryption/js/encryption.js deleted file mode 100644 index d2d1c3a1fc5..00000000000 --- a/apps/files_encryption/js/encryption.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) 2014 - * Bjoern Schiessle - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -/** - * @namespace - * @memberOf OC - */ -OC.Encryption={ - MIGRATION_OPEN:0, - MIGRATION_COMPLETED:1, - MIGRATION_IN_PROGRESS:-1, -}; diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js deleted file mode 100644 index 2242c1f7124..00000000000 --- a/apps/files_encryption/js/settings-admin.js +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (c) 2013 - * Sam Tuke - * Robin Appelman - * Bjoern Schiessle - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -$(document).ready(function(){ - - $( 'input:radio[name="adminEnableRecovery"]' ).change( - function() { - var recoveryStatus = $( this ).val(); - var oldStatus = (1+parseInt(recoveryStatus)) % 2; - var recoveryPassword = $( '#encryptionRecoveryPassword' ).val(); - var confirmPassword = $( '#repeatEncryptionRecoveryPassword' ).val(); - OC.msg.startSaving('#encryptionSetRecoveryKey .msg'); - $.post( - OC.filePath( 'files_encryption', 'ajax', 'adminrecovery.php' ) - , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword, confirmPassword: confirmPassword } - , function( result ) { - OC.msg.finishedSaving('#encryptionSetRecoveryKey .msg', result); - if (result.status === "error") { - $('input:radio[name="adminEnableRecovery"][value="'+oldStatus.toString()+'"]').attr("checked", "true"); - } else { - if (recoveryStatus === "0") { - $('p[name="changeRecoveryPasswordBlock"]').addClass("hidden"); - } else { - $('input:password[name="changeRecoveryPassword"]').val(""); - $('p[name="changeRecoveryPasswordBlock"]').removeClass("hidden"); - } - } - } - ); - } - ); - - // change recovery password - - $('button:button[name="submitChangeRecoveryKey"]').click(function() { - var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val(); - var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val(); - var confirmNewPassword = $('#repeatedNewEncryptionRecoveryPassword').val(); - OC.msg.startSaving('#encryptionChangeRecoveryKey .msg'); - $.post( - OC.filePath( 'files_encryption', 'ajax', 'changeRecoveryPassword.php' ) - , { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword, confirmPassword: confirmNewPassword } - , function( data ) { - OC.msg.finishedSaving('#encryptionChangeRecoveryKey .msg', data); - } - ); - }); - -}); diff --git a/apps/files_encryption/js/settings-personal.js b/apps/files_encryption/js/settings-personal.js deleted file mode 100644 index b798ba7e4e1..00000000000 --- a/apps/files_encryption/js/settings-personal.js +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright (c) 2013, Sam Tuke - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -function updatePrivateKeyPasswd() { - var oldPrivateKeyPassword = $('input:password[id="oldPrivateKeyPassword"]').val(); - var newPrivateKeyPassword = $('input:password[id="newPrivateKeyPassword"]').val(); - OC.msg.startSaving('#encryption .msg'); - $.post( - OC.filePath( 'files_encryption', 'ajax', 'updatePrivateKeyPassword.php' ) - , { oldPassword: oldPrivateKeyPassword, newPassword: newPrivateKeyPassword } - , function( data ) { - if (data.status === "error") { - OC.msg.finishedSaving('#encryption .msg', data); - } else { - OC.msg.finishedSaving('#encryption .msg', data); - } - } - ); -} - -$(document).ready(function(){ - - // Trigger ajax on recoveryAdmin status change - $( 'input:radio[name="userEnableRecovery"]' ).change( - function() { - var recoveryStatus = $( this ).val(); - OC.msg.startAction('#userEnableRecovery .msg', 'Updating recovery keys. This can take some time...'); - $.post( - OC.filePath( 'files_encryption', 'ajax', 'userrecovery.php' ) - , { userEnableRecovery: recoveryStatus } - , function( data ) { - OC.msg.finishedAction('#userEnableRecovery .msg', data); - } - ); - // Ensure page is not reloaded on form submit - return false; - } - ); - - $("#encryptAll").click( - function(){ - - // Hide feedback messages in case they're already visible - $('#encryptAllSuccess').hide(); - $('#encryptAllError').hide(); - - var userPassword = $( '#userPassword' ).val(); - var encryptAll = $( '#encryptAll' ).val(); - - $.post( - OC.filePath( 'files_encryption', 'ajax', 'encryptall.php' ) - , { encryptAll: encryptAll, userPassword: userPassword } - , function( data ) { - if ( data.status == "success" ) { - $('#encryptAllSuccess').show(); - } else { - $('#encryptAllError').show(); - } - } - ); - // Ensure page is not reloaded on form submit - return false; - } - - ); - - // update private key password - - $('input:password[name="changePrivateKeyPassword"]').keyup(function(event) { - var oldPrivateKeyPassword = $('input:password[id="oldPrivateKeyPassword"]').val(); - var newPrivateKeyPassword = $('input:password[id="newPrivateKeyPassword"]').val(); - if (newPrivateKeyPassword !== '' && oldPrivateKeyPassword !== '' ) { - $('button:button[name="submitChangePrivateKeyPassword"]').removeAttr("disabled"); - if(event.which === 13) { - updatePrivateKeyPasswd(); - } - } else { - $('button:button[name="submitChangePrivateKeyPassword"]').attr("disabled", "true"); - } - }); - - $('button:button[name="submitChangePrivateKeyPassword"]').click(function() { - updatePrivateKeyPasswd(); - }); - -}); diff --git a/apps/files_encryption/l10n/.gitkeep b/apps/files_encryption/l10n/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/apps/files_encryption/l10n/ar.js b/apps/files_encryption/l10n/ar.js deleted file mode 100644 index 88b1750cc0d..00000000000 --- a/apps/files_encryption/l10n/ar.js +++ /dev/null @@ -1,40 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "خطأ غير معروف. ", - "Recovery key successfully enabled" : "تم بنجاح تفعيل مفتاح الاستعادة", - "Could not disable recovery key. Please check your recovery key password!" : "لا يمكن تعطيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!", - "Recovery key successfully disabled" : "تم تعطيل مفتاح الاستعادة بنجاح", - "Password successfully changed." : "تم تغيير كلمة المرور بنجاح.", - "Could not change the password. Maybe the old password was not correct." : "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.", - "Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.", - "File recovery settings updated" : "اعدادات ملف الاستعادة تم تحديثه", - "Could not update file recovery" : "تعذر تحديث ملف الاستعادة", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "برنامج التشفير لم يتم تهيئتة ! من الممكن ان برنامج التشفير تم اعادة تفعيلة خلال الجلسة. يرجى تسجيل الخروج ومن ثم تسجيل الدخول مجددا لتهيئة برنامج التشفير.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "مفتاحك الخاص غير صالح! ربما تم تغيير كلمة المرور خارج %s (مثل:مجلد شركتك). يمكنك تحديث كلمة المرور في الاعدادات الشخصية لإستعادة الوصول الى ملفاتك المشفرة.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.", - "Unknown error. Please check your system settings or contact your administrator" : "خطأ غير معروف, الرجاء التحقق من إعدادات نظامك أو راسل المدير", - "Initial encryption started... This can take some time. Please wait." : "بدأ التشفير... من الممكن ان ياخذ بعض الوقت. يرجى الانتظار.", - "Initial encryption running... Please try again later." : "جاري تفعيل التشفير المبدئي ، الرجاء المحاولة لاحقا", - "Missing requirements." : "متطلبات ناقصة.", - "Following users are not set up for encryption:" : "المستخدمين التاليين لم يتم تعيين لهم التشفيير:", - "Go directly to your %spersonal settings%s." : " .%spersonal settings%s إنتقل مباشرة إلى ", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", - "Enable recovery key (allow to recover users files in case of password loss):" : "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):", - "Recovery key password" : "استعادة كلمة مرور المفتاح", - "Repeat Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح", - "Enabled" : "مفعلة", - "Disabled" : "معطلة", - "Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:", - "Old Recovery key password" : "كلمة المرور القديمة لـ استعامة المفتاح", - "New Recovery key password" : "تعيين كلمة مرور جديدة لـ استعادة المفتاح", - "Repeat New Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح من جديد", - "Change Password" : "عدل كلمة السر", - " If you don't remember your old password you can ask your administrator to recover your files." : "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.", - "Old log-in password" : "كلمة المرور القديمة الخاصة بالدخول", - "Current log-in password" : "كلمة المرور الحالية الخاصة بالدخول", - "Update Private Key Password" : "تحديث كلمة المرور لـ المفتاح الخاص", - "Enable password recovery:" : "تفعيل استعادة كلمة المرور:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور" -}, -"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/files_encryption/l10n/ar.json b/apps/files_encryption/l10n/ar.json deleted file mode 100644 index ef8d71a0b1f..00000000000 --- a/apps/files_encryption/l10n/ar.json +++ /dev/null @@ -1,38 +0,0 @@ -{ "translations": { - "Unknown error" : "خطأ غير معروف. ", - "Recovery key successfully enabled" : "تم بنجاح تفعيل مفتاح الاستعادة", - "Could not disable recovery key. Please check your recovery key password!" : "لا يمكن تعطيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!", - "Recovery key successfully disabled" : "تم تعطيل مفتاح الاستعادة بنجاح", - "Password successfully changed." : "تم تغيير كلمة المرور بنجاح.", - "Could not change the password. Maybe the old password was not correct." : "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.", - "Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.", - "File recovery settings updated" : "اعدادات ملف الاستعادة تم تحديثه", - "Could not update file recovery" : "تعذر تحديث ملف الاستعادة", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "برنامج التشفير لم يتم تهيئتة ! من الممكن ان برنامج التشفير تم اعادة تفعيلة خلال الجلسة. يرجى تسجيل الخروج ومن ثم تسجيل الدخول مجددا لتهيئة برنامج التشفير.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "مفتاحك الخاص غير صالح! ربما تم تغيير كلمة المرور خارج %s (مثل:مجلد شركتك). يمكنك تحديث كلمة المرور في الاعدادات الشخصية لإستعادة الوصول الى ملفاتك المشفرة.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.", - "Unknown error. Please check your system settings or contact your administrator" : "خطأ غير معروف, الرجاء التحقق من إعدادات نظامك أو راسل المدير", - "Initial encryption started... This can take some time. Please wait." : "بدأ التشفير... من الممكن ان ياخذ بعض الوقت. يرجى الانتظار.", - "Initial encryption running... Please try again later." : "جاري تفعيل التشفير المبدئي ، الرجاء المحاولة لاحقا", - "Missing requirements." : "متطلبات ناقصة.", - "Following users are not set up for encryption:" : "المستخدمين التاليين لم يتم تعيين لهم التشفيير:", - "Go directly to your %spersonal settings%s." : " .%spersonal settings%s إنتقل مباشرة إلى ", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", - "Enable recovery key (allow to recover users files in case of password loss):" : "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):", - "Recovery key password" : "استعادة كلمة مرور المفتاح", - "Repeat Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح", - "Enabled" : "مفعلة", - "Disabled" : "معطلة", - "Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:", - "Old Recovery key password" : "كلمة المرور القديمة لـ استعامة المفتاح", - "New Recovery key password" : "تعيين كلمة مرور جديدة لـ استعادة المفتاح", - "Repeat New Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح من جديد", - "Change Password" : "عدل كلمة السر", - " If you don't remember your old password you can ask your administrator to recover your files." : "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.", - "Old log-in password" : "كلمة المرور القديمة الخاصة بالدخول", - "Current log-in password" : "كلمة المرور الحالية الخاصة بالدخول", - "Update Private Key Password" : "تحديث كلمة المرور لـ المفتاح الخاص", - "Enable password recovery:" : "تفعيل استعادة كلمة المرور:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور" -},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ast.js b/apps/files_encryption/l10n/ast.js deleted file mode 100644 index 724f4fb0c1c..00000000000 --- a/apps/files_encryption/l10n/ast.js +++ /dev/null @@ -1,41 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Fallu desconocíu", - "Recovery key successfully enabled" : "Habilitóse la recuperación de ficheros", - "Could not disable recovery key. Please check your recovery key password!" : "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!", - "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", - "Password successfully changed." : "Camudóse la contraseña", - "Could not change the password. Maybe the old password was not correct." : "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.", - "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.", - "File recovery settings updated" : "Opciones de recuperación de ficheros anovada", - "Could not update file recovery" : "Nun pudo anovase la recuperación de ficheros", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡L'aplicación de cifráu nun s'anició! Seique se restableciera mentanto la sesión. Por favor intenta zarrar la sesión y volver a aniciala p'aniciar l'aplicación de cifráu.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡La clave privada nun ye válida! Seique la contraseña se camudase dende fuera de %s (Ex:El to direutoriu corporativu). Pues anovar la contraseña de la clave privada nes tos opciones personales pa recuperar l'accesu a los ficheros.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.", - "Unknown error. Please check your system settings or contact your administrator" : "Fallu desconocíu. Por favor, comprueba los axustes del sistema o contauta col alministrador", - "Initial encryption started... This can take some time. Please wait." : "Cifráu aniciáu..... Esto pue llevar un tiempu. Por favor espera.", - "Initial encryption running... Please try again later." : "Cifráu inicial en cursu... Inténtalo dempués.", - "Missing requirements." : "Requisitos incompletos.", - "Following users are not set up for encryption:" : "Los siguientes usuarios nun se configuraron pal cifráu:", - "Go directly to your %spersonal settings%s." : "Dir direutamente a los tos %saxustes personales%s.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);", - "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repeti la contraseña de clave de recuperación", - "Enabled" : "Habilitar", - "Disabled" : "Deshabilitáu", - "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Clave de recuperación vieya", - "New Recovery key password" : "Clave de recuperación nueva", - "Repeat New Recovery key password" : "Repetir la clave de recuperación nueva", - "Change Password" : "Camudar contraseña", - "Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.", - "Old log-in password" : "Contraseña d'accesu vieya", - "Current log-in password" : "Contraseña d'accesu actual", - "Update Private Key Password" : "Anovar Contraseña de Clave Privada", - "Enable password recovery:" : "Habilitar la recuperación de contraseña:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ast.json b/apps/files_encryption/l10n/ast.json deleted file mode 100644 index 407c27dfe7e..00000000000 --- a/apps/files_encryption/l10n/ast.json +++ /dev/null @@ -1,39 +0,0 @@ -{ "translations": { - "Unknown error" : "Fallu desconocíu", - "Recovery key successfully enabled" : "Habilitóse la recuperación de ficheros", - "Could not disable recovery key. Please check your recovery key password!" : "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!", - "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", - "Password successfully changed." : "Camudóse la contraseña", - "Could not change the password. Maybe the old password was not correct." : "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.", - "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.", - "File recovery settings updated" : "Opciones de recuperación de ficheros anovada", - "Could not update file recovery" : "Nun pudo anovase la recuperación de ficheros", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡L'aplicación de cifráu nun s'anició! Seique se restableciera mentanto la sesión. Por favor intenta zarrar la sesión y volver a aniciala p'aniciar l'aplicación de cifráu.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡La clave privada nun ye válida! Seique la contraseña se camudase dende fuera de %s (Ex:El to direutoriu corporativu). Pues anovar la contraseña de la clave privada nes tos opciones personales pa recuperar l'accesu a los ficheros.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.", - "Unknown error. Please check your system settings or contact your administrator" : "Fallu desconocíu. Por favor, comprueba los axustes del sistema o contauta col alministrador", - "Initial encryption started... This can take some time. Please wait." : "Cifráu aniciáu..... Esto pue llevar un tiempu. Por favor espera.", - "Initial encryption running... Please try again later." : "Cifráu inicial en cursu... Inténtalo dempués.", - "Missing requirements." : "Requisitos incompletos.", - "Following users are not set up for encryption:" : "Los siguientes usuarios nun se configuraron pal cifráu:", - "Go directly to your %spersonal settings%s." : "Dir direutamente a los tos %saxustes personales%s.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);", - "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repeti la contraseña de clave de recuperación", - "Enabled" : "Habilitar", - "Disabled" : "Deshabilitáu", - "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Clave de recuperación vieya", - "New Recovery key password" : "Clave de recuperación nueva", - "Repeat New Recovery key password" : "Repetir la clave de recuperación nueva", - "Change Password" : "Camudar contraseña", - "Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.", - "Old log-in password" : "Contraseña d'accesu vieya", - "Current log-in password" : "Contraseña d'accesu actual", - "Update Private Key Password" : "Anovar Contraseña de Clave Privada", - "Enable password recovery:" : "Habilitar la recuperación de contraseña:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/az.js b/apps/files_encryption/l10n/az.js deleted file mode 100644 index d6d243d165b..00000000000 --- a/apps/files_encryption/l10n/az.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Bəlli olmayan səhv baş verdi", - "Missing recovery key password" : "Bərpa açarının şifrəsi çatışmır", - "Please repeat the recovery key password" : "Xahiş olunur bərpa açarı şifrəsini təkrarlayasınız", - "Repeated recovery key password does not match the provided recovery key password" : "Təkrar daxil edilən bərpa açarı şifrəsi, öncə daxil edilən bərpa açarı ilə üst-üstə düşmür ", - "Recovery key successfully enabled" : "Bərpa açarı uğurla aktivləşdi", - "Could not disable recovery key. Please check your recovery key password!" : "Geriqaytarılma açarını sondürmək olmur. Xahiş edirik geriqaytarılma key açarınızı yoxlayın.", - "Recovery key successfully disabled" : "Bərpa açarı uğurla söndürüldü", - "Please provide the old recovery password" : "Xahiş olunur köhnə bərpa açarını daxil edəsiniz", - "Please provide a new recovery password" : "Xahiş olunur yeni bərpa açarı şifrəsini daxil esəsiniz", - "Please repeat the new recovery password" : "Xahiş olunur yeni bərpa açarını təkrarlayasınız", - "Password successfully changed." : "Şifrə uğurla dəyişdirildi.", - "Could not change the password. Maybe the old password was not correct." : "Şifrəni dəyişmək olmur, ola bilər ki, köhnə şifrə düzgün olmayıb.", - "Could not update the private key password." : "Gizli açarın şifrəsini yeniləmək mümkün olmadı.", - "The old password was not correct, please try again." : "Köhnə şifrə düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.", - "The current log-in password was not correct, please try again." : "Hal-hazırki istifadəçi şifrəsi düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.", - "Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.", - "File recovery settings updated" : "Fayl bərpa quraşdırmaları yeniləndi", - "Could not update file recovery" : "Fayl bərpasını yeniləmək olmur", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Şifrələmə proqramı inisializasiya edilməyib! Ola bilər ki, şifrələnmə proqramı sizin sessiya müddətində yenidən işə salınıb. Xahiş olunur çıxıb yenidən girişə cəhd edəsiniz ki, şifrələnmə proqramı sizin istifadəçı adı üçün təkrar inisializasiya edilsin. ", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sizin gizli açarınız doğru deyil! Təxmin edilir ki, sizin şifrə %s-dən kənarda dəyişdirilib(misal üçün sizin koorporativ qovluq). Siz öz şifrələnmiş fayllarınıza yetkinizi bərpa etmək üçün, öz şifrənizi şəxsi quraşdırmalarınızda yeniləyə bilərsiniz.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu faylı deşifrə etmək olmur və ola bilər ki, bu paylaşımda olan fayldır. Xahiş olunur faylın sahibinə həmin faylı sizinlə yenidən paylaşım etməsini bildirəsiniz. ", - "Unknown error. Please check your system settings or contact your administrator" : "Tanınmayan səhv. Xahiş olunur sistem quraşdırmalarınızı yoxlayın yada öz inzibatçınızla əlaqə yaradın", - "Initial encryption started... This can take some time. Please wait." : "İlkin şifələnmə başlandı... Bu müəyyən vaxt ala bilər. Xahiş olunur gözləyəsiniz.", - "Initial encryption running... Please try again later." : "İlkin şifrələnmə işləyir... Xahiş olunur birazdan yenidən müraciət edəsiniz.", - "Missing requirements." : "Taləbatlar çatışmır.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Xahiş olunur ki, PHP-in OpenSSL genişlənməsi yüklənib və düzgün konfiqurasiya edilib. İndiki hal üçün şifrələnmə proqramı dayandırılmışdır.", - "Following users are not set up for encryption:" : "Göstərilən istifadəçilər şifrələnmə üçün quraşdırılmayıb:", - "Go directly to your %spersonal settings%s." : "Birbaşa öz %sşəxsi quraşdırmalarınıza%s gedin.", - "Server-side Encryption" : "Server-tərəf şifrələnmə", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız", - "Enable recovery key (allow to recover users files in case of password loss):" : "Bərpa açarını aktivləşdir(şifrə itirilməsi hadısələrində, istifadəçi fayllarının bərpasına izin verir)", - "Recovery key password" : "Açar şifrənin bərpa edilməsi", - "Repeat Recovery key password" : "Bərpa açarın şifrəsini təkrar edin", - "Enabled" : "İşə salınıb", - "Disabled" : "Dayandırılıb", - "Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:", - "Old Recovery key password" : "Köhnə bərpa açarı şifrəsi", - "New Recovery key password" : "Yeni bərpa açarı şifrəsi", - "Repeat New Recovery key password" : "Yeni bərpa açarı şifrəsini təkrar edin", - "Change Password" : "Şifrəni dəyişdir", - "Your private key password no longer matches your log-in password." : "Sizin gizli açar şifrəsi, artıq giriş adınızla uyğun gəlmir.", - "Set your old private key password to your current log-in password:" : "Köhnə açar şifrənizi, sizin hal-hazırki giriş şifrənizə təyin edin: ", - " If you don't remember your old password you can ask your administrator to recover your files." : "Əgər siz köhnə şifrənizi xatırlamırsınızsa, öz inzibatçınızdan fayllarınızın bərpasını istəyə bilərsiniz.", - "Old log-in password" : "Köhnə giriş şifrəsi", - "Current log-in password" : "Hal-hazırki giriş şifrəsi", - "Update Private Key Password" : "Gizli açar şifrəsini yenilə", - "Enable password recovery:" : "Şifrə bərpasını işə sal:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu opsiyanın aktiv edilməsi sizə, şifrənin itdiyi hallarda bütün şifrələnmiş fayllarınıza yetkinin yenidən əldə edilməsinə şərait yaradacaq" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/az.json b/apps/files_encryption/l10n/az.json deleted file mode 100644 index 730e79a5084..00000000000 --- a/apps/files_encryption/l10n/az.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Bəlli olmayan səhv baş verdi", - "Missing recovery key password" : "Bərpa açarının şifrəsi çatışmır", - "Please repeat the recovery key password" : "Xahiş olunur bərpa açarı şifrəsini təkrarlayasınız", - "Repeated recovery key password does not match the provided recovery key password" : "Təkrar daxil edilən bərpa açarı şifrəsi, öncə daxil edilən bərpa açarı ilə üst-üstə düşmür ", - "Recovery key successfully enabled" : "Bərpa açarı uğurla aktivləşdi", - "Could not disable recovery key. Please check your recovery key password!" : "Geriqaytarılma açarını sondürmək olmur. Xahiş edirik geriqaytarılma key açarınızı yoxlayın.", - "Recovery key successfully disabled" : "Bərpa açarı uğurla söndürüldü", - "Please provide the old recovery password" : "Xahiş olunur köhnə bərpa açarını daxil edəsiniz", - "Please provide a new recovery password" : "Xahiş olunur yeni bərpa açarı şifrəsini daxil esəsiniz", - "Please repeat the new recovery password" : "Xahiş olunur yeni bərpa açarını təkrarlayasınız", - "Password successfully changed." : "Şifrə uğurla dəyişdirildi.", - "Could not change the password. Maybe the old password was not correct." : "Şifrəni dəyişmək olmur, ola bilər ki, köhnə şifrə düzgün olmayıb.", - "Could not update the private key password." : "Gizli açarın şifrəsini yeniləmək mümkün olmadı.", - "The old password was not correct, please try again." : "Köhnə şifrə düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.", - "The current log-in password was not correct, please try again." : "Hal-hazırki istifadəçi şifrəsi düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.", - "Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.", - "File recovery settings updated" : "Fayl bərpa quraşdırmaları yeniləndi", - "Could not update file recovery" : "Fayl bərpasını yeniləmək olmur", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Şifrələmə proqramı inisializasiya edilməyib! Ola bilər ki, şifrələnmə proqramı sizin sessiya müddətində yenidən işə salınıb. Xahiş olunur çıxıb yenidən girişə cəhd edəsiniz ki, şifrələnmə proqramı sizin istifadəçı adı üçün təkrar inisializasiya edilsin. ", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sizin gizli açarınız doğru deyil! Təxmin edilir ki, sizin şifrə %s-dən kənarda dəyişdirilib(misal üçün sizin koorporativ qovluq). Siz öz şifrələnmiş fayllarınıza yetkinizi bərpa etmək üçün, öz şifrənizi şəxsi quraşdırmalarınızda yeniləyə bilərsiniz.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu faylı deşifrə etmək olmur və ola bilər ki, bu paylaşımda olan fayldır. Xahiş olunur faylın sahibinə həmin faylı sizinlə yenidən paylaşım etməsini bildirəsiniz. ", - "Unknown error. Please check your system settings or contact your administrator" : "Tanınmayan səhv. Xahiş olunur sistem quraşdırmalarınızı yoxlayın yada öz inzibatçınızla əlaqə yaradın", - "Initial encryption started... This can take some time. Please wait." : "İlkin şifələnmə başlandı... Bu müəyyən vaxt ala bilər. Xahiş olunur gözləyəsiniz.", - "Initial encryption running... Please try again later." : "İlkin şifrələnmə işləyir... Xahiş olunur birazdan yenidən müraciət edəsiniz.", - "Missing requirements." : "Taləbatlar çatışmır.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Xahiş olunur ki, PHP-in OpenSSL genişlənməsi yüklənib və düzgün konfiqurasiya edilib. İndiki hal üçün şifrələnmə proqramı dayandırılmışdır.", - "Following users are not set up for encryption:" : "Göstərilən istifadəçilər şifrələnmə üçün quraşdırılmayıb:", - "Go directly to your %spersonal settings%s." : "Birbaşa öz %sşəxsi quraşdırmalarınıza%s gedin.", - "Server-side Encryption" : "Server-tərəf şifrələnmə", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız", - "Enable recovery key (allow to recover users files in case of password loss):" : "Bərpa açarını aktivləşdir(şifrə itirilməsi hadısələrində, istifadəçi fayllarının bərpasına izin verir)", - "Recovery key password" : "Açar şifrənin bərpa edilməsi", - "Repeat Recovery key password" : "Bərpa açarın şifrəsini təkrar edin", - "Enabled" : "İşə salınıb", - "Disabled" : "Dayandırılıb", - "Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:", - "Old Recovery key password" : "Köhnə bərpa açarı şifrəsi", - "New Recovery key password" : "Yeni bərpa açarı şifrəsi", - "Repeat New Recovery key password" : "Yeni bərpa açarı şifrəsini təkrar edin", - "Change Password" : "Şifrəni dəyişdir", - "Your private key password no longer matches your log-in password." : "Sizin gizli açar şifrəsi, artıq giriş adınızla uyğun gəlmir.", - "Set your old private key password to your current log-in password:" : "Köhnə açar şifrənizi, sizin hal-hazırki giriş şifrənizə təyin edin: ", - " If you don't remember your old password you can ask your administrator to recover your files." : "Əgər siz köhnə şifrənizi xatırlamırsınızsa, öz inzibatçınızdan fayllarınızın bərpasını istəyə bilərsiniz.", - "Old log-in password" : "Köhnə giriş şifrəsi", - "Current log-in password" : "Hal-hazırki giriş şifrəsi", - "Update Private Key Password" : "Gizli açar şifrəsini yenilə", - "Enable password recovery:" : "Şifrə bərpasını işə sal:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu opsiyanın aktiv edilməsi sizə, şifrənin itdiyi hallarda bütün şifrələnmiş fayllarınıza yetkinin yenidən əldə edilməsinə şərait yaradacaq" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/bg_BG.js b/apps/files_encryption/l10n/bg_BG.js deleted file mode 100644 index 6f5876c0654..00000000000 --- a/apps/files_encryption/l10n/bg_BG.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Непозната грешка.", - "Missing recovery key password" : "Липсва парола за възстановяване", - "Please repeat the recovery key password" : "Повтори новата парола за възстановяване", - "Repeated recovery key password does not match the provided recovery key password" : "Повторената парола за възстановяване не съвпада със зададената парола за възстановяване", - "Recovery key successfully enabled" : "Успешно включване на опцията ключ за възстановяване.", - "Could not disable recovery key. Please check your recovery key password!" : "Неуспешно изключване на ключа за възстановяване. Моля, провери паролата за ключа за възстановяване!", - "Recovery key successfully disabled" : "Успешно изключване на ключа за възстановяване.", - "Please provide the old recovery password" : "Моля, въведи старата парола за възстановяване", - "Please provide a new recovery password" : "Моля, задай нова парола за възстановяване", - "Please repeat the new recovery password" : "Моля, въведи повторна новата парола за възстановяване", - "Password successfully changed." : "Паролата е успешно променена.", - "Could not change the password. Maybe the old password was not correct." : "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.", - "Could not update the private key password." : "Неуспешна промяна на паролата на личния ключ", - "The old password was not correct, please try again." : "Старата парола е грешна, опитай отново.", - "The current log-in password was not correct, please try again." : "Грешна парола за вписване, опитай отново.", - "Private key password successfully updated." : "Успешно променена тайната парола за ключа.", - "File recovery settings updated" : "Настройките за възстановяване на файлове са променени.", - "Could not update file recovery" : "Неуспешна промяна на настройките за възстановяване на файлове.", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Неуспешна инициализация на криптиращото приложение! Може би криптиращото приложение бе включено по време на твоята сесия. Отпиши се и се впиши обратно за да инциализираш криптиращото приложение.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Твоят таен ключ е невалиден! Вероятно твоята парола беше променена извън %s(пр. твоята корпоративна директория). Можеш да промениш своят таен ключ в Лични настройки, за да възстановиш достъпа до криптираните файлове.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.", - "Unknown error. Please check your system settings or contact your administrator" : "Непозната грешка. Моля, провери системните настройки или се свържи с администратора.", - "Initial encryption started... This can take some time. Please wait." : "Първоначалното криптиране започна... Това може да отнеме време. Моля изчакай.", - "Initial encryption running... Please try again later." : "Тече първоначално криптиране... Моля опитай по-късно.", - "Missing requirements." : "Липсва задължителна информация.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Моля уверете се че OpenSSL заедно с PHP разширене са включени и конфигурирани правилно. За сега, криптиращото приложение е изключено.", - "Following users are not set up for encryption:" : "Следните потребители не са настроени за криптиране:", - "Go directly to your %spersonal settings%s." : "Отиде направо към твоите %sлични настройки%s.", - "Server-side Encryption" : "Криптиране от страна на сървъра", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):", - "Recovery key password" : "Парола за възстановяане на ключа", - "Repeat Recovery key password" : "Повтори паролата за възстановяване на ключа", - "Enabled" : "Включено", - "Disabled" : "Изключено", - "Change recovery key password:" : "Промени паролата за въстановяване на ключа:", - "Old Recovery key password" : "Старата парола за въстановяване на ключа", - "New Recovery key password" : "Новата парола за възстановяване на ключа", - "Repeat New Recovery key password" : "Повтори новата паролза за възстановяване на ключа", - "Change Password" : "Промени Паролата", - "Your private key password no longer matches your log-in password." : "Личният ти ключ не съвпада с паролата за вписване.", - "Set your old private key password to your current log-in password:" : "Промени паролата за тайния ти включ на паролата за вписване:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ако не помниш старата парола помоли администратора да възстанови файловете ти.", - "Old log-in password" : "Стара парола за вписване", - "Current log-in password" : "Текуща парола за вписване", - "Update Private Key Password" : "Промени Тайната Парола за Ключа", - "Enable password recovery:" : "Включи опцията възстановяване на паролата:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола." -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/bg_BG.json b/apps/files_encryption/l10n/bg_BG.json deleted file mode 100644 index 055c434d229..00000000000 --- a/apps/files_encryption/l10n/bg_BG.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Непозната грешка.", - "Missing recovery key password" : "Липсва парола за възстановяване", - "Please repeat the recovery key password" : "Повтори новата парола за възстановяване", - "Repeated recovery key password does not match the provided recovery key password" : "Повторената парола за възстановяване не съвпада със зададената парола за възстановяване", - "Recovery key successfully enabled" : "Успешно включване на опцията ключ за възстановяване.", - "Could not disable recovery key. Please check your recovery key password!" : "Неуспешно изключване на ключа за възстановяване. Моля, провери паролата за ключа за възстановяване!", - "Recovery key successfully disabled" : "Успешно изключване на ключа за възстановяване.", - "Please provide the old recovery password" : "Моля, въведи старата парола за възстановяване", - "Please provide a new recovery password" : "Моля, задай нова парола за възстановяване", - "Please repeat the new recovery password" : "Моля, въведи повторна новата парола за възстановяване", - "Password successfully changed." : "Паролата е успешно променена.", - "Could not change the password. Maybe the old password was not correct." : "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.", - "Could not update the private key password." : "Неуспешна промяна на паролата на личния ключ", - "The old password was not correct, please try again." : "Старата парола е грешна, опитай отново.", - "The current log-in password was not correct, please try again." : "Грешна парола за вписване, опитай отново.", - "Private key password successfully updated." : "Успешно променена тайната парола за ключа.", - "File recovery settings updated" : "Настройките за възстановяване на файлове са променени.", - "Could not update file recovery" : "Неуспешна промяна на настройките за възстановяване на файлове.", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Неуспешна инициализация на криптиращото приложение! Може би криптиращото приложение бе включено по време на твоята сесия. Отпиши се и се впиши обратно за да инциализираш криптиращото приложение.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Твоят таен ключ е невалиден! Вероятно твоята парола беше променена извън %s(пр. твоята корпоративна директория). Можеш да промениш своят таен ключ в Лични настройки, за да възстановиш достъпа до криптираните файлове.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.", - "Unknown error. Please check your system settings or contact your administrator" : "Непозната грешка. Моля, провери системните настройки или се свържи с администратора.", - "Initial encryption started... This can take some time. Please wait." : "Първоначалното криптиране започна... Това може да отнеме време. Моля изчакай.", - "Initial encryption running... Please try again later." : "Тече първоначално криптиране... Моля опитай по-късно.", - "Missing requirements." : "Липсва задължителна информация.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Моля уверете се че OpenSSL заедно с PHP разширене са включени и конфигурирани правилно. За сега, криптиращото приложение е изключено.", - "Following users are not set up for encryption:" : "Следните потребители не са настроени за криптиране:", - "Go directly to your %spersonal settings%s." : "Отиде направо към твоите %sлични настройки%s.", - "Server-side Encryption" : "Криптиране от страна на сървъра", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):", - "Recovery key password" : "Парола за възстановяане на ключа", - "Repeat Recovery key password" : "Повтори паролата за възстановяване на ключа", - "Enabled" : "Включено", - "Disabled" : "Изключено", - "Change recovery key password:" : "Промени паролата за въстановяване на ключа:", - "Old Recovery key password" : "Старата парола за въстановяване на ключа", - "New Recovery key password" : "Новата парола за възстановяване на ключа", - "Repeat New Recovery key password" : "Повтори новата паролза за възстановяване на ключа", - "Change Password" : "Промени Паролата", - "Your private key password no longer matches your log-in password." : "Личният ти ключ не съвпада с паролата за вписване.", - "Set your old private key password to your current log-in password:" : "Промени паролата за тайния ти включ на паролата за вписване:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ако не помниш старата парола помоли администратора да възстанови файловете ти.", - "Old log-in password" : "Стара парола за вписване", - "Current log-in password" : "Текуща парола за вписване", - "Update Private Key Password" : "Промени Тайната Парола за Ключа", - "Enable password recovery:" : "Включи опцията възстановяване на паролата:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола." -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/bn_BD.js b/apps/files_encryption/l10n/bn_BD.js deleted file mode 100644 index 2a1446e5723..00000000000 --- a/apps/files_encryption/l10n/bn_BD.js +++ /dev/null @@ -1,22 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "অজানা জটিলতা", - "Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে", - "Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে", - "Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ", - "Initial encryption started... This can take some time. Please wait." : "প্রাথমিক এনক্রিপসন শুরু হয়েছে.... এটি কিছুটা সময় নিতে পারে। অপেক্ষা করুন।", - "Initial encryption running... Please try again later." : "প্রাথমিক এনক্রিপসন চলছে.... দয়া করে পরে আবার চেষ্টা করুন।", - "Missing requirements." : "প্রয়োজনানুযায়ী ঘাটতি আছে।", - "Following users are not set up for encryption:" : "নিম্নবর্ণিত ব্যবহারকারীগণ এনক্রিপসনের জন্য অধিকারপ্রাপ্ত নন:", - "Go directly to your %spersonal settings%s." : "সরাসরি আপনার %spersonal settings%s এ যান।", - "Repeat Recovery key password" : "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন", - "Enabled" : "কার্যকর", - "Disabled" : "অকার্যকর", - "Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:", - "Old Recovery key password" : "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ", - "New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ", - "Repeat New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন", - "Change Password" : "কূটশব্দ পরিবর্তন করুন" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/bn_BD.json b/apps/files_encryption/l10n/bn_BD.json deleted file mode 100644 index 9c2eca6591a..00000000000 --- a/apps/files_encryption/l10n/bn_BD.json +++ /dev/null @@ -1,20 +0,0 @@ -{ "translations": { - "Unknown error" : "অজানা জটিলতা", - "Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে", - "Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে", - "Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ", - "Initial encryption started... This can take some time. Please wait." : "প্রাথমিক এনক্রিপসন শুরু হয়েছে.... এটি কিছুটা সময় নিতে পারে। অপেক্ষা করুন।", - "Initial encryption running... Please try again later." : "প্রাথমিক এনক্রিপসন চলছে.... দয়া করে পরে আবার চেষ্টা করুন।", - "Missing requirements." : "প্রয়োজনানুযায়ী ঘাটতি আছে।", - "Following users are not set up for encryption:" : "নিম্নবর্ণিত ব্যবহারকারীগণ এনক্রিপসনের জন্য অধিকারপ্রাপ্ত নন:", - "Go directly to your %spersonal settings%s." : "সরাসরি আপনার %spersonal settings%s এ যান।", - "Repeat Recovery key password" : "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন", - "Enabled" : "কার্যকর", - "Disabled" : "অকার্যকর", - "Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:", - "Old Recovery key password" : "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ", - "New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ", - "Repeat New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন", - "Change Password" : "কূটশব্দ পরিবর্তন করুন" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/bs.js b/apps/files_encryption/l10n/bs.js deleted file mode 100644 index 7bf649dcb68..00000000000 --- a/apps/files_encryption/l10n/bs.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Nepoznata greška", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je uključena, ali vaši ključevi nisu inicializirani, molim odjavite se i ponovno prijavite", - "Enabled" : "Aktivirano", - "Disabled" : "Onemogućeno" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/bs.json b/apps/files_encryption/l10n/bs.json deleted file mode 100644 index df05ce3e24f..00000000000 --- a/apps/files_encryption/l10n/bs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Unknown error" : "Nepoznata greška", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je uključena, ali vaši ključevi nisu inicializirani, molim odjavite se i ponovno prijavite", - "Enabled" : "Aktivirano", - "Disabled" : "Onemogućeno" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ca.js b/apps/files_encryption/l10n/ca.js deleted file mode 100644 index 189fc653160..00000000000 --- a/apps/files_encryption/l10n/ca.js +++ /dev/null @@ -1,42 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Error desconegut", - "Recovery key successfully enabled" : "La clau de recuperació s'ha activat", - "Could not disable recovery key. Please check your recovery key password!" : "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!", - "Recovery key successfully disabled" : "La clau de recuperació s'ha descativat", - "Password successfully changed." : "La contrasenya s'ha canviat.", - "Could not change the password. Maybe the old password was not correct." : "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.", - "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.", - "File recovery settings updated" : "S'han actualitzat els arranjaments de recuperació de fitxers", - "Could not update file recovery" : "No s'ha pogut actualitzar la recuperació de fitxers", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'aplicació d'encriptació no està inicialitzada! Potser l'aplicació d'encriptació ha estat reiniciada durant la sessió. Intenteu sortir i acreditar-vos de nou per reinicialitzar l'aplicació d'encriptació.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada no és vàlida! Probablement la contrasenya va ser canviada des de fora de %s (per exemple, en el directori de l'empresa). Vostè pot actualitzar la contrasenya de clau privada en la seva configuració personal per poder recuperar l'accés en els arxius xifrats.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", - "Unknown error. Please check your system settings or contact your administrator" : "Error desconegut. Comproveu l'arranjament del sistema o aviseu a l'administrador", - "Initial encryption started... This can take some time. Please wait." : "La encriptació inicial ha començat... Pot trigar una estona, espereu.", - "Initial encryption running... Please try again later." : "encriptació inicial en procés... Proveu-ho més tard.", - "Missing requirements." : "Manca de requisits.", - "Following users are not set up for encryption:" : "Els usuaris següents no estan configurats per a l'encriptació:", - "Go directly to your %spersonal settings%s." : "Vés directament a l'%sarranjament personal%s.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):", - "Recovery key password" : "Clau de recuperació de la contrasenya", - "Repeat Recovery key password" : "Repetiu la clau de recuperació de contrasenya", - "Enabled" : "Activat", - "Disabled" : "Desactivat", - "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", - "Old Recovery key password" : "Antiga clau de recuperació de contrasenya", - "New Recovery key password" : "Nova clau de recuperació de contrasenya", - "Repeat New Recovery key password" : "Repetiu la nova clau de recuperació de contrasenya", - "Change Password" : "Canvia la contrasenya", - "Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:", - "Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recordeu la contrasenya anterior podeu demanar a l'administrador que recuperi els vostres fitxers.", - "Old log-in password" : "Contrasenya anterior d'accés", - "Current log-in password" : "Contrasenya d'accés actual", - "Update Private Key Password" : "Actualitza la contrasenya de clau privada", - "Enable password recovery:" : "Habilita la recuperació de contrasenya:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ca.json b/apps/files_encryption/l10n/ca.json deleted file mode 100644 index e3de02e1701..00000000000 --- a/apps/files_encryption/l10n/ca.json +++ /dev/null @@ -1,40 +0,0 @@ -{ "translations": { - "Unknown error" : "Error desconegut", - "Recovery key successfully enabled" : "La clau de recuperació s'ha activat", - "Could not disable recovery key. Please check your recovery key password!" : "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!", - "Recovery key successfully disabled" : "La clau de recuperació s'ha descativat", - "Password successfully changed." : "La contrasenya s'ha canviat.", - "Could not change the password. Maybe the old password was not correct." : "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.", - "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.", - "File recovery settings updated" : "S'han actualitzat els arranjaments de recuperació de fitxers", - "Could not update file recovery" : "No s'ha pogut actualitzar la recuperació de fitxers", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'aplicació d'encriptació no està inicialitzada! Potser l'aplicació d'encriptació ha estat reiniciada durant la sessió. Intenteu sortir i acreditar-vos de nou per reinicialitzar l'aplicació d'encriptació.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada no és vàlida! Probablement la contrasenya va ser canviada des de fora de %s (per exemple, en el directori de l'empresa). Vostè pot actualitzar la contrasenya de clau privada en la seva configuració personal per poder recuperar l'accés en els arxius xifrats.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", - "Unknown error. Please check your system settings or contact your administrator" : "Error desconegut. Comproveu l'arranjament del sistema o aviseu a l'administrador", - "Initial encryption started... This can take some time. Please wait." : "La encriptació inicial ha començat... Pot trigar una estona, espereu.", - "Initial encryption running... Please try again later." : "encriptació inicial en procés... Proveu-ho més tard.", - "Missing requirements." : "Manca de requisits.", - "Following users are not set up for encryption:" : "Els usuaris següents no estan configurats per a l'encriptació:", - "Go directly to your %spersonal settings%s." : "Vés directament a l'%sarranjament personal%s.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):", - "Recovery key password" : "Clau de recuperació de la contrasenya", - "Repeat Recovery key password" : "Repetiu la clau de recuperació de contrasenya", - "Enabled" : "Activat", - "Disabled" : "Desactivat", - "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", - "Old Recovery key password" : "Antiga clau de recuperació de contrasenya", - "New Recovery key password" : "Nova clau de recuperació de contrasenya", - "Repeat New Recovery key password" : "Repetiu la nova clau de recuperació de contrasenya", - "Change Password" : "Canvia la contrasenya", - "Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:", - "Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recordeu la contrasenya anterior podeu demanar a l'administrador que recuperi els vostres fitxers.", - "Old log-in password" : "Contrasenya anterior d'accés", - "Current log-in password" : "Contrasenya d'accés actual", - "Update Private Key Password" : "Actualitza la contrasenya de clau privada", - "Enable password recovery:" : "Habilita la recuperació de contrasenya:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/cs_CZ.js b/apps/files_encryption/l10n/cs_CZ.js deleted file mode 100644 index 42e14ca683f..00000000000 --- a/apps/files_encryption/l10n/cs_CZ.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Neznámá chyba", - "Missing recovery key password" : "Chybí heslo klíče pro obnovu", - "Please repeat the recovery key password" : "Zopakujte prosím heslo klíče pro obnovu", - "Repeated recovery key password does not match the provided recovery key password" : "Opakované heslo pro obnovu nesouhlasí se zadaným heslem", - "Recovery key successfully enabled" : "Záchranný klíč byl úspěšně povolen", - "Could not disable recovery key. Please check your recovery key password!" : "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo svého záchranného klíče!", - "Recovery key successfully disabled" : "Záchranný klíč byl úspěšně zakázán", - "Please provide the old recovery password" : "Zadejte prosím staré heslo pro obnovu", - "Please provide a new recovery password" : "Zadejte prosím nové heslo pro obnovu", - "Please repeat the new recovery password" : "Zopakujte prosím nové heslo pro obnovu", - "Password successfully changed." : "Heslo bylo úspěšně změněno.", - "Could not change the password. Maybe the old password was not correct." : "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.", - "Could not update the private key password." : "Nelze aktualizovat heslo soukromého klíče.", - "The old password was not correct, please try again." : "Staré heslo nebylo zadáno správně, zkuste to prosím znovu.", - "The current log-in password was not correct, please try again." : "Současné přihlašovací heslo nebylo zadáno správně, zkuste to prosím znovu.", - "Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.", - "File recovery settings updated" : "Možnosti záchrany souborů aktualizovány", - "Could not update file recovery" : "Nelze nastavit záchranu souborů", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikace pro šifrování není inicializována! Je možné, že aplikace byla znovu aktivována během vašeho přihlášení. Zkuste se prosím odhlásit a znovu přihlásit pro provedení inicializace šifrovací aplikace.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Váš soukromý klíč není platný! Pravděpodobně bylo vaše heslo změněno vně systému %s (např. ve vašem firemním adresáři). Heslo vašeho soukromého klíče můžete změnit ve svém osobním nastavení pro obnovení přístupu k vašim zašifrovaným souborům.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.", - "Unknown error. Please check your system settings or contact your administrator" : "Neznámá chyba. Zkontrolujte nastavení systému nebo kontaktujte vašeho správce.", - "Initial encryption started... This can take some time. Please wait." : "Počáteční šifrování zahájeno... Toto může chvíli trvat. Počkejte prosím.", - "Initial encryption running... Please try again later." : "Probíhá počáteční šifrování... Zkuste to prosím znovu později.", - "Missing requirements." : "Nesplněné závislosti.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Ujistěte se prosím, že máte povolené a správně nakonfigurované OpenSSL včetně jeho rozšíření pro PHP. Aplikace pro šifrování byla prozatím vypnuta.", - "Following users are not set up for encryption:" : "Následující uživatelé nemají nastavené šifrování:", - "Go directly to your %spersonal settings%s." : "Přejít přímo do svého %sosobního nastavení%s.", - "Server-side Encryption" : "Šifrování na serveru", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", - "Enable recovery key (allow to recover users files in case of password loss):" : "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)", - "Recovery key password" : "Heslo klíče pro obnovu", - "Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu", - "Enabled" : "Povoleno", - "Disabled" : "Zakázáno", - "Change recovery key password:" : "Změna hesla klíče pro obnovu:", - "Old Recovery key password" : "Původní heslo klíče pro obnovu", - "New Recovery key password" : "Nové heslo klíče pro obnovu", - "Repeat New Recovery key password" : "Zopakujte nové heslo klíče pro obnovu", - "Change Password" : "Změnit heslo", - "Your private key password no longer matches your log-in password." : "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.", - "Set your old private key password to your current log-in password:" : "Změňte své staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Pokud si nepamatujete své původní heslo, můžete požádat správce o obnovu vašich souborů.", - "Old log-in password" : "Původní přihlašovací heslo", - "Current log-in password" : "Aktuální přihlašovací heslo", - "Update Private Key Password" : "Změnit heslo soukromého klíče", - "Enable password recovery:" : "Povolit obnovu hesla:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo" -}, -"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_encryption/l10n/cs_CZ.json b/apps/files_encryption/l10n/cs_CZ.json deleted file mode 100644 index 6e724f8ea2e..00000000000 --- a/apps/files_encryption/l10n/cs_CZ.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Neznámá chyba", - "Missing recovery key password" : "Chybí heslo klíče pro obnovu", - "Please repeat the recovery key password" : "Zopakujte prosím heslo klíče pro obnovu", - "Repeated recovery key password does not match the provided recovery key password" : "Opakované heslo pro obnovu nesouhlasí se zadaným heslem", - "Recovery key successfully enabled" : "Záchranný klíč byl úspěšně povolen", - "Could not disable recovery key. Please check your recovery key password!" : "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo svého záchranného klíče!", - "Recovery key successfully disabled" : "Záchranný klíč byl úspěšně zakázán", - "Please provide the old recovery password" : "Zadejte prosím staré heslo pro obnovu", - "Please provide a new recovery password" : "Zadejte prosím nové heslo pro obnovu", - "Please repeat the new recovery password" : "Zopakujte prosím nové heslo pro obnovu", - "Password successfully changed." : "Heslo bylo úspěšně změněno.", - "Could not change the password. Maybe the old password was not correct." : "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.", - "Could not update the private key password." : "Nelze aktualizovat heslo soukromého klíče.", - "The old password was not correct, please try again." : "Staré heslo nebylo zadáno správně, zkuste to prosím znovu.", - "The current log-in password was not correct, please try again." : "Současné přihlašovací heslo nebylo zadáno správně, zkuste to prosím znovu.", - "Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.", - "File recovery settings updated" : "Možnosti záchrany souborů aktualizovány", - "Could not update file recovery" : "Nelze nastavit záchranu souborů", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikace pro šifrování není inicializována! Je možné, že aplikace byla znovu aktivována během vašeho přihlášení. Zkuste se prosím odhlásit a znovu přihlásit pro provedení inicializace šifrovací aplikace.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Váš soukromý klíč není platný! Pravděpodobně bylo vaše heslo změněno vně systému %s (např. ve vašem firemním adresáři). Heslo vašeho soukromého klíče můžete změnit ve svém osobním nastavení pro obnovení přístupu k vašim zašifrovaným souborům.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.", - "Unknown error. Please check your system settings or contact your administrator" : "Neznámá chyba. Zkontrolujte nastavení systému nebo kontaktujte vašeho správce.", - "Initial encryption started... This can take some time. Please wait." : "Počáteční šifrování zahájeno... Toto může chvíli trvat. Počkejte prosím.", - "Initial encryption running... Please try again later." : "Probíhá počáteční šifrování... Zkuste to prosím znovu později.", - "Missing requirements." : "Nesplněné závislosti.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Ujistěte se prosím, že máte povolené a správně nakonfigurované OpenSSL včetně jeho rozšíření pro PHP. Aplikace pro šifrování byla prozatím vypnuta.", - "Following users are not set up for encryption:" : "Následující uživatelé nemají nastavené šifrování:", - "Go directly to your %spersonal settings%s." : "Přejít přímo do svého %sosobního nastavení%s.", - "Server-side Encryption" : "Šifrování na serveru", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste", - "Enable recovery key (allow to recover users files in case of password loss):" : "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)", - "Recovery key password" : "Heslo klíče pro obnovu", - "Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu", - "Enabled" : "Povoleno", - "Disabled" : "Zakázáno", - "Change recovery key password:" : "Změna hesla klíče pro obnovu:", - "Old Recovery key password" : "Původní heslo klíče pro obnovu", - "New Recovery key password" : "Nové heslo klíče pro obnovu", - "Repeat New Recovery key password" : "Zopakujte nové heslo klíče pro obnovu", - "Change Password" : "Změnit heslo", - "Your private key password no longer matches your log-in password." : "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.", - "Set your old private key password to your current log-in password:" : "Změňte své staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Pokud si nepamatujete své původní heslo, můžete požádat správce o obnovu vašich souborů.", - "Old log-in password" : "Původní přihlašovací heslo", - "Current log-in password" : "Aktuální přihlašovací heslo", - "Update Private Key Password" : "Změnit heslo soukromého klíče", - "Enable password recovery:" : "Povolit obnovu hesla:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo" -},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/cy_GB.js b/apps/files_encryption/l10n/cy_GB.js deleted file mode 100644 index 03b6d253b38..00000000000 --- a/apps/files_encryption/l10n/cy_GB.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Encryption" : "Amgryptiad" -}, -"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/apps/files_encryption/l10n/cy_GB.json b/apps/files_encryption/l10n/cy_GB.json deleted file mode 100644 index ed3f6b2fb92..00000000000 --- a/apps/files_encryption/l10n/cy_GB.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Encryption" : "Amgryptiad" -},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/da.js b/apps/files_encryption/l10n/da.js deleted file mode 100644 index 667b8e72c7a..00000000000 --- a/apps/files_encryption/l10n/da.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Ukendt fejl", - "Missing recovery key password" : "Der mangler kodeord for gendannelsesnøgle", - "Please repeat the recovery key password" : "Gentag venligst kodeordet for gendannelsesnøglen", - "Repeated recovery key password does not match the provided recovery key password" : "Det gentagne kodeord for gendannelsesnøglen stemmer ikke med det angivne kodeord for gendannelsesnøglen", - "Recovery key successfully enabled" : "Gendannelsesnøgle aktiveret med succes", - "Could not disable recovery key. Please check your recovery key password!" : "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!", - "Recovery key successfully disabled" : "Gendannelsesnøgle deaktiveret succesfuldt", - "Please provide the old recovery password" : "Angiv venligst det gamle kodeord for gendannelsesnøglen", - "Please provide a new recovery password" : "Angiv venligst et nyt kodeord til gendannelse", - "Please repeat the new recovery password" : "Gentag venligst det nye kodeord til gendannelse", - "Password successfully changed." : "Kodeordet blev ændret succesfuldt", - "Could not change the password. Maybe the old password was not correct." : "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.", - "Could not update the private key password." : "Kunne ikke opdatere kodeordet til den private nøgle.", - "The old password was not correct, please try again." : "Det gamle kodeord var ikke korrekt, prøv venligst igen.", - "The current log-in password was not correct, please try again." : "Det nuværende kodeord til log-in var ikke korrekt, prøv venligst igen.", - "Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.", - "File recovery settings updated" : "Filgendannelsesindstillinger opdateret", - "Could not update file recovery" : "Kunne ikke opdatere filgendannelse", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypteringsprogrammet er ikke igangsat. Det kan skyldes at krypteringsprogrammet er blevet genaktiveret under din session. Prøv at logge ud og ind igen for at aktivere krypteringsprogrammet. ", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din private nøgle er ikke gyldig. Sandsynligvis er dit kodeord blevet ændret uden for %s (f.eks dit firmas adressebog). Du kan opdatere din private nøglekode i dine personlige indstillinger for at genskabe adgang til dine krypterede filer.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi filen er delt. Bed venligst filens ejer om at dele den med dig på ny.", - "Unknown error. Please check your system settings or contact your administrator" : "Ukendt fejl. Venligst tjek dine systemindstillinger eller kontakt din systemadministrator", - "Initial encryption started... This can take some time. Please wait." : "Førstegangskrypteringen er påbegyndt... Dette kan tage nogen tid. Vent venligst.", - "Initial encryption running... Please try again later." : "Kryptering foretages... Prøv venligst igen senere.", - "Missing requirements." : "Manglende betingelser.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Sørg for at OpenSSL, sammen med PHP-udvidelsen, er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret.", - "Following users are not set up for encryption:" : "Følgende brugere er ikke sat op til kryptering:", - "Go directly to your %spersonal settings%s." : "Gå direkte til dine %spersonlige indstillinger%s.", - "Server-side Encryption" : "Kryptering på serverdelen", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):", - "Recovery key password" : "Gendannelsesnøgle kodeord", - "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden", - "Enabled" : "Aktiveret", - "Disabled" : "Deaktiveret", - "Change recovery key password:" : "Skift gendannelsesnøgle kodeord:", - "Old Recovery key password" : "Gammel Gendannelsesnøgle kodeord", - "New Recovery key password" : "Ny Gendannelsesnøgle kodeord", - "Repeat New Recovery key password" : "Gentag det nye gendannaleses nøglekodeord", - "Change Password" : "Skift Kodeord", - "Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.", - "Set your old private key password to your current log-in password:" : "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ", - " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.", - "Old log-in password" : "Gammelt login kodeord", - "Current log-in password" : "Nuvrende login kodeord", - "Update Private Key Password" : "Opdater Privat Nøgle Kodeord", - "Enable password recovery:" : "Aktiver kodeord gendannelse:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/da.json b/apps/files_encryption/l10n/da.json deleted file mode 100644 index 0561094f291..00000000000 --- a/apps/files_encryption/l10n/da.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Ukendt fejl", - "Missing recovery key password" : "Der mangler kodeord for gendannelsesnøgle", - "Please repeat the recovery key password" : "Gentag venligst kodeordet for gendannelsesnøglen", - "Repeated recovery key password does not match the provided recovery key password" : "Det gentagne kodeord for gendannelsesnøglen stemmer ikke med det angivne kodeord for gendannelsesnøglen", - "Recovery key successfully enabled" : "Gendannelsesnøgle aktiveret med succes", - "Could not disable recovery key. Please check your recovery key password!" : "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!", - "Recovery key successfully disabled" : "Gendannelsesnøgle deaktiveret succesfuldt", - "Please provide the old recovery password" : "Angiv venligst det gamle kodeord for gendannelsesnøglen", - "Please provide a new recovery password" : "Angiv venligst et nyt kodeord til gendannelse", - "Please repeat the new recovery password" : "Gentag venligst det nye kodeord til gendannelse", - "Password successfully changed." : "Kodeordet blev ændret succesfuldt", - "Could not change the password. Maybe the old password was not correct." : "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.", - "Could not update the private key password." : "Kunne ikke opdatere kodeordet til den private nøgle.", - "The old password was not correct, please try again." : "Det gamle kodeord var ikke korrekt, prøv venligst igen.", - "The current log-in password was not correct, please try again." : "Det nuværende kodeord til log-in var ikke korrekt, prøv venligst igen.", - "Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.", - "File recovery settings updated" : "Filgendannelsesindstillinger opdateret", - "Could not update file recovery" : "Kunne ikke opdatere filgendannelse", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypteringsprogrammet er ikke igangsat. Det kan skyldes at krypteringsprogrammet er blevet genaktiveret under din session. Prøv at logge ud og ind igen for at aktivere krypteringsprogrammet. ", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din private nøgle er ikke gyldig. Sandsynligvis er dit kodeord blevet ændret uden for %s (f.eks dit firmas adressebog). Du kan opdatere din private nøglekode i dine personlige indstillinger for at genskabe adgang til dine krypterede filer.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi filen er delt. Bed venligst filens ejer om at dele den med dig på ny.", - "Unknown error. Please check your system settings or contact your administrator" : "Ukendt fejl. Venligst tjek dine systemindstillinger eller kontakt din systemadministrator", - "Initial encryption started... This can take some time. Please wait." : "Førstegangskrypteringen er påbegyndt... Dette kan tage nogen tid. Vent venligst.", - "Initial encryption running... Please try again later." : "Kryptering foretages... Prøv venligst igen senere.", - "Missing requirements." : "Manglende betingelser.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Sørg for at OpenSSL, sammen med PHP-udvidelsen, er aktiveret og korrekt konfigureret. Indtil videre er krypteringsprogrammet deaktiveret.", - "Following users are not set up for encryption:" : "Følgende brugere er ikke sat op til kryptering:", - "Go directly to your %spersonal settings%s." : "Gå direkte til dine %spersonlige indstillinger%s.", - "Server-side Encryption" : "Kryptering på serverdelen", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):", - "Recovery key password" : "Gendannelsesnøgle kodeord", - "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden", - "Enabled" : "Aktiveret", - "Disabled" : "Deaktiveret", - "Change recovery key password:" : "Skift gendannelsesnøgle kodeord:", - "Old Recovery key password" : "Gammel Gendannelsesnøgle kodeord", - "New Recovery key password" : "Ny Gendannelsesnøgle kodeord", - "Repeat New Recovery key password" : "Gentag det nye gendannaleses nøglekodeord", - "Change Password" : "Skift Kodeord", - "Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.", - "Set your old private key password to your current log-in password:" : "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ", - " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.", - "Old log-in password" : "Gammelt login kodeord", - "Current log-in password" : "Nuvrende login kodeord", - "Update Private Key Password" : "Opdater Privat Nøgle Kodeord", - "Enable password recovery:" : "Aktiver kodeord gendannelse:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/de.js b/apps/files_encryption/l10n/de.js deleted file mode 100644 index 544d7630833..00000000000 --- a/apps/files_encryption/l10n/de.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Unbekannter Fehler", - "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", - "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", - "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", - "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde erfolgreich aktiviert", - "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!", - "Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.", - "Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", - "Please provide a new recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", - "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", - "Password successfully changed." : "Dein Passwort wurde geändert.", - "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.", - "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.", - "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuche es noch einmal.", - "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuche es noch einmal.", - "Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert", - "File recovery settings updated" : "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert", - "Could not update file recovery" : "Dateiwiederherstellung konnte nicht aktualisiert werden", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuche Dich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Dein Passwort geändert (z.B. in Deinem gemeinsamen Verzeichnis). Du kannst das Passwort Deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Deine Dateien zu gelangen.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", - "Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator", - "Initial encryption started... This can take some time. Please wait." : "Initialverschlüsselung gestartet… Dies kann einige Zeit dauern. Bitte warten.", - "Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuche es später wieder.", - "Missing requirements." : "Fehlende Vorraussetzungen", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stelle sicher, dass OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Die Verschlüsselungsanwendung ist vorerst deaktiviert.", - "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", - "Go directly to your %spersonal settings%s." : "Direkt zu Deinen %spersonal settings%s wechseln.", - "Server-side Encryption" : "Serverseitige Verschlüsselung", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):", - "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", - "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen", - "Enabled" : "Aktiviert", - "Disabled" : "Deaktiviert", - "Change recovery key password:" : "Wiederherstellungsschlüssel-Passwort ändern:", - "Old Recovery key password" : "Altes Wiederherstellungsschlüssel-Passwort", - "New Recovery key password" : "Neues Wiederherstellungsschlüssel-Passwort", - "Repeat New Recovery key password" : "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen", - "Change Password" : "Passwort ändern", - "Your private key password no longer matches your log-in password." : "Dein Passwort für Deinen privaten Schlüssel stimmt nicht mehr mit Deinem Loginpasswort überein.", - "Set your old private key password to your current log-in password:" : "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.", - "Old log-in password" : "Altes Login Passwort", - "Current log-in password" : "Aktuelles Passwort", - "Update Private Key Password" : "Passwort für den privaten Schlüssel aktualisieren", - "Enable password recovery:" : "Passwortwiederherstellung aktivieren:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/de.json b/apps/files_encryption/l10n/de.json deleted file mode 100644 index 7ba97e39ac5..00000000000 --- a/apps/files_encryption/l10n/de.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Unbekannter Fehler", - "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", - "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", - "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", - "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde erfolgreich aktiviert", - "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!", - "Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.", - "Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", - "Please provide a new recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", - "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", - "Password successfully changed." : "Dein Passwort wurde geändert.", - "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.", - "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.", - "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuche es noch einmal.", - "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuche es noch einmal.", - "Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert", - "File recovery settings updated" : "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert", - "Could not update file recovery" : "Dateiwiederherstellung konnte nicht aktualisiert werden", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuche Dich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Dein Passwort geändert (z.B. in Deinem gemeinsamen Verzeichnis). Du kannst das Passwort Deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Deine Dateien zu gelangen.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", - "Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfe Deine Systemeinstellungen oder kontaktiere Deinen Administrator", - "Initial encryption started... This can take some time. Please wait." : "Initialverschlüsselung gestartet… Dies kann einige Zeit dauern. Bitte warten.", - "Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuche es später wieder.", - "Missing requirements." : "Fehlende Vorraussetzungen", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stelle sicher, dass OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Die Verschlüsselungsanwendung ist vorerst deaktiviert.", - "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", - "Go directly to your %spersonal settings%s." : "Direkt zu Deinen %spersonal settings%s wechseln.", - "Server-side Encryption" : "Serverseitige Verschlüsselung", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):", - "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", - "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen", - "Enabled" : "Aktiviert", - "Disabled" : "Deaktiviert", - "Change recovery key password:" : "Wiederherstellungsschlüssel-Passwort ändern:", - "Old Recovery key password" : "Altes Wiederherstellungsschlüssel-Passwort", - "New Recovery key password" : "Neues Wiederherstellungsschlüssel-Passwort", - "Repeat New Recovery key password" : "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen", - "Change Password" : "Passwort ändern", - "Your private key password no longer matches your log-in password." : "Dein Passwort für Deinen privaten Schlüssel stimmt nicht mehr mit Deinem Loginpasswort überein.", - "Set your old private key password to your current log-in password:" : "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.", - "Old log-in password" : "Altes Login Passwort", - "Current log-in password" : "Aktuelles Passwort", - "Update Private Key Password" : "Passwort für den privaten Schlüssel aktualisieren", - "Enable password recovery:" : "Passwortwiederherstellung aktivieren:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/de_CH.js b/apps/files_encryption/l10n/de_CH.js deleted file mode 100644 index 1f5a01e6798..00000000000 --- a/apps/files_encryption/l10n/de_CH.js +++ /dev/null @@ -1,33 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Unbekannter Fehler", - "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", - "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", - "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", - "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", - "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", - "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", - "Could not update the private key password. Maybe the old password was not correct." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Vielleicht war das alte Passwort nicht richtig.", - "File recovery settings updated" : "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", - "Could not update file recovery" : "Die Dateiwiederherstellung konnte nicht aktualisiert werden.", - "Missing requirements." : "Fehlende Voraussetzungen", - "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", - "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", - "Encryption" : "Verschlüsselung", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).", - "Recovery key password" : "Wiederherstellungschlüsselpasswort", - "Enabled" : "Aktiviert", - "Disabled" : "Deaktiviert", - "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", - "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", - "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", - "Change Password" : "Passwort ändern", - " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", - "Old log-in password" : "Altes Login-Passwort", - "Current log-in password" : "Momentanes Login-Passwort", - "Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren", - "Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben." -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/de_CH.json b/apps/files_encryption/l10n/de_CH.json deleted file mode 100644 index 244d0946bfe..00000000000 --- a/apps/files_encryption/l10n/de_CH.json +++ /dev/null @@ -1,31 +0,0 @@ -{ "translations": { - "Unknown error" : "Unbekannter Fehler", - "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", - "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", - "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", - "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", - "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", - "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", - "Could not update the private key password. Maybe the old password was not correct." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Vielleicht war das alte Passwort nicht richtig.", - "File recovery settings updated" : "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", - "Could not update file recovery" : "Die Dateiwiederherstellung konnte nicht aktualisiert werden.", - "Missing requirements." : "Fehlende Voraussetzungen", - "Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.", - "Following users are not set up for encryption:" : "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:", - "Encryption" : "Verschlüsselung", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).", - "Recovery key password" : "Wiederherstellungschlüsselpasswort", - "Enabled" : "Aktiviert", - "Disabled" : "Deaktiviert", - "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", - "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", - "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", - "Change Password" : "Passwort ändern", - " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", - "Old log-in password" : "Altes Login-Passwort", - "Current log-in password" : "Momentanes Login-Passwort", - "Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren", - "Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben." -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/de_DE.js b/apps/files_encryption/l10n/de_DE.js deleted file mode 100644 index 9ad50104ea8..00000000000 --- a/apps/files_encryption/l10n/de_DE.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Unbekannter Fehler", - "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", - "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", - "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", - "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", - "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", - "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", - "Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", - "Please provide a new recovery password" : "Bitte das neue Passwort zur Wiederherstellung eingeben", - "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", - "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", - "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", - "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.", - "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuchen Sie es noch einmal.", - "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuchen Sie es noch einmal.", - "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", - "File recovery settings updated" : "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", - "Could not update file recovery" : "Die Dateiwiederherstellung konnte nicht aktualisiert werden.", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuchen Sie sich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ihr privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Ihr Passwort geändert (z.B. in Ihrem gemeinsamen Verzeichnis). Sie können das Passwort Ihres privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Ihre Dateien zu gelangen.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Dateibesitzer, dass er die Datei nochmals mit Ihnen teilt.", - "Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfen Sie die Systemeinstellungen oder kontaktieren Sie Ihren Administrator", - "Initial encryption started... This can take some time. Please wait." : "Anfangsverschlüsselung gestartet … Dieses kann einige Zeit dauern. Bitte warten.", - "Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuchen Sie es später wieder.", - "Missing requirements." : "Fehlende Voraussetzungen", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stellen Sie sicher, dass OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Die Verschlüsselungsanwendung ist vorerst deaktiviert.", - "Following users are not set up for encryption:" : "Für folgende Benutzer ist keine Verschlüsselung eingerichtet:", - "Go directly to your %spersonal settings%s." : "Wechseln Sie direkt zu Ihren %spersonal settings%s.", - "Server-side Encryption" : "Serverseitige Verschlüsselung", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht):", - "Recovery key password" : "Wiederherstellungschlüsselpasswort", - "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen", - "Enabled" : "Aktiviert", - "Disabled" : "Deaktiviert", - "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", - "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", - "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", - "Repeat New Recovery key password" : "Neues Schlüsselpasswort zur Wiederherstellung wiederholen", - "Change Password" : "Passwort ändern", - "Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.", - "Set your old private key password to your current log-in password:" : "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", - "Old log-in password" : "Altes Anmeldepasswort", - "Current log-in password" : "Aktuelles Anmeldepasswort", - "Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren", - "Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben." -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/de_DE.json b/apps/files_encryption/l10n/de_DE.json deleted file mode 100644 index 135818e290c..00000000000 --- a/apps/files_encryption/l10n/de_DE.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Unbekannter Fehler", - "Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt", - "Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen", - "Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein", - "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.", - "Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!", - "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.", - "Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben", - "Please provide a new recovery password" : "Bitte das neue Passwort zur Wiederherstellung eingeben", - "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", - "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", - "Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.", - "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.", - "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuchen Sie es noch einmal.", - "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuchen Sie es noch einmal.", - "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.", - "File recovery settings updated" : "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.", - "Could not update file recovery" : "Die Dateiwiederherstellung konnte nicht aktualisiert werden.", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuchen Sie sich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ihr privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Ihr Passwort geändert (z.B. in Ihrem gemeinsamen Verzeichnis). Sie können das Passwort Ihres privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Ihre Dateien zu gelangen.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Dateibesitzer, dass er die Datei nochmals mit Ihnen teilt.", - "Unknown error. Please check your system settings or contact your administrator" : "Unbekannter Fehler. Bitte prüfen Sie die Systemeinstellungen oder kontaktieren Sie Ihren Administrator", - "Initial encryption started... This can take some time. Please wait." : "Anfangsverschlüsselung gestartet … Dieses kann einige Zeit dauern. Bitte warten.", - "Initial encryption running... Please try again later." : "Anfangsverschlüsselung läuft … Bitte versuchen Sie es später wieder.", - "Missing requirements." : "Fehlende Voraussetzungen", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Bitte stellen Sie sicher, dass OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Die Verschlüsselungsanwendung ist vorerst deaktiviert.", - "Following users are not set up for encryption:" : "Für folgende Benutzer ist keine Verschlüsselung eingerichtet:", - "Go directly to your %spersonal settings%s." : "Wechseln Sie direkt zu Ihren %spersonal settings%s.", - "Server-side Encryption" : "Serverseitige Verschlüsselung", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht):", - "Recovery key password" : "Wiederherstellungschlüsselpasswort", - "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen", - "Enabled" : "Aktiviert", - "Disabled" : "Deaktiviert", - "Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern", - "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort", - "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ", - "Repeat New Recovery key password" : "Neues Schlüsselpasswort zur Wiederherstellung wiederholen", - "Change Password" : "Passwort ändern", - "Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.", - "Set your old private key password to your current log-in password:" : "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.", - "Old log-in password" : "Altes Anmeldepasswort", - "Current log-in password" : "Aktuelles Anmeldepasswort", - "Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren", - "Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben." -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/el.js b/apps/files_encryption/l10n/el.js deleted file mode 100644 index ad7621545bd..00000000000 --- a/apps/files_encryption/l10n/el.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Άγνωστο σφάλμα", - "Missing recovery key password" : "Λείπει το κλειδί επαναφοράς κωδικού", - "Please repeat the recovery key password" : "Παρακαλώ επαναλάβετε το κλειδί επαναφοράς κωδικού", - "Repeated recovery key password does not match the provided recovery key password" : "Η επανάληψη του κλειδιού επαναφοράς κωδικού δεν ταιριάζει με το δοσμένο κλειδί επαναφοράς κωδικού", - "Recovery key successfully enabled" : "Επιτυχής ενεργοποίηση κλειδιού ανάκτησης", - "Could not disable recovery key. Please check your recovery key password!" : "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", - "Recovery key successfully disabled" : "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης", - "Please provide the old recovery password" : "Παρακαλώ παρέχετε τον παλιό κωδικό επαναφοράς", - "Please provide a new recovery password" : "Παρακαλώ παρέχετε ένα νέο κωδικό επαναφοράς", - "Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς", - "Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.", - "Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.", - "Could not update the private key password." : "Αποτυχία ενημέρωσης του προσωπικού κλειδιού πρόσβασης", - "The old password was not correct, please try again." : "Το παλαιό συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.", - "The current log-in password was not correct, please try again." : "Το τρέχον συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.", - "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", - "File recovery settings updated" : "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν", - "Could not update file recovery" : "Αποτυχία ενημέρωσης ανάκτησης αρχείων", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Η εφαρμογή κρυπτογράφησης δεν έχει εκκινήσει! Ίσως η εφαρμογή κρυπτογράφησης επανενεργοποιήθηκε κατά τη διάρκεια της τρέχουσας σύνδεσής σας. Παρακαλώ προσπαθήστε να αποσυνδεθείτε και να ξανασυνδεθείτε για να εκκινήσετε την εφαρμογή κρυπτογράφησης.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Το προσωπικό σας κλειδί δεν είναι έγκυρο! Πιθανόν ο κωδικός σας να άλλαξε έξω από το %s (π.χ. τη λίστα διευθύνσεων της εταιρείας σας). Μπορείτε να ενημερώσετε το προσωπικό σας κλειδί επαναφοράς κωδικού στις προσωπικές σας ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", - "Unknown error. Please check your system settings or contact your administrator" : "Άγνωστο σφάλμα. Παρακαλώ ελέγξτε τις ρυθμίσεις του συστήματό σας ή επικοινωνήστε με τον διαχειριστή συστημάτων σας", - "Initial encryption started... This can take some time. Please wait." : "Η αρχική κρυπτογράφηση άρχισε... Αυτό μπορεί να πάρει κάποια ώρα. Παρακαλώ περιμένετε.", - "Initial encryption running... Please try again later." : "Εκτέλεση αρχικής κρυπτογράφησης... Παρακαλώ προσπαθήστε αργότερα.", - "Missing requirements." : "Προαπαιτούμενα που απουσιάζουν.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Παρακαλώ επιβεβαιώστε ότι η OpenSSL μαζί με την επέκταση PHP έχουν ενεργοποιηθεί και ρυθμιστεί σωστά. Προς το παρόν, η εφαρμογή κρυπτογράφησης είναι απενεργοποιημένη.", - "Following users are not set up for encryption:" : "Οι κάτωθι χρήστες δεν έχουν ρυθμιστεί για κρυπογράφηση:", - "Go directly to your %spersonal settings%s." : "Πηγαίνετε κατ'ευθείαν στις %sπροσωπικές ρυθμίσεις%s σας.", - "Server-side Encryption" : "Κρυπτογράφηση από τον Διακομιστή", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):", - "Recovery key password" : "Επαναφορά κωδικού κλειδιού", - "Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού", - "Enabled" : "Ενεργοποιημένο", - "Disabled" : "Απενεργοποιημένο", - "Change recovery key password:" : "Αλλαγή κλειδιού επαναφοράς κωδικού:", - "Old Recovery key password" : "Παλιό κλειδί επαναφοράς κωδικού", - "New Recovery key password" : "Νέο κλειδί επαναφοράς κωδικού", - "Repeat New Recovery key password" : "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού", - "Change Password" : "Αλλαγή Κωδικού Πρόσβασης", - "Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", - "Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.", - "Old log-in password" : "Παλαιό συνθηματικό εισόδου", - "Current log-in password" : "Τρέχον συνθηματικό πρόσβασης", - "Update Private Key Password" : "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης", - "Enable password recovery:" : "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/el.json b/apps/files_encryption/l10n/el.json deleted file mode 100644 index cbe19731893..00000000000 --- a/apps/files_encryption/l10n/el.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Άγνωστο σφάλμα", - "Missing recovery key password" : "Λείπει το κλειδί επαναφοράς κωδικού", - "Please repeat the recovery key password" : "Παρακαλώ επαναλάβετε το κλειδί επαναφοράς κωδικού", - "Repeated recovery key password does not match the provided recovery key password" : "Η επανάληψη του κλειδιού επαναφοράς κωδικού δεν ταιριάζει με το δοσμένο κλειδί επαναφοράς κωδικού", - "Recovery key successfully enabled" : "Επιτυχής ενεργοποίηση κλειδιού ανάκτησης", - "Could not disable recovery key. Please check your recovery key password!" : "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!", - "Recovery key successfully disabled" : "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης", - "Please provide the old recovery password" : "Παρακαλώ παρέχετε τον παλιό κωδικό επαναφοράς", - "Please provide a new recovery password" : "Παρακαλώ παρέχετε ένα νέο κωδικό επαναφοράς", - "Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς", - "Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.", - "Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.", - "Could not update the private key password." : "Αποτυχία ενημέρωσης του προσωπικού κλειδιού πρόσβασης", - "The old password was not correct, please try again." : "Το παλαιό συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.", - "The current log-in password was not correct, please try again." : "Το τρέχον συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.", - "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", - "File recovery settings updated" : "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν", - "Could not update file recovery" : "Αποτυχία ενημέρωσης ανάκτησης αρχείων", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Η εφαρμογή κρυπτογράφησης δεν έχει εκκινήσει! Ίσως η εφαρμογή κρυπτογράφησης επανενεργοποιήθηκε κατά τη διάρκεια της τρέχουσας σύνδεσής σας. Παρακαλώ προσπαθήστε να αποσυνδεθείτε και να ξανασυνδεθείτε για να εκκινήσετε την εφαρμογή κρυπτογράφησης.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Το προσωπικό σας κλειδί δεν είναι έγκυρο! Πιθανόν ο κωδικός σας να άλλαξε έξω από το %s (π.χ. τη λίστα διευθύνσεων της εταιρείας σας). Μπορείτε να ενημερώσετε το προσωπικό σας κλειδί επαναφοράς κωδικού στις προσωπικές σας ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", - "Unknown error. Please check your system settings or contact your administrator" : "Άγνωστο σφάλμα. Παρακαλώ ελέγξτε τις ρυθμίσεις του συστήματό σας ή επικοινωνήστε με τον διαχειριστή συστημάτων σας", - "Initial encryption started... This can take some time. Please wait." : "Η αρχική κρυπτογράφηση άρχισε... Αυτό μπορεί να πάρει κάποια ώρα. Παρακαλώ περιμένετε.", - "Initial encryption running... Please try again later." : "Εκτέλεση αρχικής κρυπτογράφησης... Παρακαλώ προσπαθήστε αργότερα.", - "Missing requirements." : "Προαπαιτούμενα που απουσιάζουν.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Παρακαλώ επιβεβαιώστε ότι η OpenSSL μαζί με την επέκταση PHP έχουν ενεργοποιηθεί και ρυθμιστεί σωστά. Προς το παρόν, η εφαρμογή κρυπτογράφησης είναι απενεργοποιημένη.", - "Following users are not set up for encryption:" : "Οι κάτωθι χρήστες δεν έχουν ρυθμιστεί για κρυπογράφηση:", - "Go directly to your %spersonal settings%s." : "Πηγαίνετε κατ'ευθείαν στις %sπροσωπικές ρυθμίσεις%s σας.", - "Server-side Encryption" : "Κρυπτογράφηση από τον Διακομιστή", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):", - "Recovery key password" : "Επαναφορά κωδικού κλειδιού", - "Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού", - "Enabled" : "Ενεργοποιημένο", - "Disabled" : "Απενεργοποιημένο", - "Change recovery key password:" : "Αλλαγή κλειδιού επαναφοράς κωδικού:", - "Old Recovery key password" : "Παλιό κλειδί επαναφοράς κωδικού", - "New Recovery key password" : "Νέο κλειδί επαναφοράς κωδικού", - "Repeat New Recovery key password" : "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού", - "Change Password" : "Αλλαγή Κωδικού Πρόσβασης", - "Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", - "Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.", - "Old log-in password" : "Παλαιό συνθηματικό εισόδου", - "Current log-in password" : "Τρέχον συνθηματικό πρόσβασης", - "Update Private Key Password" : "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης", - "Enable password recovery:" : "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/en_GB.js b/apps/files_encryption/l10n/en_GB.js deleted file mode 100644 index dc0dba85eb2..00000000000 --- a/apps/files_encryption/l10n/en_GB.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Unknown error", - "Missing recovery key password" : "Missing recovery key password", - "Please repeat the recovery key password" : "Please repeat the recovery key password", - "Repeated recovery key password does not match the provided recovery key password" : "Repeated recovery key password does not match the provided recovery key password", - "Recovery key successfully enabled" : "Recovery key enabled successfully", - "Could not disable recovery key. Please check your recovery key password!" : "Could not disable recovery key. Please check your recovery key password!", - "Recovery key successfully disabled" : "Recovery key disabled successfully", - "Please provide the old recovery password" : "Please provide the old recovery password", - "Please provide a new recovery password" : "Please provide a new recovery password", - "Please repeat the new recovery password" : "Please repeat the new recovery password", - "Password successfully changed." : "Password changed successfully.", - "Could not change the password. Maybe the old password was not correct." : "Could not change the password. Maybe the old password was incorrect.", - "Could not update the private key password." : "Could not update the private key password.", - "The old password was not correct, please try again." : "The old password was not correct, please try again.", - "The current log-in password was not correct, please try again." : "The current log-in password was not correct, please try again.", - "Private key password successfully updated." : "Private key password updated successfully.", - "File recovery settings updated" : "File recovery settings updated", - "Could not update file recovery" : "Could not update file recovery", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Encryption app not initialised! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialise the encryption app.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.", - "Unknown error. Please check your system settings or contact your administrator" : "Unknown error. Please check your system settings or contact your administrator", - "Initial encryption started... This can take some time. Please wait." : "Initial encryption started... This can take some time. Please wait.", - "Initial encryption running... Please try again later." : "Initial encryption running... Please try again later.", - "Missing requirements." : "Missing requirements.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Please make sure that OpenSSL together with the PHP extension is enabled and properly configured. For now, the encryption app has been disabled.", - "Following users are not set up for encryption:" : "Following users are not set up for encryption:", - "Go directly to your %spersonal settings%s." : "Go directly to your %spersonal settings%s.", - "Server-side Encryption" : "Server-side Encryption", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", - "Enable recovery key (allow to recover users files in case of password loss):" : "Enable recovery key (allow to recover users files in case of password loss):", - "Recovery key password" : "Recovery key password", - "Repeat Recovery key password" : "Repeat recovery key password", - "Enabled" : "Enabled", - "Disabled" : "Disabled", - "Change recovery key password:" : "Change recovery key password:", - "Old Recovery key password" : "Old recovery key password", - "New Recovery key password" : "New recovery key password", - "Repeat New Recovery key password" : "Repeat new recovery key password", - "Change Password" : "Change Password", - "Your private key password no longer matches your log-in password." : "Your private key password no longer matches your log-in password.", - "Set your old private key password to your current log-in password:" : "Set your old private key password to your current log-in password:", - " If you don't remember your old password you can ask your administrator to recover your files." : " If you don't remember your old password you can ask your administrator to recover your files.", - "Old log-in password" : "Old login password", - "Current log-in password" : "Current login password", - "Update Private Key Password" : "Update Private Key Password", - "Enable password recovery:" : "Enable password recovery:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/en_GB.json b/apps/files_encryption/l10n/en_GB.json deleted file mode 100644 index 8afafc4e908..00000000000 --- a/apps/files_encryption/l10n/en_GB.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Unknown error", - "Missing recovery key password" : "Missing recovery key password", - "Please repeat the recovery key password" : "Please repeat the recovery key password", - "Repeated recovery key password does not match the provided recovery key password" : "Repeated recovery key password does not match the provided recovery key password", - "Recovery key successfully enabled" : "Recovery key enabled successfully", - "Could not disable recovery key. Please check your recovery key password!" : "Could not disable recovery key. Please check your recovery key password!", - "Recovery key successfully disabled" : "Recovery key disabled successfully", - "Please provide the old recovery password" : "Please provide the old recovery password", - "Please provide a new recovery password" : "Please provide a new recovery password", - "Please repeat the new recovery password" : "Please repeat the new recovery password", - "Password successfully changed." : "Password changed successfully.", - "Could not change the password. Maybe the old password was not correct." : "Could not change the password. Maybe the old password was incorrect.", - "Could not update the private key password." : "Could not update the private key password.", - "The old password was not correct, please try again." : "The old password was not correct, please try again.", - "The current log-in password was not correct, please try again." : "The current log-in password was not correct, please try again.", - "Private key password successfully updated." : "Private key password updated successfully.", - "File recovery settings updated" : "File recovery settings updated", - "Could not update file recovery" : "Could not update file recovery", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Encryption app not initialised! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialise the encryption app.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.", - "Unknown error. Please check your system settings or contact your administrator" : "Unknown error. Please check your system settings or contact your administrator", - "Initial encryption started... This can take some time. Please wait." : "Initial encryption started... This can take some time. Please wait.", - "Initial encryption running... Please try again later." : "Initial encryption running... Please try again later.", - "Missing requirements." : "Missing requirements.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Please make sure that OpenSSL together with the PHP extension is enabled and properly configured. For now, the encryption app has been disabled.", - "Following users are not set up for encryption:" : "Following users are not set up for encryption:", - "Go directly to your %spersonal settings%s." : "Go directly to your %spersonal settings%s.", - "Server-side Encryption" : "Server-side Encryption", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again", - "Enable recovery key (allow to recover users files in case of password loss):" : "Enable recovery key (allow to recover users files in case of password loss):", - "Recovery key password" : "Recovery key password", - "Repeat Recovery key password" : "Repeat recovery key password", - "Enabled" : "Enabled", - "Disabled" : "Disabled", - "Change recovery key password:" : "Change recovery key password:", - "Old Recovery key password" : "Old recovery key password", - "New Recovery key password" : "New recovery key password", - "Repeat New Recovery key password" : "Repeat new recovery key password", - "Change Password" : "Change Password", - "Your private key password no longer matches your log-in password." : "Your private key password no longer matches your log-in password.", - "Set your old private key password to your current log-in password:" : "Set your old private key password to your current log-in password:", - " If you don't remember your old password you can ask your administrator to recover your files." : " If you don't remember your old password you can ask your administrator to recover your files.", - "Old log-in password" : "Old login password", - "Current log-in password" : "Current login password", - "Update Private Key Password" : "Update Private Key Password", - "Enable password recovery:" : "Enable password recovery:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/eo.js b/apps/files_encryption/l10n/eo.js deleted file mode 100644 index b99a3f80920..00000000000 --- a/apps/files_encryption/l10n/eo.js +++ /dev/null @@ -1,17 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Nekonata eraro", - "Password successfully changed." : "La pasvorto sukcese ŝanĝiĝis.", - "Could not change the password. Maybe the old password was not correct." : "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.", - "Private key password successfully updated." : "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.", - "Missing requirements." : "Mankas neproj.", - "Enabled" : "Kapabligita", - "Disabled" : "Malkapabligita", - "Change Password" : "Ŝarĝi pasvorton", - "Old log-in password" : "Malnova ensaluta pasvorto", - "Current log-in password" : "Nuna ensaluta pasvorto", - "Update Private Key Password" : "Ĝisdatigi la pasvorton de la malpublika klavo", - "Enable password recovery:" : "Kapabligi restaŭron de pasvorto:" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/eo.json b/apps/files_encryption/l10n/eo.json deleted file mode 100644 index 02ba7e2faa1..00000000000 --- a/apps/files_encryption/l10n/eo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ "translations": { - "Unknown error" : "Nekonata eraro", - "Password successfully changed." : "La pasvorto sukcese ŝanĝiĝis.", - "Could not change the password. Maybe the old password was not correct." : "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.", - "Private key password successfully updated." : "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.", - "Missing requirements." : "Mankas neproj.", - "Enabled" : "Kapabligita", - "Disabled" : "Malkapabligita", - "Change Password" : "Ŝarĝi pasvorton", - "Old log-in password" : "Malnova ensaluta pasvorto", - "Current log-in password" : "Nuna ensaluta pasvorto", - "Update Private Key Password" : "Ĝisdatigi la pasvorton de la malpublika klavo", - "Enable password recovery:" : "Kapabligi restaŭron de pasvorto:" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/es.js b/apps/files_encryption/l10n/es.js deleted file mode 100644 index 22c2b02a8e7..00000000000 --- a/apps/files_encryption/l10n/es.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Error desconocido", - "Missing recovery key password" : "Falta contraseña de recuperación.", - "Please repeat the recovery key password" : "Por favor, repita la contraseña de recuperación", - "Repeated recovery key password does not match the provided recovery key password" : "La contraseña de recuperación reintroducida no coincide con la contraseña de recuperación proporcionada.", - "Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos", - "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor, ¡compruebe su contraseña!", - "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", - "Please provide the old recovery password" : "Por favor, ingrese su antigua contraseña de recuperación", - "Please provide a new recovery password" : "Por favor, ingrese una nueva contraseña de recuperación", - "Please repeat the new recovery password" : "Por favor, repita su nueva contraseña de recuperación", - "Password successfully changed." : "Su contraseña ha sido cambiada", - "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", - "Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.", - "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor intente de nuevo.", - "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcto, por favor intente de nuevo.", - "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", - "File recovery settings updated" : "Opciones de recuperación de archivos actualizada", - "Could not update file recovery" : "No se pudo actualizar la recuperación de archivos", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de cifrado no ha sido inicializada! Quizá se restableció durante su sesión. Por favor intente cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera de %s (Ej: su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", - "Unknown error. Please check your system settings or contact your administrator" : "Error desconocido. Revise la configuración de su sistema o contacte con su administrador", - "Initial encryption started... This can take some time. Please wait." : "Ha comenzado el cifrado inicial... Esto puede tardar un rato. Por favor, espere.", - "Initial encryption running... Please try again later." : "Cifrado inicial en curso... Inténtelo más tarde.", - "Missing requirements." : "Requisitos incompletos.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Asegúrese de que OpenSSL y la extensión de PHP estén habilitados y configurados correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.", - "Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:", - "Go directly to your %spersonal settings%s." : "Ir directamente a %sOpciones%s.", - "Server-side Encryption" : "Cifrado en el servidor", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);", - "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", - "Enabled" : "Habilitar", - "Disabled" : "Deshabilitado", - "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Antigua clave de recuperación", - "New Recovery key password" : "Nueva clave de recuperación", - "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", - "Change Password" : "Cambiar contraseña", - "Your private key password no longer matches your log-in password." : "Su contraseña de clave privada ya no coincide con su contraseña de acceso.", - "Set your old private key password to your current log-in password:" : "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.", - "Old log-in password" : "Contraseña de acceso antigua", - "Current log-in password" : "Contraseña de acceso actual", - "Update Private Key Password" : "Actualizar contraseña de clave privada", - "Enable password recovery:" : "Habilitar la recuperación de contraseña:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/es.json b/apps/files_encryption/l10n/es.json deleted file mode 100644 index f31c325a239..00000000000 --- a/apps/files_encryption/l10n/es.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Error desconocido", - "Missing recovery key password" : "Falta contraseña de recuperación.", - "Please repeat the recovery key password" : "Por favor, repita la contraseña de recuperación", - "Repeated recovery key password does not match the provided recovery key password" : "La contraseña de recuperación reintroducida no coincide con la contraseña de recuperación proporcionada.", - "Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos", - "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor, ¡compruebe su contraseña!", - "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", - "Please provide the old recovery password" : "Por favor, ingrese su antigua contraseña de recuperación", - "Please provide a new recovery password" : "Por favor, ingrese una nueva contraseña de recuperación", - "Please repeat the new recovery password" : "Por favor, repita su nueva contraseña de recuperación", - "Password successfully changed." : "Su contraseña ha sido cambiada", - "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", - "Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.", - "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor intente de nuevo.", - "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcto, por favor intente de nuevo.", - "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", - "File recovery settings updated" : "Opciones de recuperación de archivos actualizada", - "Could not update file recovery" : "No se pudo actualizar la recuperación de archivos", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de cifrado no ha sido inicializada! Quizá se restableció durante su sesión. Por favor intente cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera de %s (Ej: su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", - "Unknown error. Please check your system settings or contact your administrator" : "Error desconocido. Revise la configuración de su sistema o contacte con su administrador", - "Initial encryption started... This can take some time. Please wait." : "Ha comenzado el cifrado inicial... Esto puede tardar un rato. Por favor, espere.", - "Initial encryption running... Please try again later." : "Cifrado inicial en curso... Inténtelo más tarde.", - "Missing requirements." : "Requisitos incompletos.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Asegúrese de que OpenSSL y la extensión de PHP estén habilitados y configurados correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.", - "Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:", - "Go directly to your %spersonal settings%s." : "Ir directamente a %sOpciones%s.", - "Server-side Encryption" : "Cifrado en el servidor", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);", - "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", - "Enabled" : "Habilitar", - "Disabled" : "Deshabilitado", - "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Antigua clave de recuperación", - "New Recovery key password" : "Nueva clave de recuperación", - "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", - "Change Password" : "Cambiar contraseña", - "Your private key password no longer matches your log-in password." : "Su contraseña de clave privada ya no coincide con su contraseña de acceso.", - "Set your old private key password to your current log-in password:" : "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.", - "Old log-in password" : "Contraseña de acceso antigua", - "Current log-in password" : "Contraseña de acceso actual", - "Update Private Key Password" : "Actualizar contraseña de clave privada", - "Enable password recovery:" : "Habilitar la recuperación de contraseña:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/es_AR.js b/apps/files_encryption/l10n/es_AR.js deleted file mode 100644 index 88a7456dbc6..00000000000 --- a/apps/files_encryption/l10n/es_AR.js +++ /dev/null @@ -1,38 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Error desconocido", - "Recovery key successfully enabled" : "Se habilitó la recuperación de archivos", - "Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la clave de recuperación. Por favor, comprobá tu contraseña.", - "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", - "Password successfully changed." : "Tu contraseña fue cambiada", - "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Comprobá que la contraseña actual sea correcta.", - "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", - "File recovery settings updated" : "Las opciones de recuperación de archivos fueron actualizadas", - "Could not update file recovery" : "No fue posible actualizar la recuperación de archivos", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de encriptación no está inicializada! Es probable que la aplicación fue re-habilitada durante tu sesión. Intenta salir y iniciar sesión para volverla a iniciar.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Tu llave privada no es válida! Aparenta que tu clave fue cambiada fuera de %s (de tus directorios). Puedes actualizar la contraseña de tu clave privadaen las configuraciones personales para recobrar el acceso a tus archivos encriptados.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.", - "Initial encryption started... This can take some time. Please wait." : "Encriptación inicial comenzada... Esto puede durar un tiempo. Por favor espere.", - "Initial encryption running... Please try again later." : "Encriptación inicial corriendo... Por favor intente mas tarde. ", - "Missing requirements." : "Requisitos incompletos.", - "Following users are not set up for encryption:" : "Los siguientes usuarios no fueron configurados para encriptar:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):", - "Recovery key password" : "Contraseña de recuperación de clave", - "Repeat Recovery key password" : "Repetir la contraseña de la clave de recuperación", - "Enabled" : "Habilitado", - "Disabled" : "Deshabilitado", - "Change recovery key password:" : "Cambiar contraseña para recuperar la clave:", - "Old Recovery key password" : "Contraseña antigua de recuperación de clave", - "New Recovery key password" : "Nueva contraseña de recuperación de clave", - "Repeat New Recovery key password" : "Repetir Nueva contraseña para la clave de recuperación", - "Change Password" : "Cambiar contraseña", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos", - "Old log-in password" : "Contraseña anterior", - "Current log-in password" : "Contraseña actual", - "Update Private Key Password" : "Actualizar contraseña de la clave privada", - "Enable password recovery:" : "Habilitar recuperación de contraseña:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/es_AR.json b/apps/files_encryption/l10n/es_AR.json deleted file mode 100644 index 03495731eca..00000000000 --- a/apps/files_encryption/l10n/es_AR.json +++ /dev/null @@ -1,36 +0,0 @@ -{ "translations": { - "Unknown error" : "Error desconocido", - "Recovery key successfully enabled" : "Se habilitó la recuperación de archivos", - "Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la clave de recuperación. Por favor, comprobá tu contraseña.", - "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", - "Password successfully changed." : "Tu contraseña fue cambiada", - "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Comprobá que la contraseña actual sea correcta.", - "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", - "File recovery settings updated" : "Las opciones de recuperación de archivos fueron actualizadas", - "Could not update file recovery" : "No fue posible actualizar la recuperación de archivos", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de encriptación no está inicializada! Es probable que la aplicación fue re-habilitada durante tu sesión. Intenta salir y iniciar sesión para volverla a iniciar.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Tu llave privada no es válida! Aparenta que tu clave fue cambiada fuera de %s (de tus directorios). Puedes actualizar la contraseña de tu clave privadaen las configuraciones personales para recobrar el acceso a tus archivos encriptados.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.", - "Initial encryption started... This can take some time. Please wait." : "Encriptación inicial comenzada... Esto puede durar un tiempo. Por favor espere.", - "Initial encryption running... Please try again later." : "Encriptación inicial corriendo... Por favor intente mas tarde. ", - "Missing requirements." : "Requisitos incompletos.", - "Following users are not set up for encryption:" : "Los siguientes usuarios no fueron configurados para encriptar:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):", - "Recovery key password" : "Contraseña de recuperación de clave", - "Repeat Recovery key password" : "Repetir la contraseña de la clave de recuperación", - "Enabled" : "Habilitado", - "Disabled" : "Deshabilitado", - "Change recovery key password:" : "Cambiar contraseña para recuperar la clave:", - "Old Recovery key password" : "Contraseña antigua de recuperación de clave", - "New Recovery key password" : "Nueva contraseña de recuperación de clave", - "Repeat New Recovery key password" : "Repetir Nueva contraseña para la clave de recuperación", - "Change Password" : "Cambiar contraseña", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos", - "Old log-in password" : "Contraseña anterior", - "Current log-in password" : "Contraseña actual", - "Update Private Key Password" : "Actualizar contraseña de la clave privada", - "Enable password recovery:" : "Habilitar recuperación de contraseña:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/es_CL.js b/apps/files_encryption/l10n/es_CL.js deleted file mode 100644 index 5863354a6f1..00000000000 --- a/apps/files_encryption/l10n/es_CL.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Error desconocido" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/es_CL.json b/apps/files_encryption/l10n/es_CL.json deleted file mode 100644 index 8573fba4ca1..00000000000 --- a/apps/files_encryption/l10n/es_CL.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "Error desconocido" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/es_MX.js b/apps/files_encryption/l10n/es_MX.js deleted file mode 100644 index 29721e7904e..00000000000 --- a/apps/files_encryption/l10n/es_MX.js +++ /dev/null @@ -1,37 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Error desconocido", - "Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos", - "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!", - "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", - "Password successfully changed." : "Su contraseña ha sido cambiada", - "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", - "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", - "File recovery settings updated" : "Opciones de recuperación de archivos actualizada", - "Could not update file recovery" : "No se pudo actualizar la recuperación de archivos", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", - "Initial encryption started... This can take some time. Please wait." : "Encriptación iniciada... Esto puede tomar un tiempo. Por favor espere.", - "Missing requirements." : "Requisitos incompletos.", - "Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);", - "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", - "Enabled" : "Habilitar", - "Disabled" : "Deshabilitado", - "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Antigua clave de recuperación", - "New Recovery key password" : "Nueva clave de recuperación", - "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", - "Change Password" : "Cambiar contraseña", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.", - "Old log-in password" : "Contraseña de acceso antigua", - "Current log-in password" : "Contraseña de acceso actual", - "Update Private Key Password" : "Actualizar Contraseña de Clave Privada", - "Enable password recovery:" : "Habilitar la recuperación de contraseña:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/es_MX.json b/apps/files_encryption/l10n/es_MX.json deleted file mode 100644 index e8c5d52d457..00000000000 --- a/apps/files_encryption/l10n/es_MX.json +++ /dev/null @@ -1,35 +0,0 @@ -{ "translations": { - "Unknown error" : "Error desconocido", - "Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos", - "Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!", - "Recovery key successfully disabled" : "Clave de recuperación deshabilitada", - "Password successfully changed." : "Su contraseña ha sido cambiada", - "Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.", - "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.", - "File recovery settings updated" : "Opciones de recuperación de archivos actualizada", - "Could not update file recovery" : "No se pudo actualizar la recuperación de archivos", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", - "Initial encryption started... This can take some time. Please wait." : "Encriptación iniciada... Esto puede tomar un tiempo. Por favor espere.", - "Missing requirements." : "Requisitos incompletos.", - "Following users are not set up for encryption:" : "Los siguientes usuarios no han sido configurados para el cifrado:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);", - "Recovery key password" : "Contraseña de clave de recuperación", - "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación", - "Enabled" : "Habilitar", - "Disabled" : "Deshabilitado", - "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", - "Old Recovery key password" : "Antigua clave de recuperación", - "New Recovery key password" : "Nueva clave de recuperación", - "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación", - "Change Password" : "Cambiar contraseña", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.", - "Old log-in password" : "Contraseña de acceso antigua", - "Current log-in password" : "Contraseña de acceso actual", - "Update Private Key Password" : "Actualizar Contraseña de Clave Privada", - "Enable password recovery:" : "Habilitar la recuperación de contraseña:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/et_EE.js b/apps/files_encryption/l10n/et_EE.js deleted file mode 100644 index 0e293cc0ee6..00000000000 --- a/apps/files_encryption/l10n/et_EE.js +++ /dev/null @@ -1,51 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Tundmatu viga", - "Missing recovery key password" : "Muuda taastevõtme parool", - "Please repeat the recovery key password" : "Palun korda uut taastevõtme parooli", - "Repeated recovery key password does not match the provided recovery key password" : "Lahtritesse sisestatud taastevõtme paroolid ei kattu", - "Recovery key successfully enabled" : "Taastevõtme lubamine õnnestus", - "Could not disable recovery key. Please check your recovery key password!" : "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!", - "Recovery key successfully disabled" : "Taastevõtme keelamine õnnestus", - "Please provide the old recovery password" : "Palun sisesta vana taastevõtme parool", - "Please provide a new recovery password" : "Palun sisesta uus taastevõtme parool", - "Please repeat the new recovery password" : "Palun korda uut taastevõtme parooli", - "Password successfully changed." : "Parool edukalt vahetatud.", - "Could not change the password. Maybe the old password was not correct." : "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.", - "Could not update the private key password." : "Ei suutnud uuendada privaatse võtme parooli.", - "The old password was not correct, please try again." : "Vana parool polnud õige, palun proovi uuesti.", - "The current log-in password was not correct, please try again." : "Praeguse sisselogimise parool polnud õige, palun proovi uuesti.", - "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.", - "File recovery settings updated" : "Faili taaste seaded uuendatud", - "Could not update file recovery" : "Ei suuda uuendada taastefaili", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krüpteerimise rakend pole käivitatud. Võib-olla krüpteerimise rakend taaskäivitati sinu sessiooni kestel. Palun proovi logida välja ning uuesti sisse käivitamaks krüpteerimise rakendit.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sinu provaatne võti pole kehtiv! Tõenäoliselt mudueti parooli väljaspool kausta %s (nt. sinu ettevõtte kaust). Sa saad uuendada oma privaatse võtme parooli oma isiklikes seadetes, et taastada ligipääs sinu krüpteeritud failidele.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.", - "Unknown error. Please check your system settings or contact your administrator" : "Tundmatu viga. Palun võta ühendust oma administraatoriga.", - "Initial encryption started... This can take some time. Please wait." : "Algne krüpteerimine käivitati... See võib võtta natuke aega. Palun oota.", - "Initial encryption running... Please try again later." : "Toimub esmane krüpteerimine... Palun proovi hiljem uuesti.", - "Missing requirements." : "Nõutavad on puudu.", - "Following users are not set up for encryption:" : "Järgmised kasutajad pole seadistatud krüpteeringuks:", - "Go directly to your %spersonal settings%s." : "Liigi otse oma %s isiklike seadete %s juurde.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):", - "Recovery key password" : "Taastevõtme parool", - "Repeat Recovery key password" : "Korda taastevõtme parooli", - "Enabled" : "Sisse lülitatud", - "Disabled" : "Väljalülitatud", - "Change recovery key password:" : "Muuda taastevõtme parooli:", - "Old Recovery key password" : "Vana taastevõtme parool", - "New Recovery key password" : "Uus taastevõtme parool", - "Repeat New Recovery key password" : "Korda uut taastevõtme parooli", - "Change Password" : "Muuda parooli", - "Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.", - "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Kui sa ei mäleta oma vana parooli, siis palu oma süsteemihalduril taastada ligipääs failidele.", - "Old log-in password" : "Vana sisselogimise parool", - "Current log-in password" : "Praegune sisselogimise parool", - "Update Private Key Password" : "Uuenda privaatse võtme parooli", - "Enable password recovery:" : "Luba parooli taaste:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/et_EE.json b/apps/files_encryption/l10n/et_EE.json deleted file mode 100644 index c63c9e40e97..00000000000 --- a/apps/files_encryption/l10n/et_EE.json +++ /dev/null @@ -1,49 +0,0 @@ -{ "translations": { - "Unknown error" : "Tundmatu viga", - "Missing recovery key password" : "Muuda taastevõtme parool", - "Please repeat the recovery key password" : "Palun korda uut taastevõtme parooli", - "Repeated recovery key password does not match the provided recovery key password" : "Lahtritesse sisestatud taastevõtme paroolid ei kattu", - "Recovery key successfully enabled" : "Taastevõtme lubamine õnnestus", - "Could not disable recovery key. Please check your recovery key password!" : "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!", - "Recovery key successfully disabled" : "Taastevõtme keelamine õnnestus", - "Please provide the old recovery password" : "Palun sisesta vana taastevõtme parool", - "Please provide a new recovery password" : "Palun sisesta uus taastevõtme parool", - "Please repeat the new recovery password" : "Palun korda uut taastevõtme parooli", - "Password successfully changed." : "Parool edukalt vahetatud.", - "Could not change the password. Maybe the old password was not correct." : "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.", - "Could not update the private key password." : "Ei suutnud uuendada privaatse võtme parooli.", - "The old password was not correct, please try again." : "Vana parool polnud õige, palun proovi uuesti.", - "The current log-in password was not correct, please try again." : "Praeguse sisselogimise parool polnud õige, palun proovi uuesti.", - "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.", - "File recovery settings updated" : "Faili taaste seaded uuendatud", - "Could not update file recovery" : "Ei suuda uuendada taastefaili", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krüpteerimise rakend pole käivitatud. Võib-olla krüpteerimise rakend taaskäivitati sinu sessiooni kestel. Palun proovi logida välja ning uuesti sisse käivitamaks krüpteerimise rakendit.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sinu provaatne võti pole kehtiv! Tõenäoliselt mudueti parooli väljaspool kausta %s (nt. sinu ettevõtte kaust). Sa saad uuendada oma privaatse võtme parooli oma isiklikes seadetes, et taastada ligipääs sinu krüpteeritud failidele.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.", - "Unknown error. Please check your system settings or contact your administrator" : "Tundmatu viga. Palun võta ühendust oma administraatoriga.", - "Initial encryption started... This can take some time. Please wait." : "Algne krüpteerimine käivitati... See võib võtta natuke aega. Palun oota.", - "Initial encryption running... Please try again later." : "Toimub esmane krüpteerimine... Palun proovi hiljem uuesti.", - "Missing requirements." : "Nõutavad on puudu.", - "Following users are not set up for encryption:" : "Järgmised kasutajad pole seadistatud krüpteeringuks:", - "Go directly to your %spersonal settings%s." : "Liigi otse oma %s isiklike seadete %s juurde.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):", - "Recovery key password" : "Taastevõtme parool", - "Repeat Recovery key password" : "Korda taastevõtme parooli", - "Enabled" : "Sisse lülitatud", - "Disabled" : "Väljalülitatud", - "Change recovery key password:" : "Muuda taastevõtme parooli:", - "Old Recovery key password" : "Vana taastevõtme parool", - "New Recovery key password" : "Uus taastevõtme parool", - "Repeat New Recovery key password" : "Korda uut taastevõtme parooli", - "Change Password" : "Muuda parooli", - "Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.", - "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Kui sa ei mäleta oma vana parooli, siis palu oma süsteemihalduril taastada ligipääs failidele.", - "Old log-in password" : "Vana sisselogimise parool", - "Current log-in password" : "Praegune sisselogimise parool", - "Update Private Key Password" : "Uuenda privaatse võtme parooli", - "Enable password recovery:" : "Luba parooli taaste:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/eu.js b/apps/files_encryption/l10n/eu.js deleted file mode 100644 index d1d1b55f73b..00000000000 --- a/apps/files_encryption/l10n/eu.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Errore ezezaguna", - "Missing recovery key password" : "Berreskurapen gakoaren pasahitza falta da", - "Please repeat the recovery key password" : "Mesedez errepikatu berreskuratze gakoaren pasahitza", - "Repeated recovery key password does not match the provided recovery key password" : "Errepikatutako berreskuratze gakoaren pasahitza ez dator bat berreskuratze gakoaren pasahitzarekin", - "Recovery key successfully enabled" : "Berreskuratze gakoa behar bezala gaitua", - "Could not disable recovery key. Please check your recovery key password!" : "Ezin da berreskuratze gako desgaitu. Egiaztatu berreskuratze gako pasahitza!", - "Recovery key successfully disabled" : "Berreskuratze gakoa behar bezala desgaitu da", - "Please provide the old recovery password" : "Mesedez sartu berreskuratze pasahitz zaharra", - "Please provide a new recovery password" : "Mesedez sartu berreskuratze pasahitz berria", - "Please repeat the new recovery password" : "Mesedez errepikatu berreskuratze pasahitz berria", - "Password successfully changed." : "Pasahitza behar bezala aldatu da.", - "Could not change the password. Maybe the old password was not correct." : "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.", - "Could not update the private key password." : "Ezin izan da gako pribatu pasahitza eguneratu. ", - "The old password was not correct, please try again." : "Pasahitz zaharra ez da egokia. Mesedez, saiatu berriro.", - "The current log-in password was not correct, please try again." : "Oraingo pasahitza ez da egokia. Mesedez, saiatu berriro.", - "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.", - "File recovery settings updated" : "Fitxategi berreskuratze ezarpenak eguneratuak", - "Could not update file recovery" : "Ezin da fitxategi berreskuratzea eguneratu", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Enkriptazio aplikazioa ez dago hasieratuta! Agian aplikazioa birgaitu egin da zure saioa bitartean. Mesdez atear eta sartu berriz enkriptazio aplikazioa hasierarazteko.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Zure gako pribatua ez da egokia! Seguruaski zure pasahitza %s-tik kanpo aldatu da (adb. zure direktorio korporatiboa). Zure gako pribatuaren pasahitza eguneratu dezakezu zure ezarpen pertsonaletan zure enkriptatutako fitxategiak berreskuratzeko.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", - "Unknown error. Please check your system settings or contact your administrator" : "Errore ezezaguna. Mesedez, egiaztatu zure sistemaren ezarpenak edo jarri zure administrariarekin kontaktuan.", - "Initial encryption started... This can take some time. Please wait." : "Hasierako enkriptazioa hasi da... Honek denbora har dezake. Mesedez itxaron.", - "Initial encryption running... Please try again later." : "Hasierako enkriptaketa abian... mesedez, saiatu beranduago.", - "Missing requirements." : "Eskakizun batzuk ez dira betetzen.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Mesedez ziurtatu OpenSSL eta PHP hedapena instaltuta eta ongi konfiguratuta daudela. Oraingoz enkriptazio aplikazioa desgaitua izan da.", - "Following users are not set up for encryption:" : "Hurrengo erabiltzaileak ez daude enktriptatzeko konfiguratutak:", - "Go directly to your %spersonal settings%s." : "Joan zuzenean zure %sezarpen pertsonaletara%s.", - "Server-side Encryption" : "Zerbitzari aldeko enkriptazioa", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", - "Enable recovery key (allow to recover users files in case of password loss):" : "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):", - "Recovery key password" : "Berreskuratze gako pasahitza", - "Repeat Recovery key password" : "Errepikatu berreskuratze gakoaren pasahitza", - "Enabled" : "Gaitua", - "Disabled" : "Ez-gaitua", - "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", - "Old Recovery key password" : "Berreskuratze gako pasahitz zaharra", - "New Recovery key password" : "Berreskuratze gako pasahitz berria", - "Repeat New Recovery key password" : "Errepikatu berreskuratze gako berriaren pasahitza", - "Change Password" : "Aldatu Pasahitza", - "Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", - "Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ez baduzu zure pasahitz zaharra gogoratzen eskatu zure administratzaileari zure fitxategiak berreskuratzeko.", - "Old log-in password" : "Sartzeko pasahitz zaharra", - "Current log-in password" : "Sartzeko oraingo pasahitza", - "Update Private Key Password" : "Eguneratu gako pasahitza pribatua", - "Enable password recovery:" : "Gaitu pasahitzaren berreskuratzea:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/eu.json b/apps/files_encryption/l10n/eu.json deleted file mode 100644 index 3bd66a039f3..00000000000 --- a/apps/files_encryption/l10n/eu.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Errore ezezaguna", - "Missing recovery key password" : "Berreskurapen gakoaren pasahitza falta da", - "Please repeat the recovery key password" : "Mesedez errepikatu berreskuratze gakoaren pasahitza", - "Repeated recovery key password does not match the provided recovery key password" : "Errepikatutako berreskuratze gakoaren pasahitza ez dator bat berreskuratze gakoaren pasahitzarekin", - "Recovery key successfully enabled" : "Berreskuratze gakoa behar bezala gaitua", - "Could not disable recovery key. Please check your recovery key password!" : "Ezin da berreskuratze gako desgaitu. Egiaztatu berreskuratze gako pasahitza!", - "Recovery key successfully disabled" : "Berreskuratze gakoa behar bezala desgaitu da", - "Please provide the old recovery password" : "Mesedez sartu berreskuratze pasahitz zaharra", - "Please provide a new recovery password" : "Mesedez sartu berreskuratze pasahitz berria", - "Please repeat the new recovery password" : "Mesedez errepikatu berreskuratze pasahitz berria", - "Password successfully changed." : "Pasahitza behar bezala aldatu da.", - "Could not change the password. Maybe the old password was not correct." : "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.", - "Could not update the private key password." : "Ezin izan da gako pribatu pasahitza eguneratu. ", - "The old password was not correct, please try again." : "Pasahitz zaharra ez da egokia. Mesedez, saiatu berriro.", - "The current log-in password was not correct, please try again." : "Oraingo pasahitza ez da egokia. Mesedez, saiatu berriro.", - "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.", - "File recovery settings updated" : "Fitxategi berreskuratze ezarpenak eguneratuak", - "Could not update file recovery" : "Ezin da fitxategi berreskuratzea eguneratu", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Enkriptazio aplikazioa ez dago hasieratuta! Agian aplikazioa birgaitu egin da zure saioa bitartean. Mesdez atear eta sartu berriz enkriptazio aplikazioa hasierarazteko.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Zure gako pribatua ez da egokia! Seguruaski zure pasahitza %s-tik kanpo aldatu da (adb. zure direktorio korporatiboa). Zure gako pribatuaren pasahitza eguneratu dezakezu zure ezarpen pertsonaletan zure enkriptatutako fitxategiak berreskuratzeko.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", - "Unknown error. Please check your system settings or contact your administrator" : "Errore ezezaguna. Mesedez, egiaztatu zure sistemaren ezarpenak edo jarri zure administrariarekin kontaktuan.", - "Initial encryption started... This can take some time. Please wait." : "Hasierako enkriptazioa hasi da... Honek denbora har dezake. Mesedez itxaron.", - "Initial encryption running... Please try again later." : "Hasierako enkriptaketa abian... mesedez, saiatu beranduago.", - "Missing requirements." : "Eskakizun batzuk ez dira betetzen.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Mesedez ziurtatu OpenSSL eta PHP hedapena instaltuta eta ongi konfiguratuta daudela. Oraingoz enkriptazio aplikazioa desgaitua izan da.", - "Following users are not set up for encryption:" : "Hurrengo erabiltzaileak ez daude enktriptatzeko konfiguratutak:", - "Go directly to your %spersonal settings%s." : "Joan zuzenean zure %sezarpen pertsonaletara%s.", - "Server-side Encryption" : "Zerbitzari aldeko enkriptazioa", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", - "Enable recovery key (allow to recover users files in case of password loss):" : "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):", - "Recovery key password" : "Berreskuratze gako pasahitza", - "Repeat Recovery key password" : "Errepikatu berreskuratze gakoaren pasahitza", - "Enabled" : "Gaitua", - "Disabled" : "Ez-gaitua", - "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", - "Old Recovery key password" : "Berreskuratze gako pasahitz zaharra", - "New Recovery key password" : "Berreskuratze gako pasahitz berria", - "Repeat New Recovery key password" : "Errepikatu berreskuratze gako berriaren pasahitza", - "Change Password" : "Aldatu Pasahitza", - "Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", - "Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ez baduzu zure pasahitz zaharra gogoratzen eskatu zure administratzaileari zure fitxategiak berreskuratzeko.", - "Old log-in password" : "Sartzeko pasahitz zaharra", - "Current log-in password" : "Sartzeko oraingo pasahitza", - "Update Private Key Password" : "Eguneratu gako pasahitza pribatua", - "Enable password recovery:" : "Gaitu pasahitzaren berreskuratzea:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/fa.js b/apps/files_encryption/l10n/fa.js deleted file mode 100644 index e05d6e4d3a4..00000000000 --- a/apps/files_encryption/l10n/fa.js +++ /dev/null @@ -1,30 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "خطای نامشخص", - "Recovery key successfully enabled" : "کلید بازیابی با موفقیت فعال شده است.", - "Could not disable recovery key. Please check your recovery key password!" : "کلید بازیابی را نمی تواند غیرفعال نماید. لطفا رمزعبور کلید بازیابی خود را بررسی کنید!", - "Recovery key successfully disabled" : "کلید بازیابی با موفقیت غیر فعال شده است.", - "Password successfully changed." : "رمزعبور با موفقیت تغییر یافت.", - "Could not change the password. Maybe the old password was not correct." : "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.", - "Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.", - "File recovery settings updated" : "تنظیمات بازیابی فایل به روز شده است.", - "Could not update file recovery" : "به روز رسانی بازیابی فایل را نمی تواند انجام دهد.", - "Missing requirements." : "نیازمندی های گمشده", - "Following users are not set up for encryption:" : "کاربران زیر برای رمزنگاری تنظیم نشده اند", - "Enable recovery key (allow to recover users files in case of password loss):" : "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):", - "Recovery key password" : "رمزعبور کلید بازیابی", - "Enabled" : "فعال شده", - "Disabled" : "غیرفعال شده", - "Change recovery key password:" : "تغییر رمزعبور کلید بازیابی:", - "Old Recovery key password" : "رمزعبور قدیمی کلید بازیابی ", - "New Recovery key password" : "رمزعبور جدید کلید بازیابی", - "Change Password" : "تغییر رمزعبور", - " If you don't remember your old password you can ask your administrator to recover your files." : "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.", - "Old log-in password" : "رمزعبور قدیمی", - "Current log-in password" : "رمزعبور فعلی", - "Update Private Key Password" : "به روز رسانی رمزعبور کلید خصوصی", - "Enable password recovery:" : "فعال سازی بازیابی رمزعبور:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید." -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/fa.json b/apps/files_encryption/l10n/fa.json deleted file mode 100644 index f048a93c1ad..00000000000 --- a/apps/files_encryption/l10n/fa.json +++ /dev/null @@ -1,28 +0,0 @@ -{ "translations": { - "Unknown error" : "خطای نامشخص", - "Recovery key successfully enabled" : "کلید بازیابی با موفقیت فعال شده است.", - "Could not disable recovery key. Please check your recovery key password!" : "کلید بازیابی را نمی تواند غیرفعال نماید. لطفا رمزعبور کلید بازیابی خود را بررسی کنید!", - "Recovery key successfully disabled" : "کلید بازیابی با موفقیت غیر فعال شده است.", - "Password successfully changed." : "رمزعبور با موفقیت تغییر یافت.", - "Could not change the password. Maybe the old password was not correct." : "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.", - "Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.", - "File recovery settings updated" : "تنظیمات بازیابی فایل به روز شده است.", - "Could not update file recovery" : "به روز رسانی بازیابی فایل را نمی تواند انجام دهد.", - "Missing requirements." : "نیازمندی های گمشده", - "Following users are not set up for encryption:" : "کاربران زیر برای رمزنگاری تنظیم نشده اند", - "Enable recovery key (allow to recover users files in case of password loss):" : "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):", - "Recovery key password" : "رمزعبور کلید بازیابی", - "Enabled" : "فعال شده", - "Disabled" : "غیرفعال شده", - "Change recovery key password:" : "تغییر رمزعبور کلید بازیابی:", - "Old Recovery key password" : "رمزعبور قدیمی کلید بازیابی ", - "New Recovery key password" : "رمزعبور جدید کلید بازیابی", - "Change Password" : "تغییر رمزعبور", - " If you don't remember your old password you can ask your administrator to recover your files." : "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.", - "Old log-in password" : "رمزعبور قدیمی", - "Current log-in password" : "رمزعبور فعلی", - "Update Private Key Password" : "به روز رسانی رمزعبور کلید خصوصی", - "Enable password recovery:" : "فعال سازی بازیابی رمزعبور:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید." -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/fi_FI.js b/apps/files_encryption/l10n/fi_FI.js deleted file mode 100644 index d72e2da452f..00000000000 --- a/apps/files_encryption/l10n/fi_FI.js +++ /dev/null @@ -1,51 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Tuntematon virhe", - "Missing recovery key password" : "Palautusavaimen salasana puuttuu", - "Please repeat the recovery key password" : "Toista palautusavaimen salasana", - "Repeated recovery key password does not match the provided recovery key password" : "Toistamiseen annettu palautusavaimen salasana ei täsmää annettua palautusavaimen salasanaa", - "Recovery key successfully enabled" : "Palautusavain kytketty päälle onnistuneesti", - "Could not disable recovery key. Please check your recovery key password!" : "Palautusavaimen poistaminen käytöstä ei onnistunut. Tarkista palautusavaimesi salasana!", - "Recovery key successfully disabled" : "Palautusavain poistettu onnistuneesti käytöstä", - "Please provide the old recovery password" : "Anna vanha palautussalasana", - "Please provide a new recovery password" : "Anna uusi palautussalasana", - "Please repeat the new recovery password" : "Toista uusi palautussalasana", - "Password successfully changed." : "Salasana vaihdettiin onnistuneesti.", - "Could not change the password. Maybe the old password was not correct." : "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.", - "Could not update the private key password." : "Yksityisen avaimen salasanaa ei voitu päivittää.", - "The old password was not correct, please try again." : "Vanha salasana oli väärin, yritä uudelleen.", - "The current log-in password was not correct, please try again." : "Nykyinen kirjautumissalasana ei ollut oikein, yritä uudelleen.", - "Private key password successfully updated." : "Yksityisen avaimen salasana päivitetty onnistuneesti.", - "File recovery settings updated" : "Tiedostopalautuksen asetukset päivitetty", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Salaussovellusta ei ole käynnissä! Kenties salaussovellus otettiin uudelleen käyttöön nykyisen istuntosi aikana. Kirjaudu ulos ja takaisin sisään saadaksesi salaussovelluksen käyttöön.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tämän tiedoston salauksen purkaminen ei onnistu. Kyseessä on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto kanssasi uudelleen.", - "Unknown error. Please check your system settings or contact your administrator" : "Tuntematon virhe. Tarkista järjestelmän asetukset tai ole yhteydessä ylläpitäjään.", - "Initial encryption started... This can take some time. Please wait." : "Ensimmäinen salauskerta käynnistetty... Tämä saattaa kestää hetken.", - "Initial encryption running... Please try again later." : "Ensimmäinen salauskerta on meneillään... Yritä myöhemmin uudelleen.", - "Missing requirements." : "Puuttuvat vaatimukset.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Varmista, että OpenSSL ja PHP-laajennus ovat käytössä ja niiden asetukset ovat oikein. Salaussovellus on poistettu toistaiseksi käytöstä.", - "Following users are not set up for encryption:" : "Seuraavat käyttäjät eivät ole määrittäneet salausta:", - "Go directly to your %spersonal settings%s." : "Siirry suoraan %shenkilökohtaisiin asetuksiisi%s.", - "Server-side Encryption" : "Palvelinpuolen salaus", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):", - "Recovery key password" : "Palautusavaimen salasana", - "Repeat Recovery key password" : "Toista palautusavaimen salasana", - "Enabled" : "Käytössä", - "Disabled" : "Ei käytössä", - "Change recovery key password:" : "Vaihda palautusavaimen salasana:", - "Old Recovery key password" : "Vanha palautusavaimen salasana", - "New Recovery key password" : "Uusi palautusavaimen salasana", - "Repeat New Recovery key password" : "Toista uusi palautusavaimen salasana", - "Change Password" : "Vaihda salasana", - "Your private key password no longer matches your log-in password." : "Salaisen avaimesi salasana ei enää vastaa kirjautumissalasanaasi.", - "Set your old private key password to your current log-in password:" : "Aseta yksityisen avaimen vanha salasana vastaamaan nykyistä kirjautumissalasanaasi:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.", - "Old log-in password" : "Vanha kirjautumissalasana", - "Current log-in password" : "Nykyinen kirjautumissalasana", - "Update Private Key Password" : "Päivitä yksityisen avaimen salasana", - "Enable password recovery:" : "Ota salasanan palautus käyttöön:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tämän valinnan käyttäminen mahdollistaa pääsyn salattuihin tiedostoihisi, jos salasana unohtuu" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/fi_FI.json b/apps/files_encryption/l10n/fi_FI.json deleted file mode 100644 index 2b0d92dfd55..00000000000 --- a/apps/files_encryption/l10n/fi_FI.json +++ /dev/null @@ -1,49 +0,0 @@ -{ "translations": { - "Unknown error" : "Tuntematon virhe", - "Missing recovery key password" : "Palautusavaimen salasana puuttuu", - "Please repeat the recovery key password" : "Toista palautusavaimen salasana", - "Repeated recovery key password does not match the provided recovery key password" : "Toistamiseen annettu palautusavaimen salasana ei täsmää annettua palautusavaimen salasanaa", - "Recovery key successfully enabled" : "Palautusavain kytketty päälle onnistuneesti", - "Could not disable recovery key. Please check your recovery key password!" : "Palautusavaimen poistaminen käytöstä ei onnistunut. Tarkista palautusavaimesi salasana!", - "Recovery key successfully disabled" : "Palautusavain poistettu onnistuneesti käytöstä", - "Please provide the old recovery password" : "Anna vanha palautussalasana", - "Please provide a new recovery password" : "Anna uusi palautussalasana", - "Please repeat the new recovery password" : "Toista uusi palautussalasana", - "Password successfully changed." : "Salasana vaihdettiin onnistuneesti.", - "Could not change the password. Maybe the old password was not correct." : "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.", - "Could not update the private key password." : "Yksityisen avaimen salasanaa ei voitu päivittää.", - "The old password was not correct, please try again." : "Vanha salasana oli väärin, yritä uudelleen.", - "The current log-in password was not correct, please try again." : "Nykyinen kirjautumissalasana ei ollut oikein, yritä uudelleen.", - "Private key password successfully updated." : "Yksityisen avaimen salasana päivitetty onnistuneesti.", - "File recovery settings updated" : "Tiedostopalautuksen asetukset päivitetty", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Salaussovellusta ei ole käynnissä! Kenties salaussovellus otettiin uudelleen käyttöön nykyisen istuntosi aikana. Kirjaudu ulos ja takaisin sisään saadaksesi salaussovelluksen käyttöön.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tämän tiedoston salauksen purkaminen ei onnistu. Kyseessä on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto kanssasi uudelleen.", - "Unknown error. Please check your system settings or contact your administrator" : "Tuntematon virhe. Tarkista järjestelmän asetukset tai ole yhteydessä ylläpitäjään.", - "Initial encryption started... This can take some time. Please wait." : "Ensimmäinen salauskerta käynnistetty... Tämä saattaa kestää hetken.", - "Initial encryption running... Please try again later." : "Ensimmäinen salauskerta on meneillään... Yritä myöhemmin uudelleen.", - "Missing requirements." : "Puuttuvat vaatimukset.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Varmista, että OpenSSL ja PHP-laajennus ovat käytössä ja niiden asetukset ovat oikein. Salaussovellus on poistettu toistaiseksi käytöstä.", - "Following users are not set up for encryption:" : "Seuraavat käyttäjät eivät ole määrittäneet salausta:", - "Go directly to your %spersonal settings%s." : "Siirry suoraan %shenkilökohtaisiin asetuksiisi%s.", - "Server-side Encryption" : "Palvelinpuolen salaus", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):", - "Recovery key password" : "Palautusavaimen salasana", - "Repeat Recovery key password" : "Toista palautusavaimen salasana", - "Enabled" : "Käytössä", - "Disabled" : "Ei käytössä", - "Change recovery key password:" : "Vaihda palautusavaimen salasana:", - "Old Recovery key password" : "Vanha palautusavaimen salasana", - "New Recovery key password" : "Uusi palautusavaimen salasana", - "Repeat New Recovery key password" : "Toista uusi palautusavaimen salasana", - "Change Password" : "Vaihda salasana", - "Your private key password no longer matches your log-in password." : "Salaisen avaimesi salasana ei enää vastaa kirjautumissalasanaasi.", - "Set your old private key password to your current log-in password:" : "Aseta yksityisen avaimen vanha salasana vastaamaan nykyistä kirjautumissalasanaasi:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.", - "Old log-in password" : "Vanha kirjautumissalasana", - "Current log-in password" : "Nykyinen kirjautumissalasana", - "Update Private Key Password" : "Päivitä yksityisen avaimen salasana", - "Enable password recovery:" : "Ota salasanan palautus käyttöön:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tämän valinnan käyttäminen mahdollistaa pääsyn salattuihin tiedostoihisi, jos salasana unohtuu" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/fr.js b/apps/files_encryption/l10n/fr.js deleted file mode 100644 index 09ddd64cb40..00000000000 --- a/apps/files_encryption/l10n/fr.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Erreur Inconnue ", - "Missing recovery key password" : "Mot de passe de la clef de récupération manquant", - "Please repeat the recovery key password" : "Répétez le mot de passe de la clef de récupération", - "Repeated recovery key password does not match the provided recovery key password" : "Le mot de passe de la clef de récupération et sa répétition ne sont pas identiques.", - "Recovery key successfully enabled" : "Clef de récupération activée avec succès", - "Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clef de récupération. Veuillez vérifier le mot de passe de votre clef de récupération !", - "Recovery key successfully disabled" : "Clef de récupération désactivée avec succès", - "Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération", - "Please provide a new recovery password" : "Veuillez entrer un nouveau mot de passe de récupération", - "Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération", - "Password successfully changed." : "Mot de passe changé avec succès.", - "Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.", - "Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clef privée.", - "The old password was not correct, please try again." : "L'ancien mot de passe est incorrect. Veuillez réessayer.", - "The current log-in password was not correct, please try again." : "Le mot de passe actuel n'est pas correct, veuillez réessayer.", - "Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.", - "File recovery settings updated" : "Paramètres de récupération de fichiers mis à jour", - "Could not update file recovery" : "Impossible de mettre à jour les fichiers de récupération", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'application de chiffrement n'est pas initialisée ! Peut-être que cette application a été réactivée pendant votre session. Veuillez essayer de vous déconnecter et ensuite de vous reconnecter pour initialiser l'application de chiffrement.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée n'est pas valide ! Votre mot de passe a probablement été modifié hors de %s (ex. votre annuaire d'entreprise). Vous pouvez mettre à jour le mot de passe de votre clef privée dans les paramètres personnels pour pouvoir récupérer l'accès à vos fichiers chiffrés.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier : il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le partager à nouveau avec vous.", - "Unknown error. Please check your system settings or contact your administrator" : "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.", - "Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.", - "Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez ré-essayer ultérieurement.", - "Missing requirements." : "Dépendances manquantes.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Merci de vous assurer que OpenSSL et son extension PHP sont activés et configurés correctement. Pour l'instant, l'application de chiffrement a été désactivée.", - "Following users are not set up for encryption:" : "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :", - "Go directly to your %spersonal settings%s." : "Aller à %svos paramètres personnels%s.", - "Server-side Encryption" : "Chiffrement côté serveur", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).", - "Recovery key password" : "Mot de passe de la clef de récupération", - "Repeat Recovery key password" : "Répétez le mot de passe de la clef de récupération", - "Enabled" : "Activé", - "Disabled" : "Désactivé", - "Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :", - "Old Recovery key password" : "Ancien mot de passe de la clef de récupération", - "New Recovery key password" : "Nouveau mot de passe de la clef de récupération", - "Repeat New Recovery key password" : "Répétez le nouveau mot de passe de la clef de récupération", - "Change Password" : "Changer de mot de passe", - "Your private key password no longer matches your log-in password." : "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.", - "Set your old private key password to your current log-in password:" : "Faites de votre mot de passe de connexion le mot de passe de votre clef privée :", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.", - "Old log-in password" : "Ancien mot de passe de connexion", - "Current log-in password" : "Actuel mot de passe de connexion", - "Update Private Key Password" : "Mettre à jour le mot de passe de votre clef privée", - "Enable password recovery:" : "Activer la récupération du mot de passe :", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_encryption/l10n/fr.json b/apps/files_encryption/l10n/fr.json deleted file mode 100644 index 3b439872250..00000000000 --- a/apps/files_encryption/l10n/fr.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Erreur Inconnue ", - "Missing recovery key password" : "Mot de passe de la clef de récupération manquant", - "Please repeat the recovery key password" : "Répétez le mot de passe de la clef de récupération", - "Repeated recovery key password does not match the provided recovery key password" : "Le mot de passe de la clef de récupération et sa répétition ne sont pas identiques.", - "Recovery key successfully enabled" : "Clef de récupération activée avec succès", - "Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clef de récupération. Veuillez vérifier le mot de passe de votre clef de récupération !", - "Recovery key successfully disabled" : "Clef de récupération désactivée avec succès", - "Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération", - "Please provide a new recovery password" : "Veuillez entrer un nouveau mot de passe de récupération", - "Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération", - "Password successfully changed." : "Mot de passe changé avec succès.", - "Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.", - "Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clef privée.", - "The old password was not correct, please try again." : "L'ancien mot de passe est incorrect. Veuillez réessayer.", - "The current log-in password was not correct, please try again." : "Le mot de passe actuel n'est pas correct, veuillez réessayer.", - "Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.", - "File recovery settings updated" : "Paramètres de récupération de fichiers mis à jour", - "Could not update file recovery" : "Impossible de mettre à jour les fichiers de récupération", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "L'application de chiffrement n'est pas initialisée ! Peut-être que cette application a été réactivée pendant votre session. Veuillez essayer de vous déconnecter et ensuite de vous reconnecter pour initialiser l'application de chiffrement.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée n'est pas valide ! Votre mot de passe a probablement été modifié hors de %s (ex. votre annuaire d'entreprise). Vous pouvez mettre à jour le mot de passe de votre clef privée dans les paramètres personnels pour pouvoir récupérer l'accès à vos fichiers chiffrés.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier : il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le partager à nouveau avec vous.", - "Unknown error. Please check your system settings or contact your administrator" : "Erreur inconnue. Veuillez vérifier vos paramètres système ou contacter un administrateur.", - "Initial encryption started... This can take some time. Please wait." : "Chiffrement initial démarré... Cela peut prendre un certain temps. Veuillez patienter.", - "Initial encryption running... Please try again later." : "Chiffrement initial en cours... Veuillez ré-essayer ultérieurement.", - "Missing requirements." : "Dépendances manquantes.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Merci de vous assurer que OpenSSL et son extension PHP sont activés et configurés correctement. Pour l'instant, l'application de chiffrement a été désactivée.", - "Following users are not set up for encryption:" : "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :", - "Go directly to your %spersonal settings%s." : "Aller à %svos paramètres personnels%s.", - "Server-side Encryption" : "Chiffrement côté serveur", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).", - "Recovery key password" : "Mot de passe de la clef de récupération", - "Repeat Recovery key password" : "Répétez le mot de passe de la clef de récupération", - "Enabled" : "Activé", - "Disabled" : "Désactivé", - "Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :", - "Old Recovery key password" : "Ancien mot de passe de la clef de récupération", - "New Recovery key password" : "Nouveau mot de passe de la clef de récupération", - "Repeat New Recovery key password" : "Répétez le nouveau mot de passe de la clef de récupération", - "Change Password" : "Changer de mot de passe", - "Your private key password no longer matches your log-in password." : "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.", - "Set your old private key password to your current log-in password:" : "Faites de votre mot de passe de connexion le mot de passe de votre clef privée :", - " If you don't remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.", - "Old log-in password" : "Ancien mot de passe de connexion", - "Current log-in password" : "Actuel mot de passe de connexion", - "Update Private Key Password" : "Mettre à jour le mot de passe de votre clef privée", - "Enable password recovery:" : "Activer la récupération du mot de passe :", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/gl.js b/apps/files_encryption/l10n/gl.js deleted file mode 100644 index bd44dc65bc7..00000000000 --- a/apps/files_encryption/l10n/gl.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Produciuse un erro descoñecido", - "Missing recovery key password" : "Falta a chave de recuperación", - "Please repeat the recovery key password" : "Repita a chave de recuperación", - "Repeated recovery key password does not match the provided recovery key password" : "A repetición da chave de recuperación non coincide coa chave de recuperación estabelecida", - "Recovery key successfully enabled" : "Activada satisfactoriamente a chave de recuperación", - "Could not disable recovery key. Please check your recovery key password!" : "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", - "Recovery key successfully disabled" : "Desactivada satisfactoriamente a chave de recuperación", - "Please provide the old recovery password" : "Introduza a chave de recuperación antiga", - "Please provide a new recovery password" : "Introduza a nova chave de recuperación", - "Please repeat the new recovery password" : "Repita a nova chave de recuperación", - "Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente", - "Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.", - "Could not update the private key password." : "Non foi posíbel actualizar o contrasinal da chave privada.", - "The old password was not correct, please try again." : "O contrasinal antigo non é correcto, ténteo de novo.", - "The current log-in password was not correct, please try again." : "O actual contrasinal de acceso non é correcto, ténteo de novo.", - "Private key password successfully updated." : "A chave privada foi actualizada correctamente.", - "File recovery settings updated" : "Actualizouse o ficheiro de axustes de recuperación", - "Could not update file recovery" : "Non foi posíbel actualizar o ficheiro de recuperación", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Non se iniciou a aplicación de cifrado! Quizais volva a activarse durante a sesión. Tente pechar a sesión e volver iniciala para que tamén se inicie a aplicación de cifrado.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada non é correcta! É probábel que o seu contrasinal teña sido cambiado desde o exterior do %s (p.ex. o seu directorio corporativo). Vostede pode actualizar o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", - "Unknown error. Please check your system settings or contact your administrator" : "Produciuse un erro descoñecido. Comprobe os axustes do sistema ou contacte co administrador", - "Initial encryption started... This can take some time. Please wait." : "Comezou o cifrado inicial... Isto pode levar bastante tempo. Agarde.", - "Initial encryption running... Please try again later." : "O cifrado inicial está en execución... Tenteo máis tarde.", - "Missing requirements." : "Non se cumpren os requisitos.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Asegúrese de que está instalado o OpenSSL xunto coa extensión PHP e que estean activados e configurados correctamente. Polo de agora foi desactivada a aplicación de cifrado.", - "Following users are not set up for encryption:" : "Os seguintes usuarios non teñen configuración para o cifrado:", - "Go directly to your %spersonal settings%s." : "Vaia directamente aos seus %saxustes persoais%s.", - "Server-side Encryption" : "Cifrado na parte do servidor", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo", - "Enable recovery key (allow to recover users files in case of password loss):" : "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):", - "Recovery key password" : "Contrasinal da chave de recuperación", - "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación", - "Enabled" : "Activado", - "Disabled" : "Desactivado", - "Change recovery key password:" : "Cambiar o contrasinal da chave de la recuperación:", - "Old Recovery key password" : "Antigo contrasinal da chave de recuperación", - "New Recovery key password" : "Novo contrasinal da chave de recuperación", - "Repeat New Recovery key password" : "Repita o novo contrasinal da chave de recuperación", - "Change Password" : "Cambiar o contrasinal", - "Your private key password no longer matches your log-in password." : "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.", - "Set your old private key password to your current log-in password:" : "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.", - "Old log-in password" : "Contrasinal antigo de acceso", - "Current log-in password" : "Contrasinal actual de acceso", - "Update Private Key Password" : "Actualizar o contrasinal da chave privada", - "Enable password recovery:" : "Activar o contrasinal de recuperación:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/gl.json b/apps/files_encryption/l10n/gl.json deleted file mode 100644 index a1a8e606f1c..00000000000 --- a/apps/files_encryption/l10n/gl.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Produciuse un erro descoñecido", - "Missing recovery key password" : "Falta a chave de recuperación", - "Please repeat the recovery key password" : "Repita a chave de recuperación", - "Repeated recovery key password does not match the provided recovery key password" : "A repetición da chave de recuperación non coincide coa chave de recuperación estabelecida", - "Recovery key successfully enabled" : "Activada satisfactoriamente a chave de recuperación", - "Could not disable recovery key. Please check your recovery key password!" : "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!", - "Recovery key successfully disabled" : "Desactivada satisfactoriamente a chave de recuperación", - "Please provide the old recovery password" : "Introduza a chave de recuperación antiga", - "Please provide a new recovery password" : "Introduza a nova chave de recuperación", - "Please repeat the new recovery password" : "Repita a nova chave de recuperación", - "Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente", - "Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.", - "Could not update the private key password." : "Non foi posíbel actualizar o contrasinal da chave privada.", - "The old password was not correct, please try again." : "O contrasinal antigo non é correcto, ténteo de novo.", - "The current log-in password was not correct, please try again." : "O actual contrasinal de acceso non é correcto, ténteo de novo.", - "Private key password successfully updated." : "A chave privada foi actualizada correctamente.", - "File recovery settings updated" : "Actualizouse o ficheiro de axustes de recuperación", - "Could not update file recovery" : "Non foi posíbel actualizar o ficheiro de recuperación", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Non se iniciou a aplicación de cifrado! Quizais volva a activarse durante a sesión. Tente pechar a sesión e volver iniciala para que tamén se inicie a aplicación de cifrado.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada non é correcta! É probábel que o seu contrasinal teña sido cambiado desde o exterior do %s (p.ex. o seu directorio corporativo). Vostede pode actualizar o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", - "Unknown error. Please check your system settings or contact your administrator" : "Produciuse un erro descoñecido. Comprobe os axustes do sistema ou contacte co administrador", - "Initial encryption started... This can take some time. Please wait." : "Comezou o cifrado inicial... Isto pode levar bastante tempo. Agarde.", - "Initial encryption running... Please try again later." : "O cifrado inicial está en execución... Tenteo máis tarde.", - "Missing requirements." : "Non se cumpren os requisitos.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Asegúrese de que está instalado o OpenSSL xunto coa extensión PHP e que estean activados e configurados correctamente. Polo de agora foi desactivada a aplicación de cifrado.", - "Following users are not set up for encryption:" : "Os seguintes usuarios non teñen configuración para o cifrado:", - "Go directly to your %spersonal settings%s." : "Vaia directamente aos seus %saxustes persoais%s.", - "Server-side Encryption" : "Cifrado na parte do servidor", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo", - "Enable recovery key (allow to recover users files in case of password loss):" : "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):", - "Recovery key password" : "Contrasinal da chave de recuperación", - "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación", - "Enabled" : "Activado", - "Disabled" : "Desactivado", - "Change recovery key password:" : "Cambiar o contrasinal da chave de la recuperación:", - "Old Recovery key password" : "Antigo contrasinal da chave de recuperación", - "New Recovery key password" : "Novo contrasinal da chave de recuperación", - "Repeat New Recovery key password" : "Repita o novo contrasinal da chave de recuperación", - "Change Password" : "Cambiar o contrasinal", - "Your private key password no longer matches your log-in password." : "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.", - "Set your old private key password to your current log-in password:" : "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.", - "Old log-in password" : "Contrasinal antigo de acceso", - "Current log-in password" : "Contrasinal actual de acceso", - "Update Private Key Password" : "Actualizar o contrasinal da chave privada", - "Enable password recovery:" : "Activar o contrasinal de recuperación:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/he.js b/apps/files_encryption/l10n/he.js deleted file mode 100644 index d6a018e358d..00000000000 --- a/apps/files_encryption/l10n/he.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "שגיאה בלתי ידועה" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/he.json b/apps/files_encryption/l10n/he.json deleted file mode 100644 index 83324968384..00000000000 --- a/apps/files_encryption/l10n/he.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "שגיאה בלתי ידועה" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/hr.js b/apps/files_encryption/l10n/hr.js deleted file mode 100644 index ec62347f610..00000000000 --- a/apps/files_encryption/l10n/hr.js +++ /dev/null @@ -1,42 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Nepoznata pogreška", - "Recovery key successfully enabled" : "Ključ za oporavak uspješno aktiviran", - "Could not disable recovery key. Please check your recovery key password!" : "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!", - "Recovery key successfully disabled" : "Ključ za ooravak uspješno deaktiviran", - "Password successfully changed." : "Lozinka uspješno promijenjena.", - "Could not change the password. Maybe the old password was not correct." : "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.", - "Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.", - "File recovery settings updated" : "Ažurirane postavke za oporavak datoteke", - "Could not update file recovery" : "Oporavak datoteke nije moguće ažurirati", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikacija šifriranja nije inicijalizirana! Možda je aplikacija šifriranja bila reaktivirana tijekom vaše sesije.Da biste inicijalizirali aplikaciju šifriranja, molimo, pokušajte se odjaviti i ponovno prijaviti.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Vaš privatni ključ nije ispravan! Vjerojatno je vaša lozinka promijenjena izvan %s(npr. vašega korporativnog direktorija). Lozinku svoga privatnog ključa možete ažuriratiu svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.", - "Unknown error. Please check your system settings or contact your administrator" : "Pogreška nepoznata. Molimo provjerite svoje sistemske postavke ili kontaktirajte svog administratora.", - "Initial encryption started... This can take some time. Please wait." : "Počelo inicijalno šifriranje... To može potrajati neko vrijeme. Molimo, pričekajte.", - "Initial encryption running... Please try again later." : "Inicijalno šifriranje u tijeku... Molimo, pokušajte ponovno kasnije.", - "Missing requirements." : "Nedostaju preduvjeti.", - "Following users are not set up for encryption:" : "Sljedeći korisnici nisu određeni za šifriranje:", - "Go directly to your %spersonal settings%s." : "Idite izravno na svoje %sosobne postavke%s.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):", - "Recovery key password" : "Lozinka ključa za oporavak", - "Repeat Recovery key password" : "Ponovite lozinku ključa za oporavak", - "Enabled" : "Aktivirano", - "Disabled" : "Onemogućeno", - "Change recovery key password:" : "Promijenite lozinku ključa za oporavak", - "Old Recovery key password" : "Stara lozinka ključa za oporavak", - "New Recovery key password" : "Nova lozinka ključa za oporavak", - "Repeat New Recovery key password" : "Ponovite novu lozinku ključa za oporavak", - "Change Password" : "Promijenite lozinku", - "Your private key password no longer matches your log-in password." : "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.", - "Set your old private key password to your current log-in password:" : "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ako se ne sjećate svoje stare lozinke, možete zamoliti administratora da oporavi vaše datoteke.", - "Old log-in password" : "Stara lozinka za prijavu", - "Current log-in password" : "Aktualna lozinka za prijavu", - "Update Private Key Password" : "Ažurirajte lozinku privatnog ključa", - "Enable password recovery:" : "Omogućite oporavak lozinke:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama" -}, -"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"); diff --git a/apps/files_encryption/l10n/hr.json b/apps/files_encryption/l10n/hr.json deleted file mode 100644 index ea1cfe5ed03..00000000000 --- a/apps/files_encryption/l10n/hr.json +++ /dev/null @@ -1,40 +0,0 @@ -{ "translations": { - "Unknown error" : "Nepoznata pogreška", - "Recovery key successfully enabled" : "Ključ za oporavak uspješno aktiviran", - "Could not disable recovery key. Please check your recovery key password!" : "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!", - "Recovery key successfully disabled" : "Ključ za ooravak uspješno deaktiviran", - "Password successfully changed." : "Lozinka uspješno promijenjena.", - "Could not change the password. Maybe the old password was not correct." : "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.", - "Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.", - "File recovery settings updated" : "Ažurirane postavke za oporavak datoteke", - "Could not update file recovery" : "Oporavak datoteke nije moguće ažurirati", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikacija šifriranja nije inicijalizirana! Možda je aplikacija šifriranja bila reaktivirana tijekom vaše sesije.Da biste inicijalizirali aplikaciju šifriranja, molimo, pokušajte se odjaviti i ponovno prijaviti.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Vaš privatni ključ nije ispravan! Vjerojatno je vaša lozinka promijenjena izvan %s(npr. vašega korporativnog direktorija). Lozinku svoga privatnog ključa možete ažuriratiu svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.", - "Unknown error. Please check your system settings or contact your administrator" : "Pogreška nepoznata. Molimo provjerite svoje sistemske postavke ili kontaktirajte svog administratora.", - "Initial encryption started... This can take some time. Please wait." : "Počelo inicijalno šifriranje... To može potrajati neko vrijeme. Molimo, pričekajte.", - "Initial encryption running... Please try again later." : "Inicijalno šifriranje u tijeku... Molimo, pokušajte ponovno kasnije.", - "Missing requirements." : "Nedostaju preduvjeti.", - "Following users are not set up for encryption:" : "Sljedeći korisnici nisu određeni za šifriranje:", - "Go directly to your %spersonal settings%s." : "Idite izravno na svoje %sosobne postavke%s.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):", - "Recovery key password" : "Lozinka ključa za oporavak", - "Repeat Recovery key password" : "Ponovite lozinku ključa za oporavak", - "Enabled" : "Aktivirano", - "Disabled" : "Onemogućeno", - "Change recovery key password:" : "Promijenite lozinku ključa za oporavak", - "Old Recovery key password" : "Stara lozinka ključa za oporavak", - "New Recovery key password" : "Nova lozinka ključa za oporavak", - "Repeat New Recovery key password" : "Ponovite novu lozinku ključa za oporavak", - "Change Password" : "Promijenite lozinku", - "Your private key password no longer matches your log-in password." : "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.", - "Set your old private key password to your current log-in password:" : "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ako se ne sjećate svoje stare lozinke, možete zamoliti administratora da oporavi vaše datoteke.", - "Old log-in password" : "Stara lozinka za prijavu", - "Current log-in password" : "Aktualna lozinka za prijavu", - "Update Private Key Password" : "Ažurirajte lozinku privatnog ključa", - "Enable password recovery:" : "Omogućite oporavak lozinke:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama" -},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/hu_HU.js b/apps/files_encryption/l10n/hu_HU.js deleted file mode 100644 index 6d52e85d667..00000000000 --- a/apps/files_encryption/l10n/hu_HU.js +++ /dev/null @@ -1,38 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Ismeretlen hiba", - "Recovery key successfully enabled" : "A helyreállítási kulcs sikeresen bekapcsolva", - "Could not disable recovery key. Please check your recovery key password!" : "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!", - "Recovery key successfully disabled" : "A helyreállítási kulcs sikeresen kikapcsolva", - "Password successfully changed." : "A jelszót sikeresen megváltoztattuk.", - "Could not change the password. Maybe the old password was not correct." : "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.", - "Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.", - "File recovery settings updated" : "A fájlhelyreállítási beállítások frissültek", - "Could not update file recovery" : "A fájlhelyreállítás nem frissíthető", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "A titkosítási modul nincs elindítva! Talán a munkafolyamat közben került engedélyezésre. Kérjük jelentkezzen ki majd ismét jelentkezzen be, hogy a titkosítási modul megfelelően elinduljon!", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Valószínűleg a %s rendszeren kívül változtatta meg a jelszavát (pl. a munkahelyi címtárban). A személyes beállításoknál frissítheti a titkos kulcsát, hogy ismét elérhesse a titkosított állományait.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!", - "Initial encryption started... This can take some time. Please wait." : "A titkosítási folyamat megkezdődött... Ez hosszabb ideig is eltarthat. Kérem várjon.", - "Initial encryption running... Please try again later." : "Kezedeti titkosítás fut... Próbálja később.", - "Missing requirements." : "Hiányzó követelmények.", - "Following users are not set up for encryption:" : "A következő felhasználók nem állították be a titkosítást:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", - "Enable recovery key (allow to recover users files in case of password loss):" : "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):", - "Recovery key password" : "A helyreállítási kulcs jelszava", - "Repeat Recovery key password" : "Ismételje meg a helyreállítási kulcs jelszavát", - "Enabled" : "Bekapcsolva", - "Disabled" : "Kikapcsolva", - "Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:", - "Old Recovery key password" : "Régi Helyreállítási Kulcs Jelszava", - "New Recovery key password" : "Új Helyreállítási kulcs jelszava", - "Repeat New Recovery key password" : "Ismételje meg az új helyreállítási kulcs jelszavát", - "Change Password" : "Jelszó megváltoztatása", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.", - "Old log-in password" : "Régi bejelentkezési jelszó", - "Current log-in password" : "Jelenlegi bejelentkezési jelszó", - "Update Private Key Password" : "A személyest kulcs jelszó frissítése", - "Enable password recovery:" : "Jelszó-visszaállítás bekapcsolása", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/hu_HU.json b/apps/files_encryption/l10n/hu_HU.json deleted file mode 100644 index 0bb4c40f396..00000000000 --- a/apps/files_encryption/l10n/hu_HU.json +++ /dev/null @@ -1,36 +0,0 @@ -{ "translations": { - "Unknown error" : "Ismeretlen hiba", - "Recovery key successfully enabled" : "A helyreállítási kulcs sikeresen bekapcsolva", - "Could not disable recovery key. Please check your recovery key password!" : "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!", - "Recovery key successfully disabled" : "A helyreállítási kulcs sikeresen kikapcsolva", - "Password successfully changed." : "A jelszót sikeresen megváltoztattuk.", - "Could not change the password. Maybe the old password was not correct." : "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.", - "Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.", - "File recovery settings updated" : "A fájlhelyreállítási beállítások frissültek", - "Could not update file recovery" : "A fájlhelyreállítás nem frissíthető", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "A titkosítási modul nincs elindítva! Talán a munkafolyamat közben került engedélyezésre. Kérjük jelentkezzen ki majd ismét jelentkezzen be, hogy a titkosítási modul megfelelően elinduljon!", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Valószínűleg a %s rendszeren kívül változtatta meg a jelszavát (pl. a munkahelyi címtárban). A személyes beállításoknál frissítheti a titkos kulcsát, hogy ismét elérhesse a titkosított állományait.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!", - "Initial encryption started... This can take some time. Please wait." : "A titkosítási folyamat megkezdődött... Ez hosszabb ideig is eltarthat. Kérem várjon.", - "Initial encryption running... Please try again later." : "Kezedeti titkosítás fut... Próbálja később.", - "Missing requirements." : "Hiányzó követelmények.", - "Following users are not set up for encryption:" : "A következő felhasználók nem állították be a titkosítást:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!", - "Enable recovery key (allow to recover users files in case of password loss):" : "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):", - "Recovery key password" : "A helyreállítási kulcs jelszava", - "Repeat Recovery key password" : "Ismételje meg a helyreállítási kulcs jelszavát", - "Enabled" : "Bekapcsolva", - "Disabled" : "Kikapcsolva", - "Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:", - "Old Recovery key password" : "Régi Helyreállítási Kulcs Jelszava", - "New Recovery key password" : "Új Helyreállítási kulcs jelszava", - "Repeat New Recovery key password" : "Ismételje meg az új helyreállítási kulcs jelszavát", - "Change Password" : "Jelszó megváltoztatása", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.", - "Old log-in password" : "Régi bejelentkezési jelszó", - "Current log-in password" : "Jelenlegi bejelentkezési jelszó", - "Update Private Key Password" : "A személyest kulcs jelszó frissítése", - "Enable password recovery:" : "Jelszó-visszaállítás bekapcsolása", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ia.js b/apps/files_encryption/l10n/ia.js deleted file mode 100644 index 5d480be507c..00000000000 --- a/apps/files_encryption/l10n/ia.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Error Incognite" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ia.json b/apps/files_encryption/l10n/ia.json deleted file mode 100644 index de701b407d0..00000000000 --- a/apps/files_encryption/l10n/ia.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "Error Incognite" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/id.js b/apps/files_encryption/l10n/id.js deleted file mode 100644 index c9137a51a11..00000000000 --- a/apps/files_encryption/l10n/id.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Kesalahan tidak diketahui", - "Missing recovery key password" : "Sandi kunci pemuliahan hilang", - "Please repeat the recovery key password" : "Silakan ulangi sandi kunci pemulihan", - "Repeated recovery key password does not match the provided recovery key password" : "Sandi kunci pemulihan yang diulangi tidak cocok dengan sandi kunci pemulihan yang diberikan", - "Recovery key successfully enabled" : "Kunci pemulihan berhasil diaktifkan", - "Could not disable recovery key. Please check your recovery key password!" : "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", - "Recovery key successfully disabled" : "Kunci pemulihan berhasil dinonaktifkan", - "Please provide the old recovery password" : "Mohon berikan sandi pemulihan lama", - "Please provide a new recovery password" : "Mohon berikan sandi pemulihan baru", - "Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru", - "Password successfully changed." : "Sandi berhasil diubah", - "Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.", - "Could not update the private key password." : "Tidak dapat memperbarui sandi kunci private.", - "The old password was not correct, please try again." : "Sandi lama salah, mohon coba lagi.", - "The current log-in password was not correct, please try again." : "Sandi masuk saat ini salah, mohon coba lagi.", - "Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.", - "File recovery settings updated" : "Pengaturan pemulihan berkas diperbarui", - "Could not update file recovery" : "Tidak dapat memperbarui pemulihan berkas", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikasi enkripsi tidak dimulai! Kemungkinan aplikasi enkripsi telah diaktifkan ulang saat sesi Anda. Silakan coba untuk keluar dan kembali lagi untuk memulai aplikasi enkripsi.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Kunci private Anda tidak sah! Nampaknya sandi Anda telah diubah diluar %s (misal direktori perusahaan Anda). Anda dapat memperbarui sandi kunci private untuk memulihakan akses ke berkas terenkripsi Anda.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.", - "Unknown error. Please check your system settings or contact your administrator" : "Kesalahan tidak diketahui. Silakan periksa pengaturan sistem Anda atau hubungi administrator", - "Initial encryption started... This can take some time. Please wait." : "Enskripsi awal dijalankan... Ini dapat memakan waktu. Silakan tunggu.", - "Initial encryption running... Please try again later." : "Enkripsi awal sedang berjalan... Sialakn coba lagi nanti.", - "Missing requirements." : "Persyaratan tidak terpenuhi.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Mohon pastikan bahwa OpenSSL bersama ekstensi PHP diaktifkan dan terkonfigurasi dengan benar. Untuk sekarang, aplikasi enkripsi akan dinonaktifkan.", - "Following users are not set up for encryption:" : "Pengguna berikut belum diatur untuk enkripsi:", - "Go directly to your %spersonal settings%s." : "Langsung ke %spengaturan pribadi%s Anda.", - "Server-side Encryption" : "Enkripsi Sisi-Server", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):", - "Recovery key password" : "Sandi kunci pemulihan", - "Repeat Recovery key password" : "Ulangi sandi kunci Pemulihan", - "Enabled" : "Diaktifkan", - "Disabled" : "Dinonaktifkan", - "Change recovery key password:" : "Ubah sandi kunci pemulihan:", - "Old Recovery key password" : "Sandi kunci Pemulihan Lama", - "New Recovery key password" : "Sandi kunci Pemulihan Baru", - "Repeat New Recovery key password" : "Ulangi sandi kunci Pemulihan baru", - "Change Password" : "Ubah Sandi", - "Your private key password no longer matches your log-in password." : "Sandi kunci private Anda tidak lagi cocok dengan sandi masuk Anda.", - "Set your old private key password to your current log-in password:" : "Setel sandi kunci private Anda untuk sandi masuk Anda saat ini:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.", - "Old log-in password" : "Sandi masuk yang lama", - "Current log-in password" : "Sandi masuk saat ini", - "Update Private Key Password" : "Perbarui Sandi Kunci Private", - "Enable password recovery:" : "Aktifkan sandi pemulihan:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/id.json b/apps/files_encryption/l10n/id.json deleted file mode 100644 index 5d77cef0b24..00000000000 --- a/apps/files_encryption/l10n/id.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Kesalahan tidak diketahui", - "Missing recovery key password" : "Sandi kunci pemuliahan hilang", - "Please repeat the recovery key password" : "Silakan ulangi sandi kunci pemulihan", - "Repeated recovery key password does not match the provided recovery key password" : "Sandi kunci pemulihan yang diulangi tidak cocok dengan sandi kunci pemulihan yang diberikan", - "Recovery key successfully enabled" : "Kunci pemulihan berhasil diaktifkan", - "Could not disable recovery key. Please check your recovery key password!" : "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!", - "Recovery key successfully disabled" : "Kunci pemulihan berhasil dinonaktifkan", - "Please provide the old recovery password" : "Mohon berikan sandi pemulihan lama", - "Please provide a new recovery password" : "Mohon berikan sandi pemulihan baru", - "Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru", - "Password successfully changed." : "Sandi berhasil diubah", - "Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.", - "Could not update the private key password." : "Tidak dapat memperbarui sandi kunci private.", - "The old password was not correct, please try again." : "Sandi lama salah, mohon coba lagi.", - "The current log-in password was not correct, please try again." : "Sandi masuk saat ini salah, mohon coba lagi.", - "Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.", - "File recovery settings updated" : "Pengaturan pemulihan berkas diperbarui", - "Could not update file recovery" : "Tidak dapat memperbarui pemulihan berkas", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplikasi enkripsi tidak dimulai! Kemungkinan aplikasi enkripsi telah diaktifkan ulang saat sesi Anda. Silakan coba untuk keluar dan kembali lagi untuk memulai aplikasi enkripsi.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Kunci private Anda tidak sah! Nampaknya sandi Anda telah diubah diluar %s (misal direktori perusahaan Anda). Anda dapat memperbarui sandi kunci private untuk memulihakan akses ke berkas terenkripsi Anda.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.", - "Unknown error. Please check your system settings or contact your administrator" : "Kesalahan tidak diketahui. Silakan periksa pengaturan sistem Anda atau hubungi administrator", - "Initial encryption started... This can take some time. Please wait." : "Enskripsi awal dijalankan... Ini dapat memakan waktu. Silakan tunggu.", - "Initial encryption running... Please try again later." : "Enkripsi awal sedang berjalan... Sialakn coba lagi nanti.", - "Missing requirements." : "Persyaratan tidak terpenuhi.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Mohon pastikan bahwa OpenSSL bersama ekstensi PHP diaktifkan dan terkonfigurasi dengan benar. Untuk sekarang, aplikasi enkripsi akan dinonaktifkan.", - "Following users are not set up for encryption:" : "Pengguna berikut belum diatur untuk enkripsi:", - "Go directly to your %spersonal settings%s." : "Langsung ke %spengaturan pribadi%s Anda.", - "Server-side Encryption" : "Enkripsi Sisi-Server", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):", - "Recovery key password" : "Sandi kunci pemulihan", - "Repeat Recovery key password" : "Ulangi sandi kunci Pemulihan", - "Enabled" : "Diaktifkan", - "Disabled" : "Dinonaktifkan", - "Change recovery key password:" : "Ubah sandi kunci pemulihan:", - "Old Recovery key password" : "Sandi kunci Pemulihan Lama", - "New Recovery key password" : "Sandi kunci Pemulihan Baru", - "Repeat New Recovery key password" : "Ulangi sandi kunci Pemulihan baru", - "Change Password" : "Ubah Sandi", - "Your private key password no longer matches your log-in password." : "Sandi kunci private Anda tidak lagi cocok dengan sandi masuk Anda.", - "Set your old private key password to your current log-in password:" : "Setel sandi kunci private Anda untuk sandi masuk Anda saat ini:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.", - "Old log-in password" : "Sandi masuk yang lama", - "Current log-in password" : "Sandi masuk saat ini", - "Update Private Key Password" : "Perbarui Sandi Kunci Private", - "Enable password recovery:" : "Aktifkan sandi pemulihan:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/is.js b/apps/files_encryption/l10n/is.js deleted file mode 100644 index 8dfc249683e..00000000000 --- a/apps/files_encryption/l10n/is.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Encryption" : "Dulkóðun" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/is.json b/apps/files_encryption/l10n/is.json deleted file mode 100644 index b4d4708f404..00000000000 --- a/apps/files_encryption/l10n/is.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Encryption" : "Dulkóðun" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/it.js b/apps/files_encryption/l10n/it.js deleted file mode 100644 index 32fe42ae275..00000000000 --- a/apps/files_encryption/l10n/it.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Errore sconosciuto", - "Missing recovery key password" : "Manca la password della chiave di recupero", - "Please repeat the recovery key password" : "Ripeti la password della chiave di recupero", - "Repeated recovery key password does not match the provided recovery key password" : "La password della chiave di recupero ripetuta non corrisponde alla password della chiave di recupero fornita", - "Recovery key successfully enabled" : "Chiave di recupero abilitata correttamente", - "Could not disable recovery key. Please check your recovery key password!" : "Impossibile disabilitare la chiave di recupero. Verifica la password della chiave di recupero.", - "Recovery key successfully disabled" : "Chiave di recupero disabilitata correttamente", - "Please provide the old recovery password" : "Fornisci la vecchia password di recupero", - "Please provide a new recovery password" : "Fornisci una nuova password di recupero", - "Please repeat the new recovery password" : "Ripeti la nuova password di recupero", - "Password successfully changed." : "Password modificata correttamente.", - "Could not change the password. Maybe the old password was not correct." : "Impossibile cambiare la password. Forse la vecchia password non era corretta.", - "Could not update the private key password." : "Impossibile aggiornare la password della chiave privata.", - "The old password was not correct, please try again." : "La vecchia password non era corretta, prova di nuovo.", - "The current log-in password was not correct, please try again." : "La password di accesso attuale non era corretta, prova ancora.", - "Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.", - "File recovery settings updated" : "Impostazioni di ripristino dei file aggiornate", - "Could not update file recovery" : "Impossibile aggiornare il ripristino dei file", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Applicazione di cifratura non inizializzata. Forse l'applicazione è stata riabilitata durante la tua sessione. Prova a disconnetterti e ad effettuare nuovamente l'accesso per inizializzarla.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "La tua chiave privata non è valida! Forse la password è stata cambiata al di fuori di %s (ad es. la directory aziendale). Puoi aggiornare la password della chiave privata nelle impostazioni personali per ottenere nuovamente l'accesso ai file cifrati.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", - "Unknown error. Please check your system settings or contact your administrator" : "Errore sconosciuto. Controlla le impostazioni di sistema o contatta il tuo amministratore", - "Initial encryption started... This can take some time. Please wait." : "Cifratura iniziale avviata... Potrebbe richiedere del tempo. Attendi.", - "Initial encryption running... Please try again later." : "Cifratura iniziale in esecuzione... Riprova più tardi.", - "Missing requirements." : "Requisiti mancanti.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Assicurati che OpenSSL e l'estensione PHP sia abilitatati e configurati correttamente. Per ora, l'applicazione di cifratura è disabilitata.", - "Following users are not set up for encryption:" : "I seguenti utenti non sono configurati per la cifratura:", - "Go directly to your %spersonal settings%s." : "Vai direttamente alle tue %simpostazioni personali%s.", - "Server-side Encryption" : "Cifratura lato server", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", - "Enable recovery key (allow to recover users files in case of password loss):" : "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):", - "Recovery key password" : "Password della chiave di recupero", - "Repeat Recovery key password" : "Ripeti la password della chiave di recupero", - "Enabled" : "Abilitata", - "Disabled" : "Disabilitata", - "Change recovery key password:" : "Cambia la password della chiave di recupero:", - "Old Recovery key password" : "Vecchia password della chiave di recupero", - "New Recovery key password" : "Nuova password della chiave di recupero", - "Repeat New Recovery key password" : "Ripeti la nuova password della chiave di recupero", - "Change Password" : "Modifica password", - "Your private key password no longer matches your log-in password." : "La password della chiave privata non corrisponde più alla password di accesso.", - "Set your old private key password to your current log-in password:" : "Imposta la vecchia password della chiave privata sull'attuale password di accesso:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.", - "Old log-in password" : "Vecchia password di accesso", - "Current log-in password" : "Password di accesso attuale", - "Update Private Key Password" : "Aggiorna la password della chiave privata", - "Enable password recovery:" : "Abilita il ripristino della password:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/it.json b/apps/files_encryption/l10n/it.json deleted file mode 100644 index e5fa00dca35..00000000000 --- a/apps/files_encryption/l10n/it.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Errore sconosciuto", - "Missing recovery key password" : "Manca la password della chiave di recupero", - "Please repeat the recovery key password" : "Ripeti la password della chiave di recupero", - "Repeated recovery key password does not match the provided recovery key password" : "La password della chiave di recupero ripetuta non corrisponde alla password della chiave di recupero fornita", - "Recovery key successfully enabled" : "Chiave di recupero abilitata correttamente", - "Could not disable recovery key. Please check your recovery key password!" : "Impossibile disabilitare la chiave di recupero. Verifica la password della chiave di recupero.", - "Recovery key successfully disabled" : "Chiave di recupero disabilitata correttamente", - "Please provide the old recovery password" : "Fornisci la vecchia password di recupero", - "Please provide a new recovery password" : "Fornisci una nuova password di recupero", - "Please repeat the new recovery password" : "Ripeti la nuova password di recupero", - "Password successfully changed." : "Password modificata correttamente.", - "Could not change the password. Maybe the old password was not correct." : "Impossibile cambiare la password. Forse la vecchia password non era corretta.", - "Could not update the private key password." : "Impossibile aggiornare la password della chiave privata.", - "The old password was not correct, please try again." : "La vecchia password non era corretta, prova di nuovo.", - "The current log-in password was not correct, please try again." : "La password di accesso attuale non era corretta, prova ancora.", - "Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.", - "File recovery settings updated" : "Impostazioni di ripristino dei file aggiornate", - "Could not update file recovery" : "Impossibile aggiornare il ripristino dei file", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Applicazione di cifratura non inizializzata. Forse l'applicazione è stata riabilitata durante la tua sessione. Prova a disconnetterti e ad effettuare nuovamente l'accesso per inizializzarla.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "La tua chiave privata non è valida! Forse la password è stata cambiata al di fuori di %s (ad es. la directory aziendale). Puoi aggiornare la password della chiave privata nelle impostazioni personali per ottenere nuovamente l'accesso ai file cifrati.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", - "Unknown error. Please check your system settings or contact your administrator" : "Errore sconosciuto. Controlla le impostazioni di sistema o contatta il tuo amministratore", - "Initial encryption started... This can take some time. Please wait." : "Cifratura iniziale avviata... Potrebbe richiedere del tempo. Attendi.", - "Initial encryption running... Please try again later." : "Cifratura iniziale in esecuzione... Riprova più tardi.", - "Missing requirements." : "Requisiti mancanti.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Assicurati che OpenSSL e l'estensione PHP sia abilitatati e configurati correttamente. Per ora, l'applicazione di cifratura è disabilitata.", - "Following users are not set up for encryption:" : "I seguenti utenti non sono configurati per la cifratura:", - "Go directly to your %spersonal settings%s." : "Vai direttamente alle tue %simpostazioni personali%s.", - "Server-side Encryption" : "Cifratura lato server", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso", - "Enable recovery key (allow to recover users files in case of password loss):" : "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):", - "Recovery key password" : "Password della chiave di recupero", - "Repeat Recovery key password" : "Ripeti la password della chiave di recupero", - "Enabled" : "Abilitata", - "Disabled" : "Disabilitata", - "Change recovery key password:" : "Cambia la password della chiave di recupero:", - "Old Recovery key password" : "Vecchia password della chiave di recupero", - "New Recovery key password" : "Nuova password della chiave di recupero", - "Repeat New Recovery key password" : "Ripeti la nuova password della chiave di recupero", - "Change Password" : "Modifica password", - "Your private key password no longer matches your log-in password." : "La password della chiave privata non corrisponde più alla password di accesso.", - "Set your old private key password to your current log-in password:" : "Imposta la vecchia password della chiave privata sull'attuale password di accesso:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.", - "Old log-in password" : "Vecchia password di accesso", - "Current log-in password" : "Password di accesso attuale", - "Update Private Key Password" : "Aggiorna la password della chiave privata", - "Enable password recovery:" : "Abilita il ripristino della password:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ja.js b/apps/files_encryption/l10n/ja.js deleted file mode 100644 index 8fb1364e042..00000000000 --- a/apps/files_encryption/l10n/ja.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "不明なエラー", - "Missing recovery key password" : "復旧キーのパスワードがありません", - "Please repeat the recovery key password" : "復旧キーのパスワードをもう一度入力", - "Repeated recovery key password does not match the provided recovery key password" : "入力された復旧キーのパスワードが一致しません。", - "Recovery key successfully enabled" : "リカバリ用のキーを正常に有効にしました", - "Could not disable recovery key. Please check your recovery key password!" : "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認してください!", - "Recovery key successfully disabled" : "リカバリ用のキーを正常に無効化しました", - "Please provide the old recovery password" : "古い復旧キーのパスワードを入力", - "Please provide a new recovery password" : "新しい復旧キーのパスワードを入力", - "Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力", - "Password successfully changed." : "パスワードを変更できました。", - "Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。", - "Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。", - "The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。", - "The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。", - "Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。", - "File recovery settings updated" : "ファイルリカバリ設定を更新しました", - "Could not update file recovery" : "ファイルリカバリを更新できませんでした", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "セッション中に暗号化アプリを再度有効にされたため、暗号化アプリが初期化されていません。暗号化アプリを初期化するため、ログアウトしてログインしなおしてください。", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "プライベートキーが有効ではありません!パスワードが%sの外部で変更された(例: 共同ディレクトリ)と思われます。個人設定でプライベートキーのパスワードを更新して、暗号化ファイルへのアクセスを回復することができます。", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。", - "Unknown error. Please check your system settings or contact your administrator" : "不明なエラーです。システム設定を確認するか、管理者に問い合わせてください。", - "Initial encryption started... This can take some time. Please wait." : "暗号化の初期化作業を開始しました... この処理にはしばらく時間がかかります。お待ちください。", - "Initial encryption running... Please try again later." : "初期暗号化実行中... 後でもう一度お試しください。", - "Missing requirements." : "必要要件が満たされていません。", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "必ず、OpenSSL及びOpenSSLのPHPの拡張を有効にした上で、適切に設定してください。現時点では暗号化アプリは無効になっています。", - "Following users are not set up for encryption:" : "以下のユーザーは、暗号化設定がされていません:", - "Go directly to your %spersonal settings%s." : "直接 %s個人設定%s に進む。", - "Server-side Encryption" : "サーバー側暗号", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", - "Enable recovery key (allow to recover users files in case of password loss):" : "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):", - "Recovery key password" : "リカバリキーのパスワード", - "Repeat Recovery key password" : "リカバリキーのパスワードをもう一度入力", - "Enabled" : "有効", - "Disabled" : "無効", - "Change recovery key password:" : "リカバリキーのパスワードを変更:", - "Old Recovery key password" : "古いリカバリキーのパスワード", - "New Recovery key password" : "新しいリカバリキーのパスワード", - "Repeat New Recovery key password" : "新しいリカバリキーのパスワードをもう一度入力", - "Change Password" : "パスワードを変更", - "Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。", - "Set your old private key password to your current log-in password:" : "古い秘密鍵のパスワードを現在のログインパスワードに設定:", - " If you don't remember your old password you can ask your administrator to recover your files." : "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。", - "Old log-in password" : "古いログインパスワード", - "Current log-in password" : "現在のログインパスワード", - "Update Private Key Password" : "秘密鍵のパスワードを更新", - "Enable password recovery:" : "パスワードリカバリを有効に:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/ja.json b/apps/files_encryption/l10n/ja.json deleted file mode 100644 index d88a65fe492..00000000000 --- a/apps/files_encryption/l10n/ja.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "不明なエラー", - "Missing recovery key password" : "復旧キーのパスワードがありません", - "Please repeat the recovery key password" : "復旧キーのパスワードをもう一度入力", - "Repeated recovery key password does not match the provided recovery key password" : "入力された復旧キーのパスワードが一致しません。", - "Recovery key successfully enabled" : "リカバリ用のキーを正常に有効にしました", - "Could not disable recovery key. Please check your recovery key password!" : "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認してください!", - "Recovery key successfully disabled" : "リカバリ用のキーを正常に無効化しました", - "Please provide the old recovery password" : "古い復旧キーのパスワードを入力", - "Please provide a new recovery password" : "新しい復旧キーのパスワードを入力", - "Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力", - "Password successfully changed." : "パスワードを変更できました。", - "Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。", - "Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。", - "The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。", - "The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。", - "Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。", - "File recovery settings updated" : "ファイルリカバリ設定を更新しました", - "Could not update file recovery" : "ファイルリカバリを更新できませんでした", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "セッション中に暗号化アプリを再度有効にされたため、暗号化アプリが初期化されていません。暗号化アプリを初期化するため、ログアウトしてログインしなおしてください。", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "プライベートキーが有効ではありません!パスワードが%sの外部で変更された(例: 共同ディレクトリ)と思われます。個人設定でプライベートキーのパスワードを更新して、暗号化ファイルへのアクセスを回復することができます。", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。", - "Unknown error. Please check your system settings or contact your administrator" : "不明なエラーです。システム設定を確認するか、管理者に問い合わせてください。", - "Initial encryption started... This can take some time. Please wait." : "暗号化の初期化作業を開始しました... この処理にはしばらく時間がかかります。お待ちください。", - "Initial encryption running... Please try again later." : "初期暗号化実行中... 後でもう一度お試しください。", - "Missing requirements." : "必要要件が満たされていません。", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "必ず、OpenSSL及びOpenSSLのPHPの拡張を有効にした上で、適切に設定してください。現時点では暗号化アプリは無効になっています。", - "Following users are not set up for encryption:" : "以下のユーザーは、暗号化設定がされていません:", - "Go directly to your %spersonal settings%s." : "直接 %s個人設定%s に進む。", - "Server-side Encryption" : "サーバー側暗号", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", - "Enable recovery key (allow to recover users files in case of password loss):" : "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):", - "Recovery key password" : "リカバリキーのパスワード", - "Repeat Recovery key password" : "リカバリキーのパスワードをもう一度入力", - "Enabled" : "有効", - "Disabled" : "無効", - "Change recovery key password:" : "リカバリキーのパスワードを変更:", - "Old Recovery key password" : "古いリカバリキーのパスワード", - "New Recovery key password" : "新しいリカバリキーのパスワード", - "Repeat New Recovery key password" : "新しいリカバリキーのパスワードをもう一度入力", - "Change Password" : "パスワードを変更", - "Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。", - "Set your old private key password to your current log-in password:" : "古い秘密鍵のパスワードを現在のログインパスワードに設定:", - " If you don't remember your old password you can ask your administrator to recover your files." : "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。", - "Old log-in password" : "古いログインパスワード", - "Current log-in password" : "現在のログインパスワード", - "Update Private Key Password" : "秘密鍵のパスワードを更新", - "Enable password recovery:" : "パスワードリカバリを有効に:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ka_GE.js b/apps/files_encryption/l10n/ka_GE.js deleted file mode 100644 index 7b95616ccdd..00000000000 --- a/apps/files_encryption/l10n/ka_GE.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "უცნობი შეცდომა" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/ka_GE.json b/apps/files_encryption/l10n/ka_GE.json deleted file mode 100644 index a22007f7789..00000000000 --- a/apps/files_encryption/l10n/ka_GE.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "უცნობი შეცდომა" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/km.js b/apps/files_encryption/l10n/km.js deleted file mode 100644 index 336b96f96a8..00000000000 --- a/apps/files_encryption/l10n/km.js +++ /dev/null @@ -1,11 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "មិន​ស្គាល់​កំហុស", - "Password successfully changed." : "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។", - "Could not change the password. Maybe the old password was not correct." : "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។", - "Enabled" : "បាន​បើក", - "Disabled" : "បាន​បិទ", - "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/km.json b/apps/files_encryption/l10n/km.json deleted file mode 100644 index 26b888c0011..00000000000 --- a/apps/files_encryption/l10n/km.json +++ /dev/null @@ -1,9 +0,0 @@ -{ "translations": { - "Unknown error" : "មិន​ស្គាល់​កំហុស", - "Password successfully changed." : "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។", - "Could not change the password. Maybe the old password was not correct." : "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។", - "Enabled" : "បាន​បើក", - "Disabled" : "បាន​បិទ", - "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/kn.js b/apps/files_encryption/l10n/kn.js deleted file mode 100644 index e8583cc5a97..00000000000 --- a/apps/files_encryption/l10n/kn.js +++ /dev/null @@ -1,8 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "ಗೊತ್ತಿಲ್ಲದ ದೋಷ", - "Enabled" : "ಸಕ್ರಿಯಗೊಳಿಸಿದೆ", - "Disabled" : "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/kn.json b/apps/files_encryption/l10n/kn.json deleted file mode 100644 index ccb4203c400..00000000000 --- a/apps/files_encryption/l10n/kn.json +++ /dev/null @@ -1,6 +0,0 @@ -{ "translations": { - "Unknown error" : "ಗೊತ್ತಿಲ್ಲದ ದೋಷ", - "Enabled" : "ಸಕ್ರಿಯಗೊಳಿಸಿದೆ", - "Disabled" : "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ko.js b/apps/files_encryption/l10n/ko.js deleted file mode 100644 index 3d09c0abff2..00000000000 --- a/apps/files_encryption/l10n/ko.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "알 수 없는 오류", - "Missing recovery key password" : "잊어버린 복구 키 암호 복구", - "Please repeat the recovery key password" : "복구 키 암호를 다시 입력하십시오", - "Repeated recovery key password does not match the provided recovery key password" : "입력한 복구 키 암호가 서로 다릅니다", - "Recovery key successfully enabled" : "복구 키가 성공적으로 활성화되었습니다", - "Could not disable recovery key. Please check your recovery key password!" : "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!", - "Recovery key successfully disabled" : "복구 키가 성공적으로 비활성화 되었습니다", - "Please provide the old recovery password" : "이전 복구 암호를 입력하십시오", - "Please provide a new recovery password" : "새 복구 암호를 입력하십시오", - "Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오", - "Password successfully changed." : "암호가 성공적으로 변경되었습니다", - "Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", - "Could not update the private key password." : "개인 키 암호를 업데이트할 수 없습니다", - "The old password was not correct, please try again." : "이전 암호가 잘못되었습니다. 다시 시도하십시오.", - "The current log-in password was not correct, please try again." : "현재 로그인 암호가 잘못되었습니다. 다시 시도하십시오.", - "Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.", - "File recovery settings updated" : "파일 복구 설정 업데이트됨", - "Could not update file recovery" : "파일 복구를 업데이트할 수 없습니다", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "암호화 앱이 초기화되지 않았습니다! 암호화 앱이 다시 활성화된 것 같습니다. 암호화 앱을 초기화하려면 로그아웃했다 다시 로그인하십시오.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "개인 키가 올바르지 않습니다! 암호가 %s 외부에서(예: 회사 디렉터리) 변경된 것 같습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 수정하십시오.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.", - "Unknown error. Please check your system settings or contact your administrator" : "알 수 없는 오류입니다. 시스템 설정을 확인하거나 관리자에게 문의하십시오", - "Initial encryption started... This can take some time. Please wait." : "초기 암호화가 시작되었습니다... 시간이 걸릴 수도 있으니 기다려 주십시오.", - "Initial encryption running... Please try again later." : "초기 암호화가 진행 중입니다... 나중에 다시 시도하십시오.", - "Missing requirements." : "요구 사항이 부족합니다.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "OpenSSL 및 PHP OpenSSL 확장이 활성화되어 있고 올바르게 설정되어 있는지 확인하십시오. 현재 암호화 앱이 비활성화되었습니다.", - "Following users are not set up for encryption:" : "다음 사용자는 암호화를 사용할 수 없습니다:", - "Go directly to your %spersonal settings%s." : "%s개인 설정%s으로 직접 이동하십시오.", - "Server-side Encryption" : "서버 측 암호화", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", - "Enable recovery key (allow to recover users files in case of password loss):" : "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):", - "Recovery key password" : "복구 키 암호", - "Repeat Recovery key password" : "복구 키 암호 재입력", - "Enabled" : "활성화", - "Disabled" : "비활성화", - "Change recovery key password:" : "복구 키 암호 변경:", - "Old Recovery key password" : "이전 복구 키 암호", - "New Recovery key password" : "새 복구 키 암호", - "Repeat New Recovery key password" : "새 복구 키 암호 재입력", - "Change Password" : "암호 변경", - "Your private key password no longer matches your log-in password." : "개인 키 암호와 로그인 암호가 일치하지 않습니다.", - "Set your old private key password to your current log-in password:" : "기존 개인 키 암호를 로그인 암호와 동일하게 설정하십시오:", - " If you don't remember your old password you can ask your administrator to recover your files." : " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.", - "Old log-in password" : "이전 로그인 암호", - "Current log-in password" : "현재 로그인 암호", - "Update Private Key Password" : "개인 키 암호 업데이트", - "Enable password recovery:" : "암호 복구 사용:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/ko.json b/apps/files_encryption/l10n/ko.json deleted file mode 100644 index 6e6c6f162c0..00000000000 --- a/apps/files_encryption/l10n/ko.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "알 수 없는 오류", - "Missing recovery key password" : "잊어버린 복구 키 암호 복구", - "Please repeat the recovery key password" : "복구 키 암호를 다시 입력하십시오", - "Repeated recovery key password does not match the provided recovery key password" : "입력한 복구 키 암호가 서로 다릅니다", - "Recovery key successfully enabled" : "복구 키가 성공적으로 활성화되었습니다", - "Could not disable recovery key. Please check your recovery key password!" : "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!", - "Recovery key successfully disabled" : "복구 키가 성공적으로 비활성화 되었습니다", - "Please provide the old recovery password" : "이전 복구 암호를 입력하십시오", - "Please provide a new recovery password" : "새 복구 암호를 입력하십시오", - "Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오", - "Password successfully changed." : "암호가 성공적으로 변경되었습니다", - "Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", - "Could not update the private key password." : "개인 키 암호를 업데이트할 수 없습니다", - "The old password was not correct, please try again." : "이전 암호가 잘못되었습니다. 다시 시도하십시오.", - "The current log-in password was not correct, please try again." : "현재 로그인 암호가 잘못되었습니다. 다시 시도하십시오.", - "Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.", - "File recovery settings updated" : "파일 복구 설정 업데이트됨", - "Could not update file recovery" : "파일 복구를 업데이트할 수 없습니다", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "암호화 앱이 초기화되지 않았습니다! 암호화 앱이 다시 활성화된 것 같습니다. 암호화 앱을 초기화하려면 로그아웃했다 다시 로그인하십시오.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "개인 키가 올바르지 않습니다! 암호가 %s 외부에서(예: 회사 디렉터리) 변경된 것 같습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 수정하십시오.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.", - "Unknown error. Please check your system settings or contact your administrator" : "알 수 없는 오류입니다. 시스템 설정을 확인하거나 관리자에게 문의하십시오", - "Initial encryption started... This can take some time. Please wait." : "초기 암호화가 시작되었습니다... 시간이 걸릴 수도 있으니 기다려 주십시오.", - "Initial encryption running... Please try again later." : "초기 암호화가 진행 중입니다... 나중에 다시 시도하십시오.", - "Missing requirements." : "요구 사항이 부족합니다.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "OpenSSL 및 PHP OpenSSL 확장이 활성화되어 있고 올바르게 설정되어 있는지 확인하십시오. 현재 암호화 앱이 비활성화되었습니다.", - "Following users are not set up for encryption:" : "다음 사용자는 암호화를 사용할 수 없습니다:", - "Go directly to your %spersonal settings%s." : "%s개인 설정%s으로 직접 이동하십시오.", - "Server-side Encryption" : "서버 측 암호화", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", - "Enable recovery key (allow to recover users files in case of password loss):" : "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):", - "Recovery key password" : "복구 키 암호", - "Repeat Recovery key password" : "복구 키 암호 재입력", - "Enabled" : "활성화", - "Disabled" : "비활성화", - "Change recovery key password:" : "복구 키 암호 변경:", - "Old Recovery key password" : "이전 복구 키 암호", - "New Recovery key password" : "새 복구 키 암호", - "Repeat New Recovery key password" : "새 복구 키 암호 재입력", - "Change Password" : "암호 변경", - "Your private key password no longer matches your log-in password." : "개인 키 암호와 로그인 암호가 일치하지 않습니다.", - "Set your old private key password to your current log-in password:" : "기존 개인 키 암호를 로그인 암호와 동일하게 설정하십시오:", - " If you don't remember your old password you can ask your administrator to recover your files." : " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.", - "Old log-in password" : "이전 로그인 암호", - "Current log-in password" : "현재 로그인 암호", - "Update Private Key Password" : "개인 키 암호 업데이트", - "Enable password recovery:" : "암호 복구 사용:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ku_IQ.js b/apps/files_encryption/l10n/ku_IQ.js deleted file mode 100644 index 5a036cc5252..00000000000 --- a/apps/files_encryption/l10n/ku_IQ.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Encryption" : "نهێنیکردن" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ku_IQ.json b/apps/files_encryption/l10n/ku_IQ.json deleted file mode 100644 index ab30a5a485b..00000000000 --- a/apps/files_encryption/l10n/ku_IQ.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Encryption" : "نهێنیکردن" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/lb.js b/apps/files_encryption/l10n/lb.js deleted file mode 100644 index d5e206fddb0..00000000000 --- a/apps/files_encryption/l10n/lb.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Et ass en onbekannte Fehler opgetrueden" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/lb.json b/apps/files_encryption/l10n/lb.json deleted file mode 100644 index 8cfee6638f4..00000000000 --- a/apps/files_encryption/l10n/lb.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "Et ass en onbekannte Fehler opgetrueden" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/lo.js b/apps/files_encryption/l10n/lo.js deleted file mode 100644 index b5b586d1028..00000000000 --- a/apps/files_encryption/l10n/lo.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ສາເຫດ" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/lo.json b/apps/files_encryption/l10n/lo.json deleted file mode 100644 index 1a02813027d..00000000000 --- a/apps/files_encryption/l10n/lo.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ສາເຫດ" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/lt_LT.js b/apps/files_encryption/l10n/lt_LT.js deleted file mode 100644 index eb28b3933df..00000000000 --- a/apps/files_encryption/l10n/lt_LT.js +++ /dev/null @@ -1,37 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Neatpažinta klaida", - "Recovery key successfully enabled" : "Atkūrimo raktas sėkmingai įjungtas", - "Could not disable recovery key. Please check your recovery key password!" : "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!", - "Recovery key successfully disabled" : "Atkūrimo raktas sėkmingai išjungtas", - "Password successfully changed." : "Slaptažodis sėkmingai pakeistas", - "Could not change the password. Maybe the old password was not correct." : "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.", - "Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.", - "File recovery settings updated" : "Failų atkūrimo nustatymai pakeisti", - "Could not update file recovery" : "Neišėjo atnaujinti failų atkūrimo", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Šifravimo programa nepaleista! Galbūt šifravimo programa buvo įjungta dar kartą Jūsų sesijos metu. Prašome atsijungti ir vėl prisijungti, kad paleisti šifravimo programą.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Jūsų privatus raktas yra netinkamas! Panašu, kad Jūsų slaptažodis buvo pakeistas už %s (pvz. Jūsų organizacijos kataloge). Galite atnaujinti savo privataus rakto slaptažodį savo asmeniniuose nustatymuose, kad atkurti prieigą prie savo šifruotų failų.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.", - "Initial encryption started... This can take some time. Please wait." : "Pradėtas pirminis šifravimas... Tai gali užtrukti. Prašome palaukti.", - "Missing requirements." : "Trūkstami laukai.", - "Following users are not set up for encryption:" : "Sekantys naudotojai nenustatyti šifravimui:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", - "Enable recovery key (allow to recover users files in case of password loss):" : "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):", - "Recovery key password" : "Atkūrimo rakto slaptažodis", - "Repeat Recovery key password" : "Pakartokite atkūrimo rakto slaptažodį", - "Enabled" : "Įjungta", - "Disabled" : "Išjungta", - "Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:", - "Old Recovery key password" : "Senas atkūrimo rakto slaptažodis", - "New Recovery key password" : "Naujas atkūrimo rakto slaptažodis", - "Repeat New Recovery key password" : "Pakartokite naują atkūrimo rakto slaptažodį", - "Change Password" : "Pakeisti slaptažodį", - " If you don't remember your old password you can ask your administrator to recover your files." : "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.", - "Old log-in password" : "Senas prisijungimo slaptažodis", - "Current log-in password" : "Dabartinis prisijungimo slaptažodis", - "Update Private Key Password" : "Atnaujinti privataus rakto slaptažodį", - "Enable password recovery:" : "Įjungti slaptažodžio atkūrimą:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį." -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/lt_LT.json b/apps/files_encryption/l10n/lt_LT.json deleted file mode 100644 index f77575b5df4..00000000000 --- a/apps/files_encryption/l10n/lt_LT.json +++ /dev/null @@ -1,35 +0,0 @@ -{ "translations": { - "Unknown error" : "Neatpažinta klaida", - "Recovery key successfully enabled" : "Atkūrimo raktas sėkmingai įjungtas", - "Could not disable recovery key. Please check your recovery key password!" : "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!", - "Recovery key successfully disabled" : "Atkūrimo raktas sėkmingai išjungtas", - "Password successfully changed." : "Slaptažodis sėkmingai pakeistas", - "Could not change the password. Maybe the old password was not correct." : "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.", - "Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.", - "File recovery settings updated" : "Failų atkūrimo nustatymai pakeisti", - "Could not update file recovery" : "Neišėjo atnaujinti failų atkūrimo", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Šifravimo programa nepaleista! Galbūt šifravimo programa buvo įjungta dar kartą Jūsų sesijos metu. Prašome atsijungti ir vėl prisijungti, kad paleisti šifravimo programą.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Jūsų privatus raktas yra netinkamas! Panašu, kad Jūsų slaptažodis buvo pakeistas už %s (pvz. Jūsų organizacijos kataloge). Galite atnaujinti savo privataus rakto slaptažodį savo asmeniniuose nustatymuose, kad atkurti prieigą prie savo šifruotų failų.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.", - "Initial encryption started... This can take some time. Please wait." : "Pradėtas pirminis šifravimas... Tai gali užtrukti. Prašome palaukti.", - "Missing requirements." : "Trūkstami laukai.", - "Following users are not set up for encryption:" : "Sekantys naudotojai nenustatyti šifravimui:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti", - "Enable recovery key (allow to recover users files in case of password loss):" : "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):", - "Recovery key password" : "Atkūrimo rakto slaptažodis", - "Repeat Recovery key password" : "Pakartokite atkūrimo rakto slaptažodį", - "Enabled" : "Įjungta", - "Disabled" : "Išjungta", - "Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:", - "Old Recovery key password" : "Senas atkūrimo rakto slaptažodis", - "New Recovery key password" : "Naujas atkūrimo rakto slaptažodis", - "Repeat New Recovery key password" : "Pakartokite naują atkūrimo rakto slaptažodį", - "Change Password" : "Pakeisti slaptažodį", - " If you don't remember your old password you can ask your administrator to recover your files." : "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.", - "Old log-in password" : "Senas prisijungimo slaptažodis", - "Current log-in password" : "Dabartinis prisijungimo slaptažodis", - "Update Private Key Password" : "Atnaujinti privataus rakto slaptažodį", - "Enable password recovery:" : "Įjungti slaptažodžio atkūrimą:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį." -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/lv.js b/apps/files_encryption/l10n/lv.js deleted file mode 100644 index 4c9fd2adad8..00000000000 --- a/apps/files_encryption/l10n/lv.js +++ /dev/null @@ -1,8 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Nezināma kļūda", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifrēšanas lietotnes ir pieslēgta, bet šifrēšanas atslēgas nav uzstādītas. Lūdzu izejiet no sistēmas un ieejiet sistēmā atpakaļ.", - "Enabled" : "Pievienots" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/lv.json b/apps/files_encryption/l10n/lv.json deleted file mode 100644 index bacaccd6b92..00000000000 --- a/apps/files_encryption/l10n/lv.json +++ /dev/null @@ -1,6 +0,0 @@ -{ "translations": { - "Unknown error" : "Nezināma kļūda", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifrēšanas lietotnes ir pieslēgta, bet šifrēšanas atslēgas nav uzstādītas. Lūdzu izejiet no sistēmas un ieejiet sistēmā atpakaļ.", - "Enabled" : "Pievienots" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/mk.js b/apps/files_encryption/l10n/mk.js deleted file mode 100644 index 7996856033b..00000000000 --- a/apps/files_encryption/l10n/mk.js +++ /dev/null @@ -1,18 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Непозната грешка", - "Password successfully changed." : "Лозинката е успешно променета.", - "Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.", - "Missing requirements." : "Барања кои недостасуваат.", - "Repeat Recovery key password" : "Повтори ја лозинката за клучот на обновување", - "Enabled" : "Овозможен", - "Disabled" : "Оневозможен", - "Old Recovery key password" : "Старата лозинка за клучот на обновување ", - "Repeat New Recovery key password" : "Повтори ја лозинката за клучот на обновувањето", - "Change Password" : "Смени лозинка", - "Old log-in password" : "Старата лозинка за најавување", - "Current log-in password" : "Тековната лозинка за најавување", - "Enable password recovery:" : "Овозможи го обновувањето на лозинката:" -}, -"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/files_encryption/l10n/mk.json b/apps/files_encryption/l10n/mk.json deleted file mode 100644 index e1929bcfa64..00000000000 --- a/apps/files_encryption/l10n/mk.json +++ /dev/null @@ -1,16 +0,0 @@ -{ "translations": { - "Unknown error" : "Непозната грешка", - "Password successfully changed." : "Лозинката е успешно променета.", - "Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.", - "Missing requirements." : "Барања кои недостасуваат.", - "Repeat Recovery key password" : "Повтори ја лозинката за клучот на обновување", - "Enabled" : "Овозможен", - "Disabled" : "Оневозможен", - "Old Recovery key password" : "Старата лозинка за клучот на обновување ", - "Repeat New Recovery key password" : "Повтори ја лозинката за клучот на обновувањето", - "Change Password" : "Смени лозинка", - "Old log-in password" : "Старата лозинка за најавување", - "Current log-in password" : "Тековната лозинка за најавување", - "Enable password recovery:" : "Овозможи го обновувањето на лозинката:" -},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/nb_NO.js b/apps/files_encryption/l10n/nb_NO.js deleted file mode 100644 index ff52350f98a..00000000000 --- a/apps/files_encryption/l10n/nb_NO.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Ukjent feil", - "Missing recovery key password" : "Passord for gjenopprettingsnøkkel mangler", - "Please repeat the recovery key password" : "Gjenta passord for gjenopprettingsnøkkel", - "Repeated recovery key password does not match the provided recovery key password" : "Gjentatt passord for gjenopprettingsnøkkel stemmer ikke med oppgitt passord for gjenopprettingsnøkkel", - "Recovery key successfully enabled" : "Gjenopprettingsnøkkel aktivert", - "Could not disable recovery key. Please check your recovery key password!" : "Klarte ikke å deaktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", - "Recovery key successfully disabled" : "Gjenopprettingsnøkkel ble deaktivert", - "Please provide the old recovery password" : "Oppgi det gamle gjenopprettingspassordet", - "Please provide a new recovery password" : "Oppgi et nytt gjenopprettingspassord", - "Please repeat the new recovery password" : "Gjenta det nye gjenopprettingspassordet", - "Password successfully changed." : "Passordet ble endret.", - "Could not change the password. Maybe the old password was not correct." : "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.", - "Could not update the private key password." : "Klarte ikke å oppdatere privatnøkkelpassordet.", - "The old password was not correct, please try again." : "Det gamle passordet var feil. Prøv igjen.", - "The current log-in password was not correct, please try again." : "Det nåværende innloggingspassordet var feil. Prøv igjen.", - "Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.", - "File recovery settings updated" : "Innstillinger for gjenoppretting av filer ble oppdatert", - "Could not update file recovery" : "Klarte ikke å oppdatere gjenoppretting av filer", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypterings-app ikke initialisert! Kanskje krypterings-appen ble aktivert på nytt i løpet av økten din. Prøv å logge ut og logge inn igjen for å initialisere krypterings-appen.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din private nøkkel er ikke gyldig! Sannsynligvis ble passordet ditt endret utenfor %s. (f.eks. din bedriftskatalog). Du kan oppdatere passordet for din private nøkkel i dine personlige innstillinger for å gjenvinne tilgang til de krypterte filene dine.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.", - "Unknown error. Please check your system settings or contact your administrator" : "Ukjent feil. Sjekk systeminnstillingene eller kontakt administratoren.", - "Initial encryption started... This can take some time. Please wait." : "Førstegangs kryptering startet... Dette kan ta litt tid. Vennligst vent.", - "Initial encryption running... Please try again later." : "Førstegangs kryptering kjører... Prøv igjen senere.", - "Missing requirements." : "Manglende krav.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Vennligst se til at OpenSSL sammen med PHP-utvidelsen er aktivert og riktig konfigurert. Krypterings-appen er foreløpig deaktivert.", - "Following users are not set up for encryption:" : "Følgende brukere er ikke satt opp for kryptering:", - "Go directly to your %spersonal settings%s." : "Gå direkte til dine %spersonlige innstillinger%s.", - "Server-side Encryption" : "Serverkryptering", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):", - "Recovery key password" : "Passord for gjenopprettingsnøkkel", - "Repeat Recovery key password" : "Gjenta passord for gjenopprettingsnøkkel", - "Enabled" : "Aktiv", - "Disabled" : "Inaktiv", - "Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:", - "Old Recovery key password" : "Gammelt passord for gjenopprettingsnøkkel", - "New Recovery key password" : "Nytt passord for gjenopprettingsnøkkel", - "Repeat New Recovery key password" : "Gjenta nytt passord for gjenopprettingsnøkkel", - "Change Password" : "Endre passord", - "Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", - "Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke husker det gamle passordet ditt kan du spørre administratoren om å gjenopprette filene dine.", - "Old log-in password" : "Gammelt påloggingspassord", - "Current log-in password" : "Nåværende påloggingspassord", - "Update Private Key Password" : "Oppdater passord for privat nøkkel", - "Enable password recovery:" : "Aktiver gjenoppretting av passord:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt." -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/nb_NO.json b/apps/files_encryption/l10n/nb_NO.json deleted file mode 100644 index 3aa4ec9e868..00000000000 --- a/apps/files_encryption/l10n/nb_NO.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Ukjent feil", - "Missing recovery key password" : "Passord for gjenopprettingsnøkkel mangler", - "Please repeat the recovery key password" : "Gjenta passord for gjenopprettingsnøkkel", - "Repeated recovery key password does not match the provided recovery key password" : "Gjentatt passord for gjenopprettingsnøkkel stemmer ikke med oppgitt passord for gjenopprettingsnøkkel", - "Recovery key successfully enabled" : "Gjenopprettingsnøkkel aktivert", - "Could not disable recovery key. Please check your recovery key password!" : "Klarte ikke å deaktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", - "Recovery key successfully disabled" : "Gjenopprettingsnøkkel ble deaktivert", - "Please provide the old recovery password" : "Oppgi det gamle gjenopprettingspassordet", - "Please provide a new recovery password" : "Oppgi et nytt gjenopprettingspassord", - "Please repeat the new recovery password" : "Gjenta det nye gjenopprettingspassordet", - "Password successfully changed." : "Passordet ble endret.", - "Could not change the password. Maybe the old password was not correct." : "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.", - "Could not update the private key password." : "Klarte ikke å oppdatere privatnøkkelpassordet.", - "The old password was not correct, please try again." : "Det gamle passordet var feil. Prøv igjen.", - "The current log-in password was not correct, please try again." : "Det nåværende innloggingspassordet var feil. Prøv igjen.", - "Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.", - "File recovery settings updated" : "Innstillinger for gjenoppretting av filer ble oppdatert", - "Could not update file recovery" : "Klarte ikke å oppdatere gjenoppretting av filer", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypterings-app ikke initialisert! Kanskje krypterings-appen ble aktivert på nytt i løpet av økten din. Prøv å logge ut og logge inn igjen for å initialisere krypterings-appen.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din private nøkkel er ikke gyldig! Sannsynligvis ble passordet ditt endret utenfor %s. (f.eks. din bedriftskatalog). Du kan oppdatere passordet for din private nøkkel i dine personlige innstillinger for å gjenvinne tilgang til de krypterte filene dine.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.", - "Unknown error. Please check your system settings or contact your administrator" : "Ukjent feil. Sjekk systeminnstillingene eller kontakt administratoren.", - "Initial encryption started... This can take some time. Please wait." : "Førstegangs kryptering startet... Dette kan ta litt tid. Vennligst vent.", - "Initial encryption running... Please try again later." : "Førstegangs kryptering kjører... Prøv igjen senere.", - "Missing requirements." : "Manglende krav.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Vennligst se til at OpenSSL sammen med PHP-utvidelsen er aktivert og riktig konfigurert. Krypterings-appen er foreløpig deaktivert.", - "Following users are not set up for encryption:" : "Følgende brukere er ikke satt opp for kryptering:", - "Go directly to your %spersonal settings%s." : "Gå direkte til dine %spersonlige innstillinger%s.", - "Server-side Encryption" : "Serverkryptering", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):", - "Recovery key password" : "Passord for gjenopprettingsnøkkel", - "Repeat Recovery key password" : "Gjenta passord for gjenopprettingsnøkkel", - "Enabled" : "Aktiv", - "Disabled" : "Inaktiv", - "Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:", - "Old Recovery key password" : "Gammelt passord for gjenopprettingsnøkkel", - "New Recovery key password" : "Nytt passord for gjenopprettingsnøkkel", - "Repeat New Recovery key password" : "Gjenta nytt passord for gjenopprettingsnøkkel", - "Change Password" : "Endre passord", - "Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", - "Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke husker det gamle passordet ditt kan du spørre administratoren om å gjenopprette filene dine.", - "Old log-in password" : "Gammelt påloggingspassord", - "Current log-in password" : "Nåværende påloggingspassord", - "Update Private Key Password" : "Oppdater passord for privat nøkkel", - "Enable password recovery:" : "Aktiver gjenoppretting av passord:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt." -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/nl.js b/apps/files_encryption/l10n/nl.js deleted file mode 100644 index 1100abd76fd..00000000000 --- a/apps/files_encryption/l10n/nl.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Onbekende fout", - "Missing recovery key password" : "Ontbrekende wachtwoord herstelsleutel", - "Please repeat the recovery key password" : "Herhaal het herstelsleutel wachtwoord", - "Repeated recovery key password does not match the provided recovery key password" : "Het herhaalde herstelsleutel wachtwoord kwam niet overeen met het eerdere herstelsleutel wachtwoord ", - "Recovery key successfully enabled" : "Herstelsleutel succesvol geactiveerd", - "Could not disable recovery key. Please check your recovery key password!" : "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!", - "Recovery key successfully disabled" : "Herstelsleutel succesvol gedeactiveerd", - "Please provide the old recovery password" : "Geef het oude herstelwachtwoord op", - "Please provide a new recovery password" : "Geef een nieuw herstelwachtwoord op", - "Please repeat the new recovery password" : "Herhaal het nieuwe herstelwachtwoord", - "Password successfully changed." : "Wachtwoord succesvol gewijzigd.", - "Could not change the password. Maybe the old password was not correct." : "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.", - "Could not update the private key password." : "Kon het wachtwoord van de privésleutel niet bijwerken.", - "The old password was not correct, please try again." : "Het oude wachtwoord was onjuist, probeer het opnieuw.", - "The current log-in password was not correct, please try again." : "Het huidige inlogwachtwoord was niet juist, probeer het opnieuw.", - "Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.", - "File recovery settings updated" : "Bestandsherstel instellingen bijgewerkt", - "Could not update file recovery" : "Kon bestandsherstel niet bijwerken", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Crypto app niet geïnitialiseerd. Misschien werd de crypto app geheractiveerd tijdens de sessie. Log uit en log daarna opnieuw in om de crypto app te initialiseren.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Uw privésleutel is niet geldig! Waarschijnlijk is uw wachtwoord gewijzigd buiten %s (bijv. uw corporate directory). U kunt uw privésleutel wachtwoord in uw persoonlijke instellingen bijwerken om toegang te krijgen tot uw versleutelde bestanden.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.", - "Unknown error. Please check your system settings or contact your administrator" : "Onbekende fout. Controleer uw systeeminstellingen of neem contact op met de beheerder", - "Initial encryption started... This can take some time. Please wait." : "initiële versleuteling gestart... Dit kan even duren, geduld a.u.b.", - "Initial encryption running... Please try again later." : "Initiële versleuteling bezig... Probeer het later opnieuw.", - "Missing requirements." : "Missende benodigdheden.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Weed er zeker van dat OpenSSL met de PHP extensie is ingeschakeld en goed geconfigureerd. Op dit moment is de encryptie app uitgeschakeld.", - "Following users are not set up for encryption:" : "De volgende gebruikers hebben geen configuratie voor encryptie:", - "Go directly to your %spersonal settings%s." : "Ga direct naar uw %spersoonlijke instellingen%s.", - "Server-side Encryption" : "Server-side versleuteling", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):", - "Recovery key password" : "Wachtwoord herstelsleulel", - "Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord", - "Enabled" : "Geactiveerd", - "Disabled" : "Gedeactiveerd", - "Change recovery key password:" : "Wijzig wachtwoord herstelsleutel:", - "Old Recovery key password" : "Oude wachtwoord herstelsleutel", - "New Recovery key password" : "Nieuwe wachtwoord herstelsleutel", - "Repeat New Recovery key password" : "Herhaal het nieuwe herstelsleutel wachtwoord", - "Change Password" : "Wijzigen wachtwoord", - "Your private key password no longer matches your log-in password." : "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.", - "Set your old private key password to your current log-in password:" : "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.", - "Old log-in password" : "Oude wachtwoord", - "Current log-in password" : "Huidige wachtwoord", - "Update Private Key Password" : "Bijwerken wachtwoord Privésleutel", - "Enable password recovery:" : "Activeren wachtwoord herstel:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/nl.json b/apps/files_encryption/l10n/nl.json deleted file mode 100644 index dab88f4a2e2..00000000000 --- a/apps/files_encryption/l10n/nl.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Onbekende fout", - "Missing recovery key password" : "Ontbrekende wachtwoord herstelsleutel", - "Please repeat the recovery key password" : "Herhaal het herstelsleutel wachtwoord", - "Repeated recovery key password does not match the provided recovery key password" : "Het herhaalde herstelsleutel wachtwoord kwam niet overeen met het eerdere herstelsleutel wachtwoord ", - "Recovery key successfully enabled" : "Herstelsleutel succesvol geactiveerd", - "Could not disable recovery key. Please check your recovery key password!" : "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!", - "Recovery key successfully disabled" : "Herstelsleutel succesvol gedeactiveerd", - "Please provide the old recovery password" : "Geef het oude herstelwachtwoord op", - "Please provide a new recovery password" : "Geef een nieuw herstelwachtwoord op", - "Please repeat the new recovery password" : "Herhaal het nieuwe herstelwachtwoord", - "Password successfully changed." : "Wachtwoord succesvol gewijzigd.", - "Could not change the password. Maybe the old password was not correct." : "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.", - "Could not update the private key password." : "Kon het wachtwoord van de privésleutel niet bijwerken.", - "The old password was not correct, please try again." : "Het oude wachtwoord was onjuist, probeer het opnieuw.", - "The current log-in password was not correct, please try again." : "Het huidige inlogwachtwoord was niet juist, probeer het opnieuw.", - "Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.", - "File recovery settings updated" : "Bestandsherstel instellingen bijgewerkt", - "Could not update file recovery" : "Kon bestandsherstel niet bijwerken", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Crypto app niet geïnitialiseerd. Misschien werd de crypto app geheractiveerd tijdens de sessie. Log uit en log daarna opnieuw in om de crypto app te initialiseren.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Uw privésleutel is niet geldig! Waarschijnlijk is uw wachtwoord gewijzigd buiten %s (bijv. uw corporate directory). U kunt uw privésleutel wachtwoord in uw persoonlijke instellingen bijwerken om toegang te krijgen tot uw versleutelde bestanden.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.", - "Unknown error. Please check your system settings or contact your administrator" : "Onbekende fout. Controleer uw systeeminstellingen of neem contact op met de beheerder", - "Initial encryption started... This can take some time. Please wait." : "initiële versleuteling gestart... Dit kan even duren, geduld a.u.b.", - "Initial encryption running... Please try again later." : "Initiële versleuteling bezig... Probeer het later opnieuw.", - "Missing requirements." : "Missende benodigdheden.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Weed er zeker van dat OpenSSL met de PHP extensie is ingeschakeld en goed geconfigureerd. Op dit moment is de encryptie app uitgeschakeld.", - "Following users are not set up for encryption:" : "De volgende gebruikers hebben geen configuratie voor encryptie:", - "Go directly to your %spersonal settings%s." : "Ga direct naar uw %spersoonlijke instellingen%s.", - "Server-side Encryption" : "Server-side versleuteling", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):", - "Recovery key password" : "Wachtwoord herstelsleulel", - "Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord", - "Enabled" : "Geactiveerd", - "Disabled" : "Gedeactiveerd", - "Change recovery key password:" : "Wijzig wachtwoord herstelsleutel:", - "Old Recovery key password" : "Oude wachtwoord herstelsleutel", - "New Recovery key password" : "Nieuwe wachtwoord herstelsleutel", - "Repeat New Recovery key password" : "Herhaal het nieuwe herstelsleutel wachtwoord", - "Change Password" : "Wijzigen wachtwoord", - "Your private key password no longer matches your log-in password." : "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.", - "Set your old private key password to your current log-in password:" : "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.", - "Old log-in password" : "Oude wachtwoord", - "Current log-in password" : "Huidige wachtwoord", - "Update Private Key Password" : "Bijwerken wachtwoord Privésleutel", - "Enable password recovery:" : "Activeren wachtwoord herstel:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/nn_NO.js b/apps/files_encryption/l10n/nn_NO.js deleted file mode 100644 index 9cfe232080c..00000000000 --- a/apps/files_encryption/l10n/nn_NO.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Ukjend feil" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/nn_NO.json b/apps/files_encryption/l10n/nn_NO.json deleted file mode 100644 index 347c2088148..00000000000 --- a/apps/files_encryption/l10n/nn_NO.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "Ukjend feil" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/pa.js b/apps/files_encryption/l10n/pa.js deleted file mode 100644 index f61063e9459..00000000000 --- a/apps/files_encryption/l10n/pa.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/pa.json b/apps/files_encryption/l10n/pa.json deleted file mode 100644 index 41690f3aa32..00000000000 --- a/apps/files_encryption/l10n/pa.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "ਅਣਜਾਣ ਗਲਤੀ" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/pl.js b/apps/files_encryption/l10n/pl.js deleted file mode 100644 index c53d1e12cc6..00000000000 --- a/apps/files_encryption/l10n/pl.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Nieznany błąd", - "Missing recovery key password" : "Brakujące hasło klucza odzyskiwania", - "Please repeat the recovery key password" : "Proszę powtórz nowe hasło klucza odzyskiwania", - "Repeated recovery key password does not match the provided recovery key password" : "Hasła klucza odzyskiwania nie zgadzają się", - "Recovery key successfully enabled" : "Klucz odzyskiwania włączony", - "Could not disable recovery key. Please check your recovery key password!" : "Nie można wyłączyć klucza odzyskiwania. Proszę sprawdzić swoje hasło odzyskiwania!", - "Recovery key successfully disabled" : "Klucz odzyskiwania wyłączony", - "Please provide the old recovery password" : "Podaj stare hasło odzyskiwania", - "Please provide a new recovery password" : "Podaj nowe hasło odzyskiwania", - "Please repeat the new recovery password" : "Proszę powtórz nowe hasło odzyskiwania", - "Password successfully changed." : "Zmiana hasła udana.", - "Could not change the password. Maybe the old password was not correct." : "Nie można zmienić hasła. Może stare hasło nie było poprawne.", - "Could not update the private key password." : "Nie można zmienić hasła klucza prywatnego.", - "The old password was not correct, please try again." : "Stare hasło nie było poprawne. Spróbuj jeszcze raz.", - "The current log-in password was not correct, please try again." : "Obecne hasło logowania nie było poprawne. Spróbuj ponownie.", - "Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.", - "File recovery settings updated" : "Ustawienia odzyskiwania plików zmienione", - "Could not update file recovery" : "Nie można zmienić pliku odzyskiwania", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Szyfrowanie aplikacja nie została zainicjowane! Może szyfrowanie aplikacji zostało ponownie włączone podczas tej sesji. Spróbuj się wylogować i zalogować ponownie aby zainicjować szyfrowanie aplikacji.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Prawdopodobnie Twoje hasło zostało zmienione poza %s (np. w katalogu firmy). Aby odzyskać dostęp do zaszyfrowanych plików można zaktualizować hasło klucza prywatnego w ustawieniach osobistych.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.", - "Unknown error. Please check your system settings or contact your administrator" : "Nieznany błąd. Proszę sprawdzić ustawienia systemowe lub skontaktować się z administratorem", - "Initial encryption started... This can take some time. Please wait." : "Rozpoczęto szyfrowanie... To może chwilę potrwać. Proszę czekać.", - "Initial encryption running... Please try again later." : "Trwa szyfrowanie początkowe...Spróbuj ponownie.", - "Missing requirements." : "Brak wymagań.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Upewnij się, że OpenSSL jest włączony razem z rozszerzeniem PHP i poprawnie skonfigurowany, Obecnie aplikacja szyfrowania została wyłączona.", - "Following users are not set up for encryption:" : "Następujący użytkownicy nie mają skonfigurowanego szyfrowania:", - "Go directly to your %spersonal settings%s." : "Przejdź bezpośrednio do %spersonal settings%s.", - "Server-side Encryption" : "Szyfrowanie po stronie serwera", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):", - "Recovery key password" : "Hasło klucza odzyskiwania", - "Repeat Recovery key password" : "Powtórz hasło klucza odzyskiwania", - "Enabled" : "Włączone", - "Disabled" : "Wyłączone", - "Change recovery key password:" : "Zmień hasło klucza odzyskiwania", - "Old Recovery key password" : "Stare hasło klucza odzyskiwania", - "New Recovery key password" : "Nowe hasło klucza odzyskiwania", - "Repeat New Recovery key password" : "Powtórz nowe hasło klucza odzyskiwania", - "Change Password" : "Zmień hasło", - "Your private key password no longer matches your log-in password." : "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.", - "Set your old private key password to your current log-in password:" : "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Jeśli nie pamiętasz swojego starego hasła, poproś swojego administratora, aby odzyskać pliki.", - "Old log-in password" : "Stare hasło logowania", - "Current log-in password" : "Bieżące hasło logowania", - "Update Private Key Password" : "Aktualizacja hasła klucza prywatnego", - "Enable password recovery:" : "Włącz hasło odzyskiwania:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła" -}, -"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/pl.json b/apps/files_encryption/l10n/pl.json deleted file mode 100644 index d9d22b2c327..00000000000 --- a/apps/files_encryption/l10n/pl.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Nieznany błąd", - "Missing recovery key password" : "Brakujące hasło klucza odzyskiwania", - "Please repeat the recovery key password" : "Proszę powtórz nowe hasło klucza odzyskiwania", - "Repeated recovery key password does not match the provided recovery key password" : "Hasła klucza odzyskiwania nie zgadzają się", - "Recovery key successfully enabled" : "Klucz odzyskiwania włączony", - "Could not disable recovery key. Please check your recovery key password!" : "Nie można wyłączyć klucza odzyskiwania. Proszę sprawdzić swoje hasło odzyskiwania!", - "Recovery key successfully disabled" : "Klucz odzyskiwania wyłączony", - "Please provide the old recovery password" : "Podaj stare hasło odzyskiwania", - "Please provide a new recovery password" : "Podaj nowe hasło odzyskiwania", - "Please repeat the new recovery password" : "Proszę powtórz nowe hasło odzyskiwania", - "Password successfully changed." : "Zmiana hasła udana.", - "Could not change the password. Maybe the old password was not correct." : "Nie można zmienić hasła. Może stare hasło nie było poprawne.", - "Could not update the private key password." : "Nie można zmienić hasła klucza prywatnego.", - "The old password was not correct, please try again." : "Stare hasło nie było poprawne. Spróbuj jeszcze raz.", - "The current log-in password was not correct, please try again." : "Obecne hasło logowania nie było poprawne. Spróbuj ponownie.", - "Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.", - "File recovery settings updated" : "Ustawienia odzyskiwania plików zmienione", - "Could not update file recovery" : "Nie można zmienić pliku odzyskiwania", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Szyfrowanie aplikacja nie została zainicjowane! Może szyfrowanie aplikacji zostało ponownie włączone podczas tej sesji. Spróbuj się wylogować i zalogować ponownie aby zainicjować szyfrowanie aplikacji.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Prawdopodobnie Twoje hasło zostało zmienione poza %s (np. w katalogu firmy). Aby odzyskać dostęp do zaszyfrowanych plików można zaktualizować hasło klucza prywatnego w ustawieniach osobistych.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.", - "Unknown error. Please check your system settings or contact your administrator" : "Nieznany błąd. Proszę sprawdzić ustawienia systemowe lub skontaktować się z administratorem", - "Initial encryption started... This can take some time. Please wait." : "Rozpoczęto szyfrowanie... To może chwilę potrwać. Proszę czekać.", - "Initial encryption running... Please try again later." : "Trwa szyfrowanie początkowe...Spróbuj ponownie.", - "Missing requirements." : "Brak wymagań.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Upewnij się, że OpenSSL jest włączony razem z rozszerzeniem PHP i poprawnie skonfigurowany, Obecnie aplikacja szyfrowania została wyłączona.", - "Following users are not set up for encryption:" : "Następujący użytkownicy nie mają skonfigurowanego szyfrowania:", - "Go directly to your %spersonal settings%s." : "Przejdź bezpośrednio do %spersonal settings%s.", - "Server-side Encryption" : "Szyfrowanie po stronie serwera", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):", - "Recovery key password" : "Hasło klucza odzyskiwania", - "Repeat Recovery key password" : "Powtórz hasło klucza odzyskiwania", - "Enabled" : "Włączone", - "Disabled" : "Wyłączone", - "Change recovery key password:" : "Zmień hasło klucza odzyskiwania", - "Old Recovery key password" : "Stare hasło klucza odzyskiwania", - "New Recovery key password" : "Nowe hasło klucza odzyskiwania", - "Repeat New Recovery key password" : "Powtórz nowe hasło klucza odzyskiwania", - "Change Password" : "Zmień hasło", - "Your private key password no longer matches your log-in password." : "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.", - "Set your old private key password to your current log-in password:" : "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Jeśli nie pamiętasz swojego starego hasła, poproś swojego administratora, aby odzyskać pliki.", - "Old log-in password" : "Stare hasło logowania", - "Current log-in password" : "Bieżące hasło logowania", - "Update Private Key Password" : "Aktualizacja hasła klucza prywatnego", - "Enable password recovery:" : "Włącz hasło odzyskiwania:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła" -},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/pt_BR.js b/apps/files_encryption/l10n/pt_BR.js deleted file mode 100644 index 4dd588929e3..00000000000 --- a/apps/files_encryption/l10n/pt_BR.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Erro desconhecido", - "Missing recovery key password" : "Senha da chave de recuperação em falta", - "Please repeat the recovery key password" : "Por favor, repita a senha da chave de recuperação", - "Repeated recovery key password does not match the provided recovery key password" : "A senha repetidas da chave de valorização não corresponde a senha da chave de recuperação prevista", - "Recovery key successfully enabled" : "Recuperação de chave habilitada com sucesso", - "Could not disable recovery key. Please check your recovery key password!" : "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!", - "Recovery key successfully disabled" : "Recuperação de chave desabilitada com sucesso", - "Please provide the old recovery password" : "Por favor, forneça a antiga senha de recuperação", - "Please provide a new recovery password" : "Por favor, forneça a nova senha de recuperação", - "Please repeat the new recovery password" : "Por favor, repita a nova senha de recuperação", - "Password successfully changed." : "Senha alterada com sucesso.", - "Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.", - "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.", - "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente novamente.", - "The current log-in password was not correct, please try again." : "A senha atual do log-in não estava correta, por favor, tente novamente.", - "Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.", - "File recovery settings updated" : "Configurações de recuperação de arquivo atualizado", - "Could not update file recovery" : "Não foi possível atualizar a recuperação de arquivos", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplicativo de criptografia não foi inicializado! Talvez o aplicativo de criptografia tenha sido reativado durante essa sessão. Por favor, tente fazer logoff e login novamente para inicializar o aplicativo de criptografia.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sua chave privada não é válida! Provavelmente sua senha foi alterada fora de %s (por exemplo, seu diretório corporativo). Você pode atualizar sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Poe favoe peça ao dono do arquivo para compartilha-lo com você.", - "Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contato com o administrador", - "Initial encryption started... This can take some time. Please wait." : "Criptografia inicial inicializada... Isto pode tomar algum tempo. Por favor espere.", - "Initial encryption running... Please try again later." : "Criptografia inicial em execução ... Por favor, tente novamente mais tarde.", - "Missing requirements." : "Requisitos não encontrados.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se de que o OpenSSL em conjunto com a extensão PHP está habilitado e configurado corretamente. Por enquanto, o aplicativo de criptografia foi desativado.", - "Following users are not set up for encryption:" : "Seguintes usuários não estão configurados para criptografia:", - "Go directly to your %spersonal settings%s." : "Ir direto para suas %spersonal settings%s.", - "Server-side Encryption" : "Criptografia do lado do servidor", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):", - "Recovery key password" : "Senha da chave de recuperação", - "Repeat Recovery key password" : "Repita Recuperação de senha da chave", - "Enabled" : "Habilitado", - "Disabled" : "Desabilitado", - "Change recovery key password:" : "Mudar a senha da chave de recuperação:", - "Old Recovery key password" : "Senha antiga da chave de recuperação", - "New Recovery key password" : "Nova senha da chave de recuperação", - "Repeat New Recovery key password" : "Repita Nova senha da chave de recuperação", - "Change Password" : "Trocar Senha", - "Your private key password no longer matches your log-in password." : "A sua senha de chave privada não corresponde a sua senha de login.", - "Set your old private key password to your current log-in password:" : "Defina a sua antiga senha da chave privada para sua senha de login atual:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.", - "Old log-in password" : "Senha antiga de login", - "Current log-in password" : "Senha de login atual", - "Update Private Key Password" : "Atualizar Senha de Chave Privada", - "Enable password recovery:" : "Habilitar recuperação de senha:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_encryption/l10n/pt_BR.json b/apps/files_encryption/l10n/pt_BR.json deleted file mode 100644 index 59484331a50..00000000000 --- a/apps/files_encryption/l10n/pt_BR.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Erro desconhecido", - "Missing recovery key password" : "Senha da chave de recuperação em falta", - "Please repeat the recovery key password" : "Por favor, repita a senha da chave de recuperação", - "Repeated recovery key password does not match the provided recovery key password" : "A senha repetidas da chave de valorização não corresponde a senha da chave de recuperação prevista", - "Recovery key successfully enabled" : "Recuperação de chave habilitada com sucesso", - "Could not disable recovery key. Please check your recovery key password!" : "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!", - "Recovery key successfully disabled" : "Recuperação de chave desabilitada com sucesso", - "Please provide the old recovery password" : "Por favor, forneça a antiga senha de recuperação", - "Please provide a new recovery password" : "Por favor, forneça a nova senha de recuperação", - "Please repeat the new recovery password" : "Por favor, repita a nova senha de recuperação", - "Password successfully changed." : "Senha alterada com sucesso.", - "Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.", - "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.", - "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente novamente.", - "The current log-in password was not correct, please try again." : "A senha atual do log-in não estava correta, por favor, tente novamente.", - "Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.", - "File recovery settings updated" : "Configurações de recuperação de arquivo atualizado", - "Could not update file recovery" : "Não foi possível atualizar a recuperação de arquivos", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Aplicativo de criptografia não foi inicializado! Talvez o aplicativo de criptografia tenha sido reativado durante essa sessão. Por favor, tente fazer logoff e login novamente para inicializar o aplicativo de criptografia.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Sua chave privada não é válida! Provavelmente sua senha foi alterada fora de %s (por exemplo, seu diretório corporativo). Você pode atualizar sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Poe favoe peça ao dono do arquivo para compartilha-lo com você.", - "Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contato com o administrador", - "Initial encryption started... This can take some time. Please wait." : "Criptografia inicial inicializada... Isto pode tomar algum tempo. Por favor espere.", - "Initial encryption running... Please try again later." : "Criptografia inicial em execução ... Por favor, tente novamente mais tarde.", - "Missing requirements." : "Requisitos não encontrados.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se de que o OpenSSL em conjunto com a extensão PHP está habilitado e configurado corretamente. Por enquanto, o aplicativo de criptografia foi desativado.", - "Following users are not set up for encryption:" : "Seguintes usuários não estão configurados para criptografia:", - "Go directly to your %spersonal settings%s." : "Ir direto para suas %spersonal settings%s.", - "Server-side Encryption" : "Criptografia do lado do servidor", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente", - "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):", - "Recovery key password" : "Senha da chave de recuperação", - "Repeat Recovery key password" : "Repita Recuperação de senha da chave", - "Enabled" : "Habilitado", - "Disabled" : "Desabilitado", - "Change recovery key password:" : "Mudar a senha da chave de recuperação:", - "Old Recovery key password" : "Senha antiga da chave de recuperação", - "New Recovery key password" : "Nova senha da chave de recuperação", - "Repeat New Recovery key password" : "Repita Nova senha da chave de recuperação", - "Change Password" : "Trocar Senha", - "Your private key password no longer matches your log-in password." : "A sua senha de chave privada não corresponde a sua senha de login.", - "Set your old private key password to your current log-in password:" : "Defina a sua antiga senha da chave privada para sua senha de login atual:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.", - "Old log-in password" : "Senha antiga de login", - "Current log-in password" : "Senha de login atual", - "Update Private Key Password" : "Atualizar Senha de Chave Privada", - "Enable password recovery:" : "Habilitar recuperação de senha:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/pt_PT.js b/apps/files_encryption/l10n/pt_PT.js deleted file mode 100644 index 7d392923094..00000000000 --- a/apps/files_encryption/l10n/pt_PT.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Erro desconhecido", - "Missing recovery key password" : "Senha da chave de recuperação em falta", - "Please repeat the recovery key password" : "Por favor, insira a contrassenha da chave de recuperação", - "Repeated recovery key password does not match the provided recovery key password" : "A palavra-passe de recuperação repetida não corresponde à palavra-passe fornecida", - "Recovery key successfully enabled" : "A chave de recuperação foi ativada com sucesso", - "Could not disable recovery key. Please check your recovery key password!" : "Não foi possível desativar a chave de recuperação. Por favor, verifique a senha da chave de recuperação.", - "Recovery key successfully disabled" : "A chave de recuperação foi desativada com sucesso", - "Please provide the old recovery password" : "Escreva a palavra-passe de recuperação antiga", - "Please provide a new recovery password" : "Escreva a nova palavra-passe de recuperação", - "Please repeat the new recovery password" : "Escreva de novo a nova palavra-passe de recuperação", - "Password successfully changed." : "Palavra-passe alterada com sucesso.", - "Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Possivelmente a senha antiga não está correta.", - "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.", - "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente de novo.", - "The current log-in password was not correct, please try again." : "A senha de iniciar a sessão atual não estava correta, por favor, tente de novo.", - "Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ", - "File recovery settings updated" : "As definições da recuperação de ficheiro foram atualizadas", - "Could not update file recovery" : "Não foi possível atualizar a recuperação de ficheiro", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "A app de encriptação não foi inicializada! A app de encriptação poderá ter sido reativada durante a sua sessão. Por favor, tente terminar a sessão e iniciá-la de seguida para inicializar a app de encriptação.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "A sua chave privada não é válida! Provavelmente a senha foi alterada fora do %s (ex. a sua diretoria corporativa). Pode atualizar a sua senha da chave privada nas definições pessoais para recuperar o acesso aos seus ficheiros encriptados. ", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.", - "Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contacto com o seu administrador ", - "Initial encryption started... This can take some time. Please wait." : "A encriptação inicial foi iniciada ... Esta pode demorar algum tempo. Aguarde, por favor.", - "Initial encryption running... Please try again later." : "A encriptação inicial está em execução ... Por favor, tente de novo mais tarde.", - "Missing requirements." : "Requisitos em falta.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se de que o OpenSSL, em conjunto com a extensão PHP, está ativado e configurado corretamente. Por agora, a aplicação de encriptação está desactivada.", - "Following users are not set up for encryption:" : "Os utilizadores seguintes não estão configurados para encriptação:", - "Go directly to your %spersonal settings%s." : "Ir diretamente para as %sdefinições pessoais%s.", - "Server-side Encryption" : "Encriptação do lado do Servidor", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", - "Enable recovery key (allow to recover users files in case of password loss):" : "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):", - "Recovery key password" : "Senha da chave de recuperação", - "Repeat Recovery key password" : "Contrassenha da chave de recuperação", - "Enabled" : "Ativada", - "Disabled" : "Desactivada", - "Change recovery key password:" : "Alterar a senha da chave de recuperação:", - "Old Recovery key password" : "Senha da chave de recuperação antiga", - "New Recovery key password" : "Nova senha da chave de recuperação", - "Repeat New Recovery key password" : "Contrassenha da nova chave de recuperação", - "Change Password" : "Alterar a Senha", - "Your private key password no longer matches your log-in password." : "A Password da sua chave privada não coincide mais com a password do seu login.", - "Set your old private key password to your current log-in password:" : "Altere a password antiga da chave privada para a nova password do login:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ", - "Old log-in password" : "Senha de iniciar sessão antiga", - "Current log-in password" : "Senha de iniciar sessão atual", - "Update Private Key Password" : "Atualizar Senha da Chave Privada ", - "Enable password recovery:" : "Ativar a recuperação da senha:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/pt_PT.json b/apps/files_encryption/l10n/pt_PT.json deleted file mode 100644 index 5f7d0a22f34..00000000000 --- a/apps/files_encryption/l10n/pt_PT.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Erro desconhecido", - "Missing recovery key password" : "Senha da chave de recuperação em falta", - "Please repeat the recovery key password" : "Por favor, insira a contrassenha da chave de recuperação", - "Repeated recovery key password does not match the provided recovery key password" : "A palavra-passe de recuperação repetida não corresponde à palavra-passe fornecida", - "Recovery key successfully enabled" : "A chave de recuperação foi ativada com sucesso", - "Could not disable recovery key. Please check your recovery key password!" : "Não foi possível desativar a chave de recuperação. Por favor, verifique a senha da chave de recuperação.", - "Recovery key successfully disabled" : "A chave de recuperação foi desativada com sucesso", - "Please provide the old recovery password" : "Escreva a palavra-passe de recuperação antiga", - "Please provide a new recovery password" : "Escreva a nova palavra-passe de recuperação", - "Please repeat the new recovery password" : "Escreva de novo a nova palavra-passe de recuperação", - "Password successfully changed." : "Palavra-passe alterada com sucesso.", - "Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Possivelmente a senha antiga não está correta.", - "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.", - "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente de novo.", - "The current log-in password was not correct, please try again." : "A senha de iniciar a sessão atual não estava correta, por favor, tente de novo.", - "Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ", - "File recovery settings updated" : "As definições da recuperação de ficheiro foram atualizadas", - "Could not update file recovery" : "Não foi possível atualizar a recuperação de ficheiro", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "A app de encriptação não foi inicializada! A app de encriptação poderá ter sido reativada durante a sua sessão. Por favor, tente terminar a sessão e iniciá-la de seguida para inicializar a app de encriptação.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "A sua chave privada não é válida! Provavelmente a senha foi alterada fora do %s (ex. a sua diretoria corporativa). Pode atualizar a sua senha da chave privada nas definições pessoais para recuperar o acesso aos seus ficheiros encriptados. ", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.", - "Unknown error. Please check your system settings or contact your administrator" : "Erro desconhecido. Por favor, verifique as configurações do sistema ou entre em contacto com o seu administrador ", - "Initial encryption started... This can take some time. Please wait." : "A encriptação inicial foi iniciada ... Esta pode demorar algum tempo. Aguarde, por favor.", - "Initial encryption running... Please try again later." : "A encriptação inicial está em execução ... Por favor, tente de novo mais tarde.", - "Missing requirements." : "Requisitos em falta.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Por favor, certifique-se de que o OpenSSL, em conjunto com a extensão PHP, está ativado e configurado corretamente. Por agora, a aplicação de encriptação está desactivada.", - "Following users are not set up for encryption:" : "Os utilizadores seguintes não estão configurados para encriptação:", - "Go directly to your %spersonal settings%s." : "Ir diretamente para as %sdefinições pessoais%s.", - "Server-side Encryption" : "Encriptação do lado do Servidor", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente", - "Enable recovery key (allow to recover users files in case of password loss):" : "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):", - "Recovery key password" : "Senha da chave de recuperação", - "Repeat Recovery key password" : "Contrassenha da chave de recuperação", - "Enabled" : "Ativada", - "Disabled" : "Desactivada", - "Change recovery key password:" : "Alterar a senha da chave de recuperação:", - "Old Recovery key password" : "Senha da chave de recuperação antiga", - "New Recovery key password" : "Nova senha da chave de recuperação", - "Repeat New Recovery key password" : "Contrassenha da nova chave de recuperação", - "Change Password" : "Alterar a Senha", - "Your private key password no longer matches your log-in password." : "A Password da sua chave privada não coincide mais com a password do seu login.", - "Set your old private key password to your current log-in password:" : "Altere a password antiga da chave privada para a nova password do login:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ", - "Old log-in password" : "Senha de iniciar sessão antiga", - "Current log-in password" : "Senha de iniciar sessão atual", - "Update Private Key Password" : "Atualizar Senha da Chave Privada ", - "Enable password recovery:" : "Ativar a recuperação da senha:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ro.js b/apps/files_encryption/l10n/ro.js deleted file mode 100644 index 242d7c26ecc..00000000000 --- a/apps/files_encryption/l10n/ro.js +++ /dev/null @@ -1,18 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Eroare necunoscută", - "Recovery key successfully enabled" : "Cheia de recupeare a fost activata cu succes", - "Could not disable recovery key. Please check your recovery key password!" : "Nu am putut dezactiva cheia de recuperare. Verifica parola de recuperare!", - "Recovery key successfully disabled" : "Cheia de recuperare dezactivata cu succes", - "Password successfully changed." : "Parola a fost modificată cu succes.", - "Could not change the password. Maybe the old password was not correct." : "Parola nu a putut fi schimbata. Poate ca parola veche este incorecta.", - "Private key password successfully updated." : "Cheia privata a fost actualizata cu succes", - "File recovery settings updated" : "Setarile pentru recuperarea fisierelor au fost actualizate", - "Could not update file recovery" : "Nu am putut actualiza recuperarea de fisiere", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", - "Enabled" : "Activat", - "Disabled" : "Dezactivat", - "Change Password" : "Schimbă parola" -}, -"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/files_encryption/l10n/ro.json b/apps/files_encryption/l10n/ro.json deleted file mode 100644 index 950bf395d73..00000000000 --- a/apps/files_encryption/l10n/ro.json +++ /dev/null @@ -1,16 +0,0 @@ -{ "translations": { - "Unknown error" : "Eroare necunoscută", - "Recovery key successfully enabled" : "Cheia de recupeare a fost activata cu succes", - "Could not disable recovery key. Please check your recovery key password!" : "Nu am putut dezactiva cheia de recuperare. Verifica parola de recuperare!", - "Recovery key successfully disabled" : "Cheia de recuperare dezactivata cu succes", - "Password successfully changed." : "Parola a fost modificată cu succes.", - "Could not change the password. Maybe the old password was not correct." : "Parola nu a putut fi schimbata. Poate ca parola veche este incorecta.", - "Private key password successfully updated." : "Cheia privata a fost actualizata cu succes", - "File recovery settings updated" : "Setarile pentru recuperarea fisierelor au fost actualizate", - "Could not update file recovery" : "Nu am putut actualiza recuperarea de fisiere", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va", - "Enabled" : "Activat", - "Disabled" : "Dezactivat", - "Change Password" : "Schimbă parola" -},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ru.js b/apps/files_encryption/l10n/ru.js deleted file mode 100644 index bda0d26d80b..00000000000 --- a/apps/files_encryption/l10n/ru.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Неизвестная ошибка", - "Missing recovery key password" : "Отсутствует пароль восстановления ключа", - "Please repeat the recovery key password" : "Повторите ввод пароля ключа восстановления", - "Repeated recovery key password does not match the provided recovery key password" : "Пароль ключа восстановления и повтор пароля не совпадают", - "Recovery key successfully enabled" : "Ключ восстановления успешно установлен", - "Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", - "Recovery key successfully disabled" : "Ключ восстановления успешно отключен", - "Please provide the old recovery password" : "Введите старый пароль восстановления", - "Please provide a new recovery password" : "Введите новый пароль восстановления", - "Please repeat the new recovery password" : "Повторите новый пароль восстановления", - "Password successfully changed." : "Пароль успешно изменен.", - "Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.", - "Could not update the private key password." : "Невозможно обновить пароль закрытого ключа.", - "The old password was not correct, please try again." : "Указан неверный старый пароль, повторите попытку.", - "The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.", - "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.", - "File recovery settings updated" : "Настройки восстановления файлов обновлены", - "Could not update file recovery" : "Невозможно обновить настройки восстановления файлов", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Приложение шифрования не инициализировано! Возможно приложение шифрования было выключено и включено снова во время вашей сессии. Попробуйте выйти и войти снова чтобы инициализировать приложение шифрования.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ недействителен! Вероятно, пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить закрытый ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удалось расшифровать файл, возможно это опубликованный файл. Попросите владельца файла повторно открыть к нему доступ.", - "Unknown error. Please check your system settings or contact your administrator" : "Неизвестная ошибка. Проверьте системные настройки или свяжитесь с вашим администратором", - "Initial encryption started... This can take some time. Please wait." : "Запущено первоначальное шифрование... Это может занять некоторое время. Пожалуйста, подождите.", - "Initial encryption running... Please try again later." : "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже.", - "Missing requirements." : "Отсутствуют зависимости.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Убедитесь, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования выключено.", - "Following users are not set up for encryption:" : "Для следующих пользователей шифрование не настроено:", - "Go directly to your %spersonal settings%s." : "Перейти к вашим %sличным настройкам%s.", - "Server-side Encryption" : "Шифрование на стороне сервера", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново", - "Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):", - "Recovery key password" : "Пароль ключа восстановления", - "Repeat Recovery key password" : "Повторите пароль ключа восстановления", - "Enabled" : "Включено", - "Disabled" : "Отключено", - "Change recovery key password:" : "Смена пароля ключа восстановления:", - "Old Recovery key password" : "Старый пароль ключа восстановления", - "New Recovery key password" : "Новый пароль ключа восстановления", - "Repeat New Recovery key password" : "Повторите новый пароль ключа восстановления", - "Change Password" : "Изменить пароль", - "Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.", - "Set your old private key password to your current log-in password:" : "Замените старый пароль закрытого ключа на текущий пароль учётной записи.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", - "Old log-in password" : "Старый пароль учётной записи", - "Current log-in password" : "Текущий пароль учётной записи", - "Update Private Key Password" : "Обновить пароль закрытого ключа", - "Enable password recovery:" : "Включить восстановление пароля:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/ru.json b/apps/files_encryption/l10n/ru.json deleted file mode 100644 index 3fe5bea497a..00000000000 --- a/apps/files_encryption/l10n/ru.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Неизвестная ошибка", - "Missing recovery key password" : "Отсутствует пароль восстановления ключа", - "Please repeat the recovery key password" : "Повторите ввод пароля ключа восстановления", - "Repeated recovery key password does not match the provided recovery key password" : "Пароль ключа восстановления и повтор пароля не совпадают", - "Recovery key successfully enabled" : "Ключ восстановления успешно установлен", - "Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!", - "Recovery key successfully disabled" : "Ключ восстановления успешно отключен", - "Please provide the old recovery password" : "Введите старый пароль восстановления", - "Please provide a new recovery password" : "Введите новый пароль восстановления", - "Please repeat the new recovery password" : "Повторите новый пароль восстановления", - "Password successfully changed." : "Пароль успешно изменен.", - "Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.", - "Could not update the private key password." : "Невозможно обновить пароль закрытого ключа.", - "The old password was not correct, please try again." : "Указан неверный старый пароль, повторите попытку.", - "The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.", - "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.", - "File recovery settings updated" : "Настройки восстановления файлов обновлены", - "Could not update file recovery" : "Невозможно обновить настройки восстановления файлов", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Приложение шифрования не инициализировано! Возможно приложение шифрования было выключено и включено снова во время вашей сессии. Попробуйте выйти и войти снова чтобы инициализировать приложение шифрования.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ недействителен! Вероятно, пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить закрытый ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удалось расшифровать файл, возможно это опубликованный файл. Попросите владельца файла повторно открыть к нему доступ.", - "Unknown error. Please check your system settings or contact your administrator" : "Неизвестная ошибка. Проверьте системные настройки или свяжитесь с вашим администратором", - "Initial encryption started... This can take some time. Please wait." : "Запущено первоначальное шифрование... Это может занять некоторое время. Пожалуйста, подождите.", - "Initial encryption running... Please try again later." : "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже.", - "Missing requirements." : "Отсутствуют зависимости.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Убедитесь, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования выключено.", - "Following users are not set up for encryption:" : "Для следующих пользователей шифрование не настроено:", - "Go directly to your %spersonal settings%s." : "Перейти к вашим %sличным настройкам%s.", - "Server-side Encryption" : "Шифрование на стороне сервера", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново", - "Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):", - "Recovery key password" : "Пароль ключа восстановления", - "Repeat Recovery key password" : "Повторите пароль ключа восстановления", - "Enabled" : "Включено", - "Disabled" : "Отключено", - "Change recovery key password:" : "Смена пароля ключа восстановления:", - "Old Recovery key password" : "Старый пароль ключа восстановления", - "New Recovery key password" : "Новый пароль ключа восстановления", - "Repeat New Recovery key password" : "Повторите новый пароль ключа восстановления", - "Change Password" : "Изменить пароль", - "Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.", - "Set your old private key password to your current log-in password:" : "Замените старый пароль закрытого ключа на текущий пароль учётной записи.", - " If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы", - "Old log-in password" : "Старый пароль учётной записи", - "Current log-in password" : "Текущий пароль учётной записи", - "Update Private Key Password" : "Обновить пароль закрытого ключа", - "Enable password recovery:" : "Включить восстановление пароля:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/si_LK.js b/apps/files_encryption/l10n/si_LK.js deleted file mode 100644 index befc19388e0..00000000000 --- a/apps/files_encryption/l10n/si_LK.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Encryption" : "ගුප්ත කේතනය" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/si_LK.json b/apps/files_encryption/l10n/si_LK.json deleted file mode 100644 index 3c619c7d8c4..00000000000 --- a/apps/files_encryption/l10n/si_LK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Encryption" : "ගුප්ත කේතනය" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sk_SK.js b/apps/files_encryption/l10n/sk_SK.js deleted file mode 100644 index 799a2c1d21f..00000000000 --- a/apps/files_encryption/l10n/sk_SK.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Neznáma chyba", - "Missing recovery key password" : "Chýba kľúč pre obnovu hesla", - "Please repeat the recovery key password" : "Prosím zopakujte heslo kľúča pre obnovu", - "Repeated recovery key password does not match the provided recovery key password" : "Zopakované heslo kľúča pre obnovenie nesúhlasí zo zadaným heslom", - "Recovery key successfully enabled" : "Záchranný kľúč bol úspešne povolený", - "Could not disable recovery key. Please check your recovery key password!" : "Nepodarilo sa zakázať záchranný kľúč. Skontrolujte prosím Vaše heslo záchranného kľúča!", - "Recovery key successfully disabled" : "Záchranný kľúč bol úspešne zakázaný", - "Please provide the old recovery password" : "Zadajte prosím staré heslo pre obnovenie", - "Please provide a new recovery password" : "Zadajte prosím nové heslo pre obnovenie", - "Please repeat the new recovery password" : "Zopakujte prosím nové heslo pre obnovenie", - "Password successfully changed." : "Heslo úspešne zmenené.", - "Could not change the password. Maybe the old password was not correct." : "Nemožno zmeniť heslo. Pravdepodobne nebolo staré heslo zadané správne.", - "Could not update the private key password." : "Nemožno aktualizovať heslo súkromného kľúča.", - "The old password was not correct, please try again." : "Staré heslo nebolo zadané správne, prosím skúste to ešte raz.", - "The current log-in password was not correct, please try again." : "Toto heslo nebolo správne, prosím skúste to ešte raz.", - "Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.", - "File recovery settings updated" : "Nastavenie obnovy súborov aktualizované", - "Could not update file recovery" : "Nemožno aktualizovať obnovenie súborov", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Šifrovacia aplikácia nie je inicializovaná. Je možné, že aplikácia bola znova aktivovaná počas vášho prihlasovania. Pokúste sa odhlásiť a znova prihlásiť pre inicializáciu šifrovania.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Váš súkromný kľúč nie je platný! Možno bolo vaše heslo zmenené mimo %s (napr. firemný priečinok). Môžete si aktualizovať heslo svojho ​​súkromného kľúča vo vašom osobnom nastavení, ak si chcete obnoviť prístup k šifrovaným súborom.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.", - "Unknown error. Please check your system settings or contact your administrator" : "Neznáma chyba. Skontrolujte si vaše systémové nastavenia alebo kontaktujte administrátora", - "Initial encryption started... This can take some time. Please wait." : "Počiatočné šifrovanie započalo ... To môže nejakú dobu trvať. Čakajte prosím.", - "Initial encryption running... Please try again later." : "Počiatočné šifrovanie beží... Skúste to neskôr znovu.", - "Missing requirements." : "Chýbajúce požiadavky.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Uistite sa, že OpenSSL spoločne s rozšírením pre PHP je povolené a správne nakonfigurované. V tejto chvíli je šifrovanie dočasne vypnuté.", - "Following users are not set up for encryption:" : "Nasledujúci používatelia nie sú nastavení pre šifrovanie:", - "Go directly to your %spersonal settings%s." : "Prejsť priamo do svojho %sosobného nastavenia%s.", - "Server-side Encryption" : "Šifrovanie na serveri", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):", - "Recovery key password" : "Heslo obnovovacieho kľúča", - "Repeat Recovery key password" : "Zopakujte heslo kľúča pre obnovu", - "Enabled" : "Povolené", - "Disabled" : "Zakázané", - "Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:", - "Old Recovery key password" : "Staré heslo obnovovacieho kľúča", - "New Recovery key password" : "Nové heslo obnovovacieho kľúča", - "Repeat New Recovery key password" : "Zopakujte nové heslo kľúča pre obnovu", - "Change Password" : "Zmeniť heslo", - "Your private key password no longer matches your log-in password." : "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.", - "Set your old private key password to your current log-in password:" : "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ak si nepamätáte svoje staré heslo, môžete požiadať administrátora o obnovenie svojich súborov.", - "Old log-in password" : "Staré prihlasovacie heslo", - "Current log-in password" : "Súčasné prihlasovacie heslo", - "Update Private Key Password" : "Aktualizovať heslo súkromného kľúča", - "Enable password recovery:" : "Povoliť obnovu hesla:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo" -}, -"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_encryption/l10n/sk_SK.json b/apps/files_encryption/l10n/sk_SK.json deleted file mode 100644 index 08e9d42638f..00000000000 --- a/apps/files_encryption/l10n/sk_SK.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Neznáma chyba", - "Missing recovery key password" : "Chýba kľúč pre obnovu hesla", - "Please repeat the recovery key password" : "Prosím zopakujte heslo kľúča pre obnovu", - "Repeated recovery key password does not match the provided recovery key password" : "Zopakované heslo kľúča pre obnovenie nesúhlasí zo zadaným heslom", - "Recovery key successfully enabled" : "Záchranný kľúč bol úspešne povolený", - "Could not disable recovery key. Please check your recovery key password!" : "Nepodarilo sa zakázať záchranný kľúč. Skontrolujte prosím Vaše heslo záchranného kľúča!", - "Recovery key successfully disabled" : "Záchranný kľúč bol úspešne zakázaný", - "Please provide the old recovery password" : "Zadajte prosím staré heslo pre obnovenie", - "Please provide a new recovery password" : "Zadajte prosím nové heslo pre obnovenie", - "Please repeat the new recovery password" : "Zopakujte prosím nové heslo pre obnovenie", - "Password successfully changed." : "Heslo úspešne zmenené.", - "Could not change the password. Maybe the old password was not correct." : "Nemožno zmeniť heslo. Pravdepodobne nebolo staré heslo zadané správne.", - "Could not update the private key password." : "Nemožno aktualizovať heslo súkromného kľúča.", - "The old password was not correct, please try again." : "Staré heslo nebolo zadané správne, prosím skúste to ešte raz.", - "The current log-in password was not correct, please try again." : "Toto heslo nebolo správne, prosím skúste to ešte raz.", - "Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.", - "File recovery settings updated" : "Nastavenie obnovy súborov aktualizované", - "Could not update file recovery" : "Nemožno aktualizovať obnovenie súborov", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Šifrovacia aplikácia nie je inicializovaná. Je možné, že aplikácia bola znova aktivovaná počas vášho prihlasovania. Pokúste sa odhlásiť a znova prihlásiť pre inicializáciu šifrovania.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Váš súkromný kľúč nie je platný! Možno bolo vaše heslo zmenené mimo %s (napr. firemný priečinok). Môžete si aktualizovať heslo svojho ​​súkromného kľúča vo vašom osobnom nastavení, ak si chcete obnoviť prístup k šifrovaným súborom.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.", - "Unknown error. Please check your system settings or contact your administrator" : "Neznáma chyba. Skontrolujte si vaše systémové nastavenia alebo kontaktujte administrátora", - "Initial encryption started... This can take some time. Please wait." : "Počiatočné šifrovanie započalo ... To môže nejakú dobu trvať. Čakajte prosím.", - "Initial encryption running... Please try again later." : "Počiatočné šifrovanie beží... Skúste to neskôr znovu.", - "Missing requirements." : "Chýbajúce požiadavky.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Uistite sa, že OpenSSL spoločne s rozšírením pre PHP je povolené a správne nakonfigurované. V tejto chvíli je šifrovanie dočasne vypnuté.", - "Following users are not set up for encryption:" : "Nasledujúci používatelia nie sú nastavení pre šifrovanie:", - "Go directly to your %spersonal settings%s." : "Prejsť priamo do svojho %sosobného nastavenia%s.", - "Server-side Encryption" : "Šifrovanie na serveri", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):", - "Recovery key password" : "Heslo obnovovacieho kľúča", - "Repeat Recovery key password" : "Zopakujte heslo kľúča pre obnovu", - "Enabled" : "Povolené", - "Disabled" : "Zakázané", - "Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:", - "Old Recovery key password" : "Staré heslo obnovovacieho kľúča", - "New Recovery key password" : "Nové heslo obnovovacieho kľúča", - "Repeat New Recovery key password" : "Zopakujte nové heslo kľúča pre obnovu", - "Change Password" : "Zmeniť heslo", - "Your private key password no longer matches your log-in password." : "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.", - "Set your old private key password to your current log-in password:" : "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ak si nepamätáte svoje staré heslo, môžete požiadať administrátora o obnovenie svojich súborov.", - "Old log-in password" : "Staré prihlasovacie heslo", - "Current log-in password" : "Súčasné prihlasovacie heslo", - "Update Private Key Password" : "Aktualizovať heslo súkromného kľúča", - "Enable password recovery:" : "Povoliť obnovu hesla:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo" -},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sl.js b/apps/files_encryption/l10n/sl.js deleted file mode 100644 index 529e5652187..00000000000 --- a/apps/files_encryption/l10n/sl.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Neznana napaka", - "Missing recovery key password" : "Manjka ključ za obnovitev", - "Please repeat the recovery key password" : "Ponovite vpis ključa za obnovitev", - "Repeated recovery key password does not match the provided recovery key password" : "Ponovljen vpis ključa za obnovitev ni enak prvemu vpisu tega ključa", - "Recovery key successfully enabled" : "Ključ za obnovitev gesla je uspešno nastavljen", - "Could not disable recovery key. Please check your recovery key password!" : "Ključa za obnovitev gesla ni mogoče onemogočiti. Preverite ključ!", - "Recovery key successfully disabled" : "Ključ za obnovitev gesla je uspešno onemogočen", - "Please provide the old recovery password" : "Vpišite star ključ za obnovitev", - "Please provide a new recovery password" : "Vpišite nov ključ za obnovitev", - "Please repeat the new recovery password" : "Ponovno vpišite nov ključ za obnovitev", - "Password successfully changed." : "Geslo je uspešno spremenjeno.", - "Could not change the password. Maybe the old password was not correct." : "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.", - "Could not update the private key password." : "Ni mogoče posodobiti gesla zasebnega ključa.", - "The old password was not correct, please try again." : "Staro geslo ni vpisana pravilno. Poskusite znova.", - "The current log-in password was not correct, please try again." : "Trenutno geslo za prijavo ni vpisano pravilno. Poskusite znova.", - "Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.", - "File recovery settings updated" : "Nastavitve obnavljanja dokumentov so posodobljene", - "Could not update file recovery" : "Nastavitev za obnavljanje dokumentov ni mogoče posodobiti", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Program za šifriranje ni začet. Morda je bil program ponovno omogočen šele med zagonom trenutne seje. Odjavite se in se nato prijavite nazaj. S tem morda razrešite napako.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Zasebni ključ ni veljaven. Najverjetneje je bilo geslo spremenjeno izven %s (najverjetneje je to poslovna mapa). Geslo lahko posodobite med osebnimi nastavitvami in s tem obnovite dostop do šifriranih datotek.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.", - "Unknown error. Please check your system settings or contact your administrator" : "Neznana napaka. Preverite nastavitve sistema ali pa stopite v stik s skrbnikom sistema.", - "Initial encryption started... This can take some time. Please wait." : "Začetno šifriranje je začeto ... Opravilo je lahko dolgotrajno.", - "Initial encryption running... Please try again later." : "Začetno šifriranje je v teku ... Poskusite kasneje.", - "Missing requirements." : "Manjkajoče zahteve", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Preverite, ali je OpenSSL z ustrezno razširitvijo PHP omogočen in ustrezno nastavljen. Trenutno je šifriranje onemogočeno.", - "Following users are not set up for encryption:" : "Navedeni uporabniki še nimajo nastavljenega šifriranja:", - "Go directly to your %spersonal settings%s." : "Oglejte si %sosebne nastavitve%s.", - "Server-side Encryption" : "Strežniško šifriranje", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):", - "Recovery key password" : "Ključ za obnovitev gesla", - "Repeat Recovery key password" : "Ponovi ključ za obnovitev gesla", - "Enabled" : "Omogočeno", - "Disabled" : "Onemogočeno", - "Change recovery key password:" : "Spremeni ključ za obnovitev gesla:", - "Old Recovery key password" : "Stari ključ za obnovitev gesla", - "New Recovery key password" : "Novi ključ za obnovitev gesla", - "Repeat New Recovery key password" : "Ponovi novi ključ za obnovitev gesla", - "Change Password" : "Spremeni geslo", - "Your private key password no longer matches your log-in password." : "Zasebno geslo ni več skladno s prijavnim geslom.", - "Set your old private key password to your current log-in password:" : "Nastavite star zasebni ključ na trenutno prijavno geslo:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Če ste pozabili svoje geslo, lahko vaše datoteke obnovi le skrbnik sistema.", - "Old log-in password" : "Staro geslo", - "Current log-in password" : "Trenutno geslo", - "Update Private Key Password" : "Posodobi zasebni ključ", - "Enable password recovery:" : "Omogoči obnovitev gesla:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili." -}, -"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/files_encryption/l10n/sl.json b/apps/files_encryption/l10n/sl.json deleted file mode 100644 index 6c3ffd97b89..00000000000 --- a/apps/files_encryption/l10n/sl.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Neznana napaka", - "Missing recovery key password" : "Manjka ključ za obnovitev", - "Please repeat the recovery key password" : "Ponovite vpis ključa za obnovitev", - "Repeated recovery key password does not match the provided recovery key password" : "Ponovljen vpis ključa za obnovitev ni enak prvemu vpisu tega ključa", - "Recovery key successfully enabled" : "Ključ za obnovitev gesla je uspešno nastavljen", - "Could not disable recovery key. Please check your recovery key password!" : "Ključa za obnovitev gesla ni mogoče onemogočiti. Preverite ključ!", - "Recovery key successfully disabled" : "Ključ za obnovitev gesla je uspešno onemogočen", - "Please provide the old recovery password" : "Vpišite star ključ za obnovitev", - "Please provide a new recovery password" : "Vpišite nov ključ za obnovitev", - "Please repeat the new recovery password" : "Ponovno vpišite nov ključ za obnovitev", - "Password successfully changed." : "Geslo je uspešno spremenjeno.", - "Could not change the password. Maybe the old password was not correct." : "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.", - "Could not update the private key password." : "Ni mogoče posodobiti gesla zasebnega ključa.", - "The old password was not correct, please try again." : "Staro geslo ni vpisana pravilno. Poskusite znova.", - "The current log-in password was not correct, please try again." : "Trenutno geslo za prijavo ni vpisano pravilno. Poskusite znova.", - "Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.", - "File recovery settings updated" : "Nastavitve obnavljanja dokumentov so posodobljene", - "Could not update file recovery" : "Nastavitev za obnavljanje dokumentov ni mogoče posodobiti", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Program za šifriranje ni začet. Morda je bil program ponovno omogočen šele med zagonom trenutne seje. Odjavite se in se nato prijavite nazaj. S tem morda razrešite napako.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Zasebni ključ ni veljaven. Najverjetneje je bilo geslo spremenjeno izven %s (najverjetneje je to poslovna mapa). Geslo lahko posodobite med osebnimi nastavitvami in s tem obnovite dostop do šifriranih datotek.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.", - "Unknown error. Please check your system settings or contact your administrator" : "Neznana napaka. Preverite nastavitve sistema ali pa stopite v stik s skrbnikom sistema.", - "Initial encryption started... This can take some time. Please wait." : "Začetno šifriranje je začeto ... Opravilo je lahko dolgotrajno.", - "Initial encryption running... Please try again later." : "Začetno šifriranje je v teku ... Poskusite kasneje.", - "Missing requirements." : "Manjkajoče zahteve", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Preverite, ali je OpenSSL z ustrezno razširitvijo PHP omogočen in ustrezno nastavljen. Trenutno je šifriranje onemogočeno.", - "Following users are not set up for encryption:" : "Navedeni uporabniki še nimajo nastavljenega šifriranja:", - "Go directly to your %spersonal settings%s." : "Oglejte si %sosebne nastavitve%s.", - "Server-side Encryption" : "Strežniško šifriranje", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):", - "Recovery key password" : "Ključ za obnovitev gesla", - "Repeat Recovery key password" : "Ponovi ključ za obnovitev gesla", - "Enabled" : "Omogočeno", - "Disabled" : "Onemogočeno", - "Change recovery key password:" : "Spremeni ključ za obnovitev gesla:", - "Old Recovery key password" : "Stari ključ za obnovitev gesla", - "New Recovery key password" : "Novi ključ za obnovitev gesla", - "Repeat New Recovery key password" : "Ponovi novi ključ za obnovitev gesla", - "Change Password" : "Spremeni geslo", - "Your private key password no longer matches your log-in password." : "Zasebno geslo ni več skladno s prijavnim geslom.", - "Set your old private key password to your current log-in password:" : "Nastavite star zasebni ključ na trenutno prijavno geslo:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Če ste pozabili svoje geslo, lahko vaše datoteke obnovi le skrbnik sistema.", - "Old log-in password" : "Staro geslo", - "Current log-in password" : "Trenutno geslo", - "Update Private Key Password" : "Posodobi zasebni ključ", - "Enable password recovery:" : "Omogoči obnovitev gesla:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili." -},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sq.js b/apps/files_encryption/l10n/sq.js deleted file mode 100644 index 61d02be4a15..00000000000 --- a/apps/files_encryption/l10n/sq.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Gabim panjohur", - "Enabled" : "Aktivizuar" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/sq.json b/apps/files_encryption/l10n/sq.json deleted file mode 100644 index 2fd483d1689..00000000000 --- a/apps/files_encryption/l10n/sq.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "Unknown error" : "Gabim panjohur", - "Enabled" : "Aktivizuar" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sr.js b/apps/files_encryption/l10n/sr.js deleted file mode 100644 index dec2970e359..00000000000 --- a/apps/files_encryption/l10n/sr.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Непозната грешка", - "Missing recovery key password" : "Недостаје лозинка кључа за опоравак", - "Please repeat the recovery key password" : "Поновите лозинку кључа за опоравак", - "Repeated recovery key password does not match the provided recovery key password" : "Поновљена лозинка кључа за опоравак се не поклапа", - "Recovery key successfully enabled" : "Кључ за опоравак успешно укључен", - "Could not disable recovery key. Please check your recovery key password!" : "Не могу да искључим кључ за опоравак. Проверите лозинку!", - "Recovery key successfully disabled" : "Кључ за опоравак успешно искључен", - "Please provide the old recovery password" : "Унесите стару лозинку опоравка", - "Please provide a new recovery password" : "Унесите нову лозинку опоравка", - "Please repeat the new recovery password" : "Поновите нову лозинку опоравка", - "Password successfully changed." : "Лозинка успешно промењена.", - "Could not change the password. Maybe the old password was not correct." : "Не могу да променим лозинку. Можда стара лозинка није исправна.", - "Could not update the private key password." : "Не могу да ажурирам лозинку личног кључа.", - "The old password was not correct, please try again." : "Стара лозинка није исправна. Покушајте поново.", - "The current log-in password was not correct, please try again." : "Лозинка за пријаву није исправна. Покушајте поново.", - "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.", - "File recovery settings updated" : "Поставке опоравка фајла су ажуриране", - "Could not update file recovery" : "Не могу да ажурирам опоравак фајла", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Апликација шифровања није иницијализована! Можда је поновно покренута током сесије. Покушајте да се одјавите па пријавите да се иницијализује поново.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш лични кључ није исправан! Вероватно сте лозинку променили изван %s (нпр. ваш корпоративни директоријум). Лозинку личног кључа можете ажурирати у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са вама.", - "Unknown error. Please check your system settings or contact your administrator" : "Непозната грешка. Проверите поставке вашег система или контактирајте администратора.", - "Initial encryption started... This can take some time. Please wait." : "Почетно шифровање је покренуто... Ово може потрајати. Молим, сачекајте.", - "Initial encryption running... Please try again later." : "Почетно шифровање ради... Покушајте касније.", - "Missing requirements." : "Захтеви нису испуњени.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Проверите да је ОпенССЛ заједно са ПХП проширењем, укључен и прописно подешен. За сада, шифровање је искључено.", - "Following users are not set up for encryption:" : "Следећи корисници нису подешени за шифровање:", - "Go directly to your %spersonal settings%s." : "Идите право на ваше %sличне поставке%s.", - "Server-side Encryption" : "Шифровање на страни сервера", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Омогући кључ за опоравак (омогућава опоравак корисничких фајлова у случају губитка лозинке):", - "Recovery key password" : "Лозинка кључа за опоравак", - "Repeat Recovery key password" : "Поновите лозинку кључа за опоравак", - "Enabled" : "укључено", - "Disabled" : "искључено", - "Change recovery key password:" : "Измена лозинке кључа опоравка:", - "Old Recovery key password" : "Стара лозинка кључа опоравка", - "New Recovery key password" : "Нова лозинка кључа опоравка", - "Repeat New Recovery key password" : "Поновите лозинку кључа опоравка", - "Change Password" : "Измени лозинку", - "Your private key password no longer matches your log-in password." : "Лозинка вашег личног кључа више није иста као ваша лозинка за пријаву.", - "Set your old private key password to your current log-in password:" : "Промените ваш стари приватни кључ-лозинку у вашу тренутну улазну лозинку:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.", - "Old log-in password" : "Стара лозинка за пријаву", - "Current log-in password" : "Тренутна лозинка за пријаву", - "Update Private Key Password" : "Ажурирај лозинку личног кључа", - "Enable password recovery:" : "Укључи опоравак лозинке:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/sr.json b/apps/files_encryption/l10n/sr.json deleted file mode 100644 index 6c39d417e38..00000000000 --- a/apps/files_encryption/l10n/sr.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Непозната грешка", - "Missing recovery key password" : "Недостаје лозинка кључа за опоравак", - "Please repeat the recovery key password" : "Поновите лозинку кључа за опоравак", - "Repeated recovery key password does not match the provided recovery key password" : "Поновљена лозинка кључа за опоравак се не поклапа", - "Recovery key successfully enabled" : "Кључ за опоравак успешно укључен", - "Could not disable recovery key. Please check your recovery key password!" : "Не могу да искључим кључ за опоравак. Проверите лозинку!", - "Recovery key successfully disabled" : "Кључ за опоравак успешно искључен", - "Please provide the old recovery password" : "Унесите стару лозинку опоравка", - "Please provide a new recovery password" : "Унесите нову лозинку опоравка", - "Please repeat the new recovery password" : "Поновите нову лозинку опоравка", - "Password successfully changed." : "Лозинка успешно промењена.", - "Could not change the password. Maybe the old password was not correct." : "Не могу да променим лозинку. Можда стара лозинка није исправна.", - "Could not update the private key password." : "Не могу да ажурирам лозинку личног кључа.", - "The old password was not correct, please try again." : "Стара лозинка није исправна. Покушајте поново.", - "The current log-in password was not correct, please try again." : "Лозинка за пријаву није исправна. Покушајте поново.", - "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.", - "File recovery settings updated" : "Поставке опоравка фајла су ажуриране", - "Could not update file recovery" : "Не могу да ажурирам опоравак фајла", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Апликација шифровања није иницијализована! Можда је поновно покренута током сесије. Покушајте да се одјавите па пријавите да се иницијализује поново.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш лични кључ није исправан! Вероватно сте лозинку променили изван %s (нпр. ваш корпоративни директоријум). Лозинку личног кључа можете ажурирати у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са вама.", - "Unknown error. Please check your system settings or contact your administrator" : "Непозната грешка. Проверите поставке вашег система или контактирајте администратора.", - "Initial encryption started... This can take some time. Please wait." : "Почетно шифровање је покренуто... Ово може потрајати. Молим, сачекајте.", - "Initial encryption running... Please try again later." : "Почетно шифровање ради... Покушајте касније.", - "Missing requirements." : "Захтеви нису испуњени.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Проверите да је ОпенССЛ заједно са ПХП проширењем, укључен и прописно подешен. За сада, шифровање је искључено.", - "Following users are not set up for encryption:" : "Следећи корисници нису подешени за шифровање:", - "Go directly to your %spersonal settings%s." : "Идите право на ваше %sличне поставке%s.", - "Server-side Encryption" : "Шифровање на страни сервера", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.", - "Enable recovery key (allow to recover users files in case of password loss):" : "Омогући кључ за опоравак (омогућава опоравак корисничких фајлова у случају губитка лозинке):", - "Recovery key password" : "Лозинка кључа за опоравак", - "Repeat Recovery key password" : "Поновите лозинку кључа за опоравак", - "Enabled" : "укључено", - "Disabled" : "искључено", - "Change recovery key password:" : "Измена лозинке кључа опоравка:", - "Old Recovery key password" : "Стара лозинка кључа опоравка", - "New Recovery key password" : "Нова лозинка кључа опоравка", - "Repeat New Recovery key password" : "Поновите лозинку кључа опоравка", - "Change Password" : "Измени лозинку", - "Your private key password no longer matches your log-in password." : "Лозинка вашег личног кључа више није иста као ваша лозинка за пријаву.", - "Set your old private key password to your current log-in password:" : "Промените ваш стари приватни кључ-лозинку у вашу тренутну улазну лозинку:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.", - "Old log-in password" : "Стара лозинка за пријаву", - "Current log-in password" : "Тренутна лозинка за пријаву", - "Update Private Key Password" : "Ажурирај лозинку личног кључа", - "Enable password recovery:" : "Укључи опоравак лозинке:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sr@latin.js b/apps/files_encryption/l10n/sr@latin.js deleted file mode 100644 index e89299ed05b..00000000000 --- a/apps/files_encryption/l10n/sr@latin.js +++ /dev/null @@ -1,8 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Nepoznata greška", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo.", - "Disabled" : "Onemogućeno" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/sr@latin.json b/apps/files_encryption/l10n/sr@latin.json deleted file mode 100644 index 34f0264e031..00000000000 --- a/apps/files_encryption/l10n/sr@latin.json +++ /dev/null @@ -1,6 +0,0 @@ -{ "translations": { - "Unknown error" : "Nepoznata greška", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo.", - "Disabled" : "Onemogućeno" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/sv.js b/apps/files_encryption/l10n/sv.js deleted file mode 100644 index 023fa92d36c..00000000000 --- a/apps/files_encryption/l10n/sv.js +++ /dev/null @@ -1,52 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Okänt fel", - "Missing recovery key password" : "Saknar lösenord för återställningsnyckel", - "Please repeat the recovery key password" : "Vänligen upprepa lösenordet för återställningsnyckel", - "Repeated recovery key password does not match the provided recovery key password" : "Det upprepade lösenordet för återställningsnyckeln matchar inte tillhandahållna lösenordet för återställningsnyckeln", - "Recovery key successfully enabled" : "Återställningsnyckeln har framgångsrikt aktiverats", - "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", - "Recovery key successfully disabled" : "Återställningsnyckeln har framgångsrikt inaktiverats", - "Please provide the old recovery password" : "Vänligen tillhandahåll det gamla återställningslösenordet ", - "Please provide a new recovery password" : "Vänligen tillhandahåll ett nytt återställningslösenord", - "Please repeat the new recovery password" : "Vänligen upprepa det nya återställningslösenordet", - "Password successfully changed." : "Ändringen av lösenordet lyckades.", - "Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.", - "Could not update the private key password." : "Kunde inte uppdatera lösenord för den privata nyckeln", - "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Vänligen försök igen.", - "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt. Vänligen försök igen.", - "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.", - "File recovery settings updated" : "Inställningarna för filåterställning har uppdaterats", - "Could not update file recovery" : "Kunde inte uppdatera filåterställning", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypteringsprogrammet kunde inte initieras! Möjligen blev krypteringsprogrammet återaktiverad under din session. Försök med att logga ut och in igen för att initiera krypteringsprogrammet.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din privata lösenordsnyckel är inte giltig! Troligen har ditt lösenord ändrats utanför %s (t.ex. i företagets katalogtjänst). Du kan uppdatera den privata lösenordsnyckeln under dina personliga inställningar för att återfå tillgång till dina filer.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.", - "Unknown error. Please check your system settings or contact your administrator" : "Okänt fel. Kontrollera dina systeminställningar eller kontakta din administratör", - "Initial encryption started... This can take some time. Please wait." : "Initiala krypteringen har påbörjats... Detta kan ta lite tid. Var god vänta.", - "Initial encryption running... Please try again later." : "Initiala krypteringen körs... Var god försök igen senare.", - "Missing requirements." : "Krav som saknas", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Se till att OpenSSL tillsammans med PHP-tillägget är aktiverat och korrekt konfigurerat. För nu har krypteringsappen inaktiverats.", - "Following users are not set up for encryption:" : "Följande användare har inte aktiverat kryptering:", - "Go directly to your %spersonal settings%s." : "Gå direkt till dina %segna inställningar%s.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):", - "Recovery key password" : "Lösenord för återställningsnyckel", - "Repeat Recovery key password" : "Upprepa återställningsnyckelns lösenord", - "Enabled" : "Aktiverad", - "Disabled" : "Inaktiverad", - "Change recovery key password:" : "Ändra lösenord för återställningsnyckel:", - "Old Recovery key password" : "Gammalt lösenord för återställningsnyckel", - "New Recovery key password" : "Nytt lösenord för återställningsnyckel", - "Repeat New Recovery key password" : "Upprepa lösenord för ny återställningsnyckel", - "Change Password" : "Byt lösenord", - "Your private key password no longer matches your log-in password." : "Ditt lösenord för din privata nyckel matchar inte längre ditt inloggningslösenord.", - "Set your old private key password to your current log-in password:" : "Sätt ditt gamla privatnyckellösenord till ditt aktuella inloggningslösenord:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Om du inte kommer ihåg ditt gamla lösenord kan du be din administratör att återställa dina filer.", - "Old log-in password" : "Gammalt inloggningslösenord", - "Current log-in password" : "Nuvarande inloggningslösenord", - "Update Private Key Password" : "Uppdatera lösenordet för din privata nyckel", - "Enable password recovery:" : "Aktivera lösenordsåterställning", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/sv.json b/apps/files_encryption/l10n/sv.json deleted file mode 100644 index 1d69d8255d8..00000000000 --- a/apps/files_encryption/l10n/sv.json +++ /dev/null @@ -1,50 +0,0 @@ -{ "translations": { - "Unknown error" : "Okänt fel", - "Missing recovery key password" : "Saknar lösenord för återställningsnyckel", - "Please repeat the recovery key password" : "Vänligen upprepa lösenordet för återställningsnyckel", - "Repeated recovery key password does not match the provided recovery key password" : "Det upprepade lösenordet för återställningsnyckeln matchar inte tillhandahållna lösenordet för återställningsnyckeln", - "Recovery key successfully enabled" : "Återställningsnyckeln har framgångsrikt aktiverats", - "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", - "Recovery key successfully disabled" : "Återställningsnyckeln har framgångsrikt inaktiverats", - "Please provide the old recovery password" : "Vänligen tillhandahåll det gamla återställningslösenordet ", - "Please provide a new recovery password" : "Vänligen tillhandahåll ett nytt återställningslösenord", - "Please repeat the new recovery password" : "Vänligen upprepa det nya återställningslösenordet", - "Password successfully changed." : "Ändringen av lösenordet lyckades.", - "Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.", - "Could not update the private key password." : "Kunde inte uppdatera lösenord för den privata nyckeln", - "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Vänligen försök igen.", - "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt. Vänligen försök igen.", - "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.", - "File recovery settings updated" : "Inställningarna för filåterställning har uppdaterats", - "Could not update file recovery" : "Kunde inte uppdatera filåterställning", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Krypteringsprogrammet kunde inte initieras! Möjligen blev krypteringsprogrammet återaktiverad under din session. Försök med att logga ut och in igen för att initiera krypteringsprogrammet.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Din privata lösenordsnyckel är inte giltig! Troligen har ditt lösenord ändrats utanför %s (t.ex. i företagets katalogtjänst). Du kan uppdatera den privata lösenordsnyckeln under dina personliga inställningar för att återfå tillgång till dina filer.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.", - "Unknown error. Please check your system settings or contact your administrator" : "Okänt fel. Kontrollera dina systeminställningar eller kontakta din administratör", - "Initial encryption started... This can take some time. Please wait." : "Initiala krypteringen har påbörjats... Detta kan ta lite tid. Var god vänta.", - "Initial encryption running... Please try again later." : "Initiala krypteringen körs... Var god försök igen senare.", - "Missing requirements." : "Krav som saknas", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Se till att OpenSSL tillsammans med PHP-tillägget är aktiverat och korrekt konfigurerat. För nu har krypteringsappen inaktiverats.", - "Following users are not set up for encryption:" : "Följande användare har inte aktiverat kryptering:", - "Go directly to your %spersonal settings%s." : "Gå direkt till dina %segna inställningar%s.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen", - "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):", - "Recovery key password" : "Lösenord för återställningsnyckel", - "Repeat Recovery key password" : "Upprepa återställningsnyckelns lösenord", - "Enabled" : "Aktiverad", - "Disabled" : "Inaktiverad", - "Change recovery key password:" : "Ändra lösenord för återställningsnyckel:", - "Old Recovery key password" : "Gammalt lösenord för återställningsnyckel", - "New Recovery key password" : "Nytt lösenord för återställningsnyckel", - "Repeat New Recovery key password" : "Upprepa lösenord för ny återställningsnyckel", - "Change Password" : "Byt lösenord", - "Your private key password no longer matches your log-in password." : "Ditt lösenord för din privata nyckel matchar inte längre ditt inloggningslösenord.", - "Set your old private key password to your current log-in password:" : "Sätt ditt gamla privatnyckellösenord till ditt aktuella inloggningslösenord:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Om du inte kommer ihåg ditt gamla lösenord kan du be din administratör att återställa dina filer.", - "Old log-in password" : "Gammalt inloggningslösenord", - "Current log-in password" : "Nuvarande inloggningslösenord", - "Update Private Key Password" : "Uppdatera lösenordet för din privata nyckel", - "Enable password recovery:" : "Aktivera lösenordsåterställning", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ta_LK.js b/apps/files_encryption/l10n/ta_LK.js deleted file mode 100644 index e37ff4a78c4..00000000000 --- a/apps/files_encryption/l10n/ta_LK.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Encryption" : "மறைக்குறியீடு" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ta_LK.json b/apps/files_encryption/l10n/ta_LK.json deleted file mode 100644 index a52ff1c3215..00000000000 --- a/apps/files_encryption/l10n/ta_LK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Encryption" : "மறைக்குறியீடு" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/th_TH.js b/apps/files_encryption/l10n/th_TH.js deleted file mode 100644 index ce8a64ef9c2..00000000000 --- a/apps/files_encryption/l10n/th_TH.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/th_TH.json b/apps/files_encryption/l10n/th_TH.json deleted file mode 100644 index 2f6f34edf72..00000000000 --- a/apps/files_encryption/l10n/th_TH.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/tr.js b/apps/files_encryption/l10n/tr.js deleted file mode 100644 index 0ff5a227b54..00000000000 --- a/apps/files_encryption/l10n/tr.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Bilinmeyen hata", - "Missing recovery key password" : "Eksik kurtarma anahtarı parolası", - "Please repeat the recovery key password" : "Lütfen kurtarma anahtarı parolasını yenileyin", - "Repeated recovery key password does not match the provided recovery key password" : "Yenilenen kurtarma anahtarı parolası, belirtilen kurtarma anahtarı parolası ile eşleşmiyor", - "Recovery key successfully enabled" : "Kurtarma anahtarı başarıyla etkinleştirildi", - "Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!", - "Recovery key successfully disabled" : "Kurtarma anahtarı başarıyla devre dışı bırakıldı", - "Please provide the old recovery password" : "Lütfen eski kurtarma parolasını girin", - "Please provide a new recovery password" : "Lütfen yeni bir kurtarma parolası girin", - "Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin", - "Password successfully changed." : "Parola başarıyla değiştirildi.", - "Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.", - "Could not update the private key password." : "Özel anahtar parolası güncellenemedi", - "The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.", - "The current log-in password was not correct, please try again." : "Geçerli oturum parolası doğru değil, lütfen yeniden deneyin.", - "Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.", - "File recovery settings updated" : "Dosya kurtarma ayarları güncellendi", - "Could not update file recovery" : "Dosya kurtarma güncellenemedi", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Şifreleme uygulaması başlatılamadı! Oturumunuz sırasında şifreleme uygulaması tekrar etkinleştirilmiş olabilir. Lütfen şifreleme uygulamasını başlatmak için oturumu kapatıp yeniden oturum açmayı deneyin.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Özel anahtarınız geçerli değil! Muhtemelen parolanız %s dışarısında değiştirildi (örn. şirket dizininde). Gizli anahtar parolanızı kişisel ayarlarınızda güncelleyerek şifreli dosyalarınıza erişimi kurtarabilirsiniz.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.", - "Unknown error. Please check your system settings or contact your administrator" : "Bilinmeyen hata. Lütfen sistem ayarlarınızı denetleyin veya yöneticiniz ile iletişime geçin", - "Initial encryption started... This can take some time. Please wait." : "İlk şifreleme başladı... Bu biraz zaman alabilir. Lütfen bekleyin.", - "Initial encryption running... Please try again later." : "İlk şifreleme çalışıyor... Lütfen daha sonra tekrar deneyin.", - "Missing requirements." : "Gereklilikler eksik.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "OpenSSL'nin PHP uzantısıyla birlikte etkin ve düzgün yapılandırılmış olduğundan emin olun. Şimdilik şifreleme uygulaması devre dışı bırakıldı.", - "Following users are not set up for encryption:" : "Aşağıdaki kullanıcılar şifreleme için ayarlanmamış:", - "Go directly to your %spersonal settings%s." : "Doğrudan %skişisel ayarlarınıza%s gidin.", - "Server-side Encryption" : "Sunucu Taraflı Şifreleme", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", - "Enable recovery key (allow to recover users files in case of password loss):" : "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):", - "Recovery key password" : "Kurtarma anahtarı parolası", - "Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin", - "Enabled" : "Etkin", - "Disabled" : "Devre Dışı", - "Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:", - "Old Recovery key password" : "Eski Kurtarma anahtarı parolası", - "New Recovery key password" : "Yeni Kurtarma anahtarı parolası", - "Repeat New Recovery key password" : "Yeni Kurtarma anahtarı parolasını yineleyin", - "Change Password" : "Parola Değiştir", - "Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.", - "Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.", - "Old log-in password" : "Eski oturum açma parolası", - "Current log-in password" : "Geçerli oturum açma parolası", - "Update Private Key Password" : "Özel Anahtar Parolasını Güncelle", - "Enable password recovery:" : "Parola kurtarmayı etkinleştir:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_encryption/l10n/tr.json b/apps/files_encryption/l10n/tr.json deleted file mode 100644 index c35db71b49b..00000000000 --- a/apps/files_encryption/l10n/tr.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Bilinmeyen hata", - "Missing recovery key password" : "Eksik kurtarma anahtarı parolası", - "Please repeat the recovery key password" : "Lütfen kurtarma anahtarı parolasını yenileyin", - "Repeated recovery key password does not match the provided recovery key password" : "Yenilenen kurtarma anahtarı parolası, belirtilen kurtarma anahtarı parolası ile eşleşmiyor", - "Recovery key successfully enabled" : "Kurtarma anahtarı başarıyla etkinleştirildi", - "Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!", - "Recovery key successfully disabled" : "Kurtarma anahtarı başarıyla devre dışı bırakıldı", - "Please provide the old recovery password" : "Lütfen eski kurtarma parolasını girin", - "Please provide a new recovery password" : "Lütfen yeni bir kurtarma parolası girin", - "Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin", - "Password successfully changed." : "Parola başarıyla değiştirildi.", - "Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.", - "Could not update the private key password." : "Özel anahtar parolası güncellenemedi", - "The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.", - "The current log-in password was not correct, please try again." : "Geçerli oturum parolası doğru değil, lütfen yeniden deneyin.", - "Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.", - "File recovery settings updated" : "Dosya kurtarma ayarları güncellendi", - "Could not update file recovery" : "Dosya kurtarma güncellenemedi", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Şifreleme uygulaması başlatılamadı! Oturumunuz sırasında şifreleme uygulaması tekrar etkinleştirilmiş olabilir. Lütfen şifreleme uygulamasını başlatmak için oturumu kapatıp yeniden oturum açmayı deneyin.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Özel anahtarınız geçerli değil! Muhtemelen parolanız %s dışarısında değiştirildi (örn. şirket dizininde). Gizli anahtar parolanızı kişisel ayarlarınızda güncelleyerek şifreli dosyalarınıza erişimi kurtarabilirsiniz.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.", - "Unknown error. Please check your system settings or contact your administrator" : "Bilinmeyen hata. Lütfen sistem ayarlarınızı denetleyin veya yöneticiniz ile iletişime geçin", - "Initial encryption started... This can take some time. Please wait." : "İlk şifreleme başladı... Bu biraz zaman alabilir. Lütfen bekleyin.", - "Initial encryption running... Please try again later." : "İlk şifreleme çalışıyor... Lütfen daha sonra tekrar deneyin.", - "Missing requirements." : "Gereklilikler eksik.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "OpenSSL'nin PHP uzantısıyla birlikte etkin ve düzgün yapılandırılmış olduğundan emin olun. Şimdilik şifreleme uygulaması devre dışı bırakıldı.", - "Following users are not set up for encryption:" : "Aşağıdaki kullanıcılar şifreleme için ayarlanmamış:", - "Go directly to your %spersonal settings%s." : "Doğrudan %skişisel ayarlarınıza%s gidin.", - "Server-side Encryption" : "Sunucu Taraflı Şifreleme", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın", - "Enable recovery key (allow to recover users files in case of password loss):" : "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):", - "Recovery key password" : "Kurtarma anahtarı parolası", - "Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin", - "Enabled" : "Etkin", - "Disabled" : "Devre Dışı", - "Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:", - "Old Recovery key password" : "Eski Kurtarma anahtarı parolası", - "New Recovery key password" : "Yeni Kurtarma anahtarı parolası", - "Repeat New Recovery key password" : "Yeni Kurtarma anahtarı parolasını yineleyin", - "Change Password" : "Parola Değiştir", - "Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.", - "Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.", - "Old log-in password" : "Eski oturum açma parolası", - "Current log-in password" : "Geçerli oturum açma parolası", - "Update Private Key Password" : "Özel Anahtar Parolasını Güncelle", - "Enable password recovery:" : "Parola kurtarmayı etkinleştir:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ug.js b/apps/files_encryption/l10n/ug.js deleted file mode 100644 index c712dd03209..00000000000 --- a/apps/files_encryption/l10n/ug.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "يوچۇن خاتالىق" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/ug.json b/apps/files_encryption/l10n/ug.json deleted file mode 100644 index f42ffe18018..00000000000 --- a/apps/files_encryption/l10n/ug.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "يوچۇن خاتالىق" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/uk.js b/apps/files_encryption/l10n/uk.js deleted file mode 100644 index a5f70cf8589..00000000000 --- a/apps/files_encryption/l10n/uk.js +++ /dev/null @@ -1,53 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Невідома помилка", - "Missing recovery key password" : "Відсутній пароль ключа відновлення", - "Please repeat the recovery key password" : "Введіть ще раз пароль для ключа відновлення", - "Repeated recovery key password does not match the provided recovery key password" : "Введені паролі ключа відновлення не співпадають", - "Recovery key successfully enabled" : "Ключ відновлення підключено", - "Could not disable recovery key. Please check your recovery key password!" : "Не вдалося відключити ключ відновлення. Будь ласка, перевірте пароль ключа відновлення!", - "Recovery key successfully disabled" : "Ключ відновлення відключено", - "Please provide the old recovery password" : "Будь ласка, введіть старий пароль відновлення", - "Please provide a new recovery password" : "Будь ласка, введіть новий пароль відновлення", - "Please repeat the new recovery password" : "Будь ласка, введіть новий пароль відновлення ще раз", - "Password successfully changed." : "Пароль змінено.", - "Could not change the password. Maybe the old password was not correct." : "Не вдалося змінити пароль. Можливо ви неправильно ввели старий пароль.", - "Could not update the private key password." : "Не вдалося оновити пароль секретного ключа.", - "The old password was not correct, please try again." : "Старий пароль введено не вірно, спробуйте ще раз.", - "The current log-in password was not correct, please try again." : "Невірний пароль входу, будь ласка, спробуйте ще раз.", - "Private key password successfully updated." : "Пароль секретного ключа оновлено.", - "File recovery settings updated" : "Налаштування файла відновлення оновлено", - "Could not update file recovery" : "Не вдалося оновити файл відновлення ", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Додаток шифрувння не ініціалізовано! Можливо цей додаток редагувався під час вашої сесії. Будь ласка, спробуйте вийти і зайти знову щоб проініціалізувати додаток шифрування.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш секретний ключ не дійсний! Ймовірно ваш пароль був змінений ззовні %s (наприклад, корпоративний каталог). Ви можете оновити секретний ключ в особистих налаштуваннях на сторінці відновлення доступу до зашифрованих файлів.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.", - "Unknown error. Please check your system settings or contact your administrator" : "Невідома помилка. Будь ласка, перевірте налаштування системи або зверніться до адміністратора.", - "Initial encryption started... This can take some time. Please wait." : "Початкове шифрування почалося... Це може зайняти деякий час. Будь ласка, почекайте.", - "Initial encryption running... Please try again later." : "Початкове шифрування працює... Це може зайняти деякий час. Будь ласка, почекайте.", - "Missing requirements." : "Відсутні вимоги.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Будь ласка, переконайтеся, що OpenSSL разом з розширенням PHP включена і налаштована належним чином. В даний час, шифрування додатку було відключено.", - "Following users are not set up for encryption:" : "Для наступних користувачів шифрування не налаштоване:", - "Go directly to your %spersonal settings%s." : "Перейти навпростець до ваших %spersonal settings%s.", - "Server-side Encryption" : "Серверне шіфрування", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", - "Enable recovery key (allow to recover users files in case of password loss):" : "Ввімкнути ключ відновлення (дозволяє користувачам відновлювати файли при втраті паролю):", - "Recovery key password" : "Пароль ключа відновлення", - "Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення", - "Enabled" : "Увімкнено", - "Disabled" : "Вимкнено", - "Change recovery key password:" : "Змінити пароль ключа відновлення:", - "Old Recovery key password" : "Старий пароль ключа відновлення", - "New Recovery key password" : "Новий пароль ключа відновлення", - "Repeat New Recovery key password" : "Введіть ще раз новий пароль ключа відновлення", - "Change Password" : "Змінити Пароль", - "Your private key password no longer matches your log-in password." : "Пароль вашого закритого ключа більше не відповідає паролю від вашого облікового запису.", - "Set your old private key password to your current log-in password:" : "Замініть старий пароль від закритого ключа на новий пароль входу:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Якщо ви не пам'ятаєте ваш старий пароль, ви можете звернутися до адміністратора щоб його відновити.", - "Old log-in password" : "Старий пароль входу", - "Current log-in password" : "Поточний пароль входу", - "Update Private Key Password" : "Оновити пароль для закритого ключа", - "Enable password recovery:" : "Ввімкнути відновлення паролю:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включення цієї опції дозволить вам отримати доступ до своїх зашифрованих файлів у випадку втрати паролю" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_encryption/l10n/uk.json b/apps/files_encryption/l10n/uk.json deleted file mode 100644 index 69c44021eae..00000000000 --- a/apps/files_encryption/l10n/uk.json +++ /dev/null @@ -1,51 +0,0 @@ -{ "translations": { - "Unknown error" : "Невідома помилка", - "Missing recovery key password" : "Відсутній пароль ключа відновлення", - "Please repeat the recovery key password" : "Введіть ще раз пароль для ключа відновлення", - "Repeated recovery key password does not match the provided recovery key password" : "Введені паролі ключа відновлення не співпадають", - "Recovery key successfully enabled" : "Ключ відновлення підключено", - "Could not disable recovery key. Please check your recovery key password!" : "Не вдалося відключити ключ відновлення. Будь ласка, перевірте пароль ключа відновлення!", - "Recovery key successfully disabled" : "Ключ відновлення відключено", - "Please provide the old recovery password" : "Будь ласка, введіть старий пароль відновлення", - "Please provide a new recovery password" : "Будь ласка, введіть новий пароль відновлення", - "Please repeat the new recovery password" : "Будь ласка, введіть новий пароль відновлення ще раз", - "Password successfully changed." : "Пароль змінено.", - "Could not change the password. Maybe the old password was not correct." : "Не вдалося змінити пароль. Можливо ви неправильно ввели старий пароль.", - "Could not update the private key password." : "Не вдалося оновити пароль секретного ключа.", - "The old password was not correct, please try again." : "Старий пароль введено не вірно, спробуйте ще раз.", - "The current log-in password was not correct, please try again." : "Невірний пароль входу, будь ласка, спробуйте ще раз.", - "Private key password successfully updated." : "Пароль секретного ключа оновлено.", - "File recovery settings updated" : "Налаштування файла відновлення оновлено", - "Could not update file recovery" : "Не вдалося оновити файл відновлення ", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "Додаток шифрувння не ініціалізовано! Можливо цей додаток редагувався під час вашої сесії. Будь ласка, спробуйте вийти і зайти знову щоб проініціалізувати додаток шифрування.", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш секретний ключ не дійсний! Ймовірно ваш пароль був змінений ззовні %s (наприклад, корпоративний каталог). Ви можете оновити секретний ключ в особистих налаштуваннях на сторінці відновлення доступу до зашифрованих файлів.", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.", - "Unknown error. Please check your system settings or contact your administrator" : "Невідома помилка. Будь ласка, перевірте налаштування системи або зверніться до адміністратора.", - "Initial encryption started... This can take some time. Please wait." : "Початкове шифрування почалося... Це може зайняти деякий час. Будь ласка, почекайте.", - "Initial encryption running... Please try again later." : "Початкове шифрування працює... Це може зайняти деякий час. Будь ласка, почекайте.", - "Missing requirements." : "Відсутні вимоги.", - "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Будь ласка, переконайтеся, що OpenSSL разом з розширенням PHP включена і налаштована належним чином. В даний час, шифрування додатку було відключено.", - "Following users are not set up for encryption:" : "Для наступних користувачів шифрування не налаштоване:", - "Go directly to your %spersonal settings%s." : "Перейти навпростець до ваших %spersonal settings%s.", - "Server-side Encryption" : "Серверне шіфрування", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", - "Enable recovery key (allow to recover users files in case of password loss):" : "Ввімкнути ключ відновлення (дозволяє користувачам відновлювати файли при втраті паролю):", - "Recovery key password" : "Пароль ключа відновлення", - "Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення", - "Enabled" : "Увімкнено", - "Disabled" : "Вимкнено", - "Change recovery key password:" : "Змінити пароль ключа відновлення:", - "Old Recovery key password" : "Старий пароль ключа відновлення", - "New Recovery key password" : "Новий пароль ключа відновлення", - "Repeat New Recovery key password" : "Введіть ще раз новий пароль ключа відновлення", - "Change Password" : "Змінити Пароль", - "Your private key password no longer matches your log-in password." : "Пароль вашого закритого ключа більше не відповідає паролю від вашого облікового запису.", - "Set your old private key password to your current log-in password:" : "Замініть старий пароль від закритого ключа на новий пароль входу:", - " If you don't remember your old password you can ask your administrator to recover your files." : "Якщо ви не пам'ятаєте ваш старий пароль, ви можете звернутися до адміністратора щоб його відновити.", - "Old log-in password" : "Старий пароль входу", - "Current log-in password" : "Поточний пароль входу", - "Update Private Key Password" : "Оновити пароль для закритого ключа", - "Enable password recovery:" : "Ввімкнути відновлення паролю:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включення цієї опції дозволить вам отримати доступ до своїх зашифрованих файлів у випадку втрати паролю" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/ur_PK.js b/apps/files_encryption/l10n/ur_PK.js deleted file mode 100644 index f2fd4d3419d..00000000000 --- a/apps/files_encryption/l10n/ur_PK.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "غیر معروف خرابی" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_encryption/l10n/ur_PK.json b/apps/files_encryption/l10n/ur_PK.json deleted file mode 100644 index 7d7738b3811..00000000000 --- a/apps/files_encryption/l10n/ur_PK.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Unknown error" : "غیر معروف خرابی" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/vi.js b/apps/files_encryption/l10n/vi.js deleted file mode 100644 index 5b660cbf5b8..00000000000 --- a/apps/files_encryption/l10n/vi.js +++ /dev/null @@ -1,24 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "Lỗi chưa biết", - "Recovery key successfully enabled" : "Khóa khôi phục kích hoạt thành công", - "Could not disable recovery key. Please check your recovery key password!" : "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!", - "Recovery key successfully disabled" : "Vô hiệu hóa khóa khôi phục thành công", - "Password successfully changed." : "Đã đổi mật khẩu.", - "Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.", - "Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân", - "File recovery settings updated" : "Đã cập nhật thiết lập khôi phục tập tin ", - "Could not update file recovery" : "Không thể cập nhật khôi phục tập tin", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", - "Enabled" : "Bật", - "Disabled" : "Tắt", - "Change Password" : "Đổi Mật khẩu", - " If you don't remember your old password you can ask your administrator to recover your files." : "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.", - "Old log-in password" : "Mật khẩu đăng nhập cũ", - "Current log-in password" : "Mật khẩu đăng nhập hiện tại", - "Update Private Key Password" : "Cập nhật mật khẩu khóa cá nhân", - "Enable password recovery:" : "Kích hoạt khôi phục mật khẩu:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/vi.json b/apps/files_encryption/l10n/vi.json deleted file mode 100644 index 85c2f363664..00000000000 --- a/apps/files_encryption/l10n/vi.json +++ /dev/null @@ -1,22 +0,0 @@ -{ "translations": { - "Unknown error" : "Lỗi chưa biết", - "Recovery key successfully enabled" : "Khóa khôi phục kích hoạt thành công", - "Could not disable recovery key. Please check your recovery key password!" : "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!", - "Recovery key successfully disabled" : "Vô hiệu hóa khóa khôi phục thành công", - "Password successfully changed." : "Đã đổi mật khẩu.", - "Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.", - "Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân", - "File recovery settings updated" : "Đã cập nhật thiết lập khôi phục tập tin ", - "Could not update file recovery" : "Không thể cập nhật khôi phục tập tin", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại", - "Enabled" : "Bật", - "Disabled" : "Tắt", - "Change Password" : "Đổi Mật khẩu", - " If you don't remember your old password you can ask your administrator to recover your files." : "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.", - "Old log-in password" : "Mật khẩu đăng nhập cũ", - "Current log-in password" : "Mật khẩu đăng nhập hiện tại", - "Update Private Key Password" : "Cập nhật mật khẩu khóa cá nhân", - "Enable password recovery:" : "Kích hoạt khôi phục mật khẩu:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/zh_CN.js b/apps/files_encryption/l10n/zh_CN.js deleted file mode 100644 index f6038cc6fdf..00000000000 --- a/apps/files_encryption/l10n/zh_CN.js +++ /dev/null @@ -1,48 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "未知错误", - "Missing recovery key password" : "丢失的回复密钥", - "Please repeat the recovery key password" : "请替换恢复密钥", - "Recovery key successfully enabled" : "恢复密钥成功启用", - "Could not disable recovery key. Please check your recovery key password!" : "不能禁用恢复密钥。请检查恢复密钥密码!", - "Recovery key successfully disabled" : "恢复密钥成功禁用", - "Please provide the old recovery password" : "请提供原来的恢复密码", - "Please provide a new recovery password" : "请提供一个新的恢复密码", - "Please repeat the new recovery password" : "请替换新的恢复密码", - "Password successfully changed." : "密码修改成功。", - "Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。", - "Could not update the private key password." : "不能更新私有密钥。", - "The old password was not correct, please try again." : "原始密码错误,请重试。", - "Private key password successfully updated." : "私钥密码成功更新。", - "File recovery settings updated" : "文件恢复设置已更新", - "Could not update file recovery" : "不能更新文件恢复", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "加密应用还没有初始化!可能加密应用在你会话期间已被重新启用。请注销并重新登录,以初始化加密应用。", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "您的私有密钥无效!也许是您在 %s 外更改了密码 (比如,在您的公司目录)。您可以在个人设置里更新您的私钥密码来恢复访问你的加密文件。", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。", - "Unknown error. Please check your system settings or contact your administrator" : "未知错误。请检查系统设置或联系您的管理员", - "Initial encryption started... This can take some time. Please wait." : "初始加密启动中....这可能会花一些时间,请稍后再试。", - "Initial encryption running... Please try again later." : "初始加密运行中....请稍后再试。", - "Missing requirements." : "必填项未填写。", - "Following users are not set up for encryption:" : "以下用户还没有设置加密:", - "Go directly to your %spersonal settings%s." : "直接访问您的%s个人设置%s。", - "Server-side Encryption" : "服务器端加密", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", - "Enable recovery key (allow to recover users files in case of password loss):" : "启用恢复密钥(允许你在密码丢失后恢复文件):", - "Recovery key password" : "恢复密钥密码", - "Repeat Recovery key password" : "重复恢复密钥密码", - "Enabled" : "开启", - "Disabled" : "禁用", - "Change recovery key password:" : "更改恢复密钥密码", - "Old Recovery key password" : "旧的恢复密钥密码", - "New Recovery key password" : "新的恢复密钥密码", - "Repeat New Recovery key password" : "重复新的密钥恢复密码", - "Change Password" : "修改密码", - " If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。", - "Old log-in password" : "旧登录密码", - "Current log-in password" : "当前登录密码", - "Update Private Key Password" : "更新私钥密码", - "Enable password recovery:" : "启用密码恢复:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "启用该项将允许你在密码丢失后取回您的加密文件" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/zh_CN.json b/apps/files_encryption/l10n/zh_CN.json deleted file mode 100644 index 0a98a5d858b..00000000000 --- a/apps/files_encryption/l10n/zh_CN.json +++ /dev/null @@ -1,46 +0,0 @@ -{ "translations": { - "Unknown error" : "未知错误", - "Missing recovery key password" : "丢失的回复密钥", - "Please repeat the recovery key password" : "请替换恢复密钥", - "Recovery key successfully enabled" : "恢复密钥成功启用", - "Could not disable recovery key. Please check your recovery key password!" : "不能禁用恢复密钥。请检查恢复密钥密码!", - "Recovery key successfully disabled" : "恢复密钥成功禁用", - "Please provide the old recovery password" : "请提供原来的恢复密码", - "Please provide a new recovery password" : "请提供一个新的恢复密码", - "Please repeat the new recovery password" : "请替换新的恢复密码", - "Password successfully changed." : "密码修改成功。", - "Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。", - "Could not update the private key password." : "不能更新私有密钥。", - "The old password was not correct, please try again." : "原始密码错误,请重试。", - "Private key password successfully updated." : "私钥密码成功更新。", - "File recovery settings updated" : "文件恢复设置已更新", - "Could not update file recovery" : "不能更新文件恢复", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "加密应用还没有初始化!可能加密应用在你会话期间已被重新启用。请注销并重新登录,以初始化加密应用。", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "您的私有密钥无效!也许是您在 %s 外更改了密码 (比如,在您的公司目录)。您可以在个人设置里更新您的私钥密码来恢复访问你的加密文件。", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。", - "Unknown error. Please check your system settings or contact your administrator" : "未知错误。请检查系统设置或联系您的管理员", - "Initial encryption started... This can take some time. Please wait." : "初始加密启动中....这可能会花一些时间,请稍后再试。", - "Initial encryption running... Please try again later." : "初始加密运行中....请稍后再试。", - "Missing requirements." : "必填项未填写。", - "Following users are not set up for encryption:" : "以下用户还没有设置加密:", - "Go directly to your %spersonal settings%s." : "直接访问您的%s个人设置%s。", - "Server-side Encryption" : "服务器端加密", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", - "Enable recovery key (allow to recover users files in case of password loss):" : "启用恢复密钥(允许你在密码丢失后恢复文件):", - "Recovery key password" : "恢复密钥密码", - "Repeat Recovery key password" : "重复恢复密钥密码", - "Enabled" : "开启", - "Disabled" : "禁用", - "Change recovery key password:" : "更改恢复密钥密码", - "Old Recovery key password" : "旧的恢复密钥密码", - "New Recovery key password" : "新的恢复密钥密码", - "Repeat New Recovery key password" : "重复新的密钥恢复密码", - "Change Password" : "修改密码", - " If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。", - "Old log-in password" : "旧登录密码", - "Current log-in password" : "当前登录密码", - "Update Private Key Password" : "更新私钥密码", - "Enable password recovery:" : "启用密码恢复:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "启用该项将允许你在密码丢失后取回您的加密文件" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/zh_HK.js b/apps/files_encryption/l10n/zh_HK.js deleted file mode 100644 index 071be6c554c..00000000000 --- a/apps/files_encryption/l10n/zh_HK.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "不明錯誤", - "Enabled" : "啟用", - "Disabled" : "停用", - "Change Password" : "更改密碼" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/zh_HK.json b/apps/files_encryption/l10n/zh_HK.json deleted file mode 100644 index eea42097843..00000000000 --- a/apps/files_encryption/l10n/zh_HK.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Unknown error" : "不明錯誤", - "Enabled" : "啟用", - "Disabled" : "停用", - "Change Password" : "更改密碼" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/l10n/zh_TW.js b/apps/files_encryption/l10n/zh_TW.js deleted file mode 100644 index fb80249b709..00000000000 --- a/apps/files_encryption/l10n/zh_TW.js +++ /dev/null @@ -1,39 +0,0 @@ -OC.L10N.register( - "files_encryption", - { - "Unknown error" : "未知的錯誤", - "Recovery key successfully enabled" : "還原金鑰已成功開啟", - "Could not disable recovery key. Please check your recovery key password!" : "無法停用還原金鑰。請檢查您的還原金鑰密碼!", - "Recovery key successfully disabled" : "還原金鑰已成功停用", - "Password successfully changed." : "成功變更密碼。", - "Could not change the password. Maybe the old password was not correct." : "無法變更密碼,或許是輸入的舊密碼不正確。", - "Private key password successfully updated." : "私人金鑰密碼已成功更新。", - "File recovery settings updated" : "檔案還原設定已更新", - "Could not update file recovery" : "無法更新檔案還原設定", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "加密功能未初始化!可能加密功能需要重新啟用在現在的連線上。請試著登出再登入來初始化加密功能。", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "您的私人金鑰不正確!可能您的密碼已經變更在外部的 %s (例如:您的企業目錄)。您可以在您的個人設定中更新私人金鑰密碼來還原存取您的加密檔案。", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。", - "Unknown error. Please check your system settings or contact your administrator" : "未知錯誤請檢查您的系統設定或是聯絡您的管理員", - "Initial encryption started... This can take some time. Please wait." : "加密初始已啟用...這個需要一些時間。請稍等。", - "Initial encryption running... Please try again later." : "加密初始執行中...請晚點再試。", - "Missing requirements." : "遺失必要條件。", - "Following users are not set up for encryption:" : "以下的使用者無法設定加密:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", - "Enable recovery key (allow to recover users files in case of password loss):" : "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):", - "Recovery key password" : "還原金鑰密碼", - "Repeat Recovery key password" : "再輸入還原金鑰密碼一次", - "Enabled" : "已啓用", - "Disabled" : "已停用", - "Change recovery key password:" : "變更還原金鑰密碼:", - "Old Recovery key password" : "舊的還原金鑰密碼", - "New Recovery key password" : "新的還原金鑰密碼", - "Repeat New Recovery key password" : "再輸入新的還原金鑰密碼一次", - "Change Password" : "變更密碼", - " If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。", - "Old log-in password" : "舊登入密碼", - "Current log-in password" : "目前的登入密碼", - "Update Private Key Password" : "更新私人金鑰密碼", - "Enable password recovery:" : "啟用密碼還原:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案" -}, -"nplurals=1; plural=0;"); diff --git a/apps/files_encryption/l10n/zh_TW.json b/apps/files_encryption/l10n/zh_TW.json deleted file mode 100644 index 06ff2ed3fe3..00000000000 --- a/apps/files_encryption/l10n/zh_TW.json +++ /dev/null @@ -1,37 +0,0 @@ -{ "translations": { - "Unknown error" : "未知的錯誤", - "Recovery key successfully enabled" : "還原金鑰已成功開啟", - "Could not disable recovery key. Please check your recovery key password!" : "無法停用還原金鑰。請檢查您的還原金鑰密碼!", - "Recovery key successfully disabled" : "還原金鑰已成功停用", - "Password successfully changed." : "成功變更密碼。", - "Could not change the password. Maybe the old password was not correct." : "無法變更密碼,或許是輸入的舊密碼不正確。", - "Private key password successfully updated." : "私人金鑰密碼已成功更新。", - "File recovery settings updated" : "檔案還原設定已更新", - "Could not update file recovery" : "無法更新檔案還原設定", - "Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." : "加密功能未初始化!可能加密功能需要重新啟用在現在的連線上。請試著登出再登入來初始化加密功能。", - "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "您的私人金鑰不正確!可能您的密碼已經變更在外部的 %s (例如:您的企業目錄)。您可以在您的個人設定中更新私人金鑰密碼來還原存取您的加密檔案。", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。", - "Unknown error. Please check your system settings or contact your administrator" : "未知錯誤請檢查您的系統設定或是聯絡您的管理員", - "Initial encryption started... This can take some time. Please wait." : "加密初始已啟用...這個需要一些時間。請稍等。", - "Initial encryption running... Please try again later." : "加密初始執行中...請晚點再試。", - "Missing requirements." : "遺失必要條件。", - "Following users are not set up for encryption:" : "以下的使用者無法設定加密:", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", - "Enable recovery key (allow to recover users files in case of password loss):" : "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):", - "Recovery key password" : "還原金鑰密碼", - "Repeat Recovery key password" : "再輸入還原金鑰密碼一次", - "Enabled" : "已啓用", - "Disabled" : "已停用", - "Change recovery key password:" : "變更還原金鑰密碼:", - "Old Recovery key password" : "舊的還原金鑰密碼", - "New Recovery key password" : "新的還原金鑰密碼", - "Repeat New Recovery key password" : "再輸入新的還原金鑰密碼一次", - "Change Password" : "變更密碼", - " If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。", - "Old log-in password" : "舊登入密碼", - "Current log-in password" : "目前的登入密碼", - "Update Private Key Password" : "更新私人金鑰密碼", - "Enable password recovery:" : "啟用密碼還原:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/apps/files_encryption/lib/capabilities.php b/apps/files_encryption/lib/capabilities.php deleted file mode 100644 index 0ed696fc7cb..00000000000 --- a/apps/files_encryption/lib/capabilities.php +++ /dev/null @@ -1,39 +0,0 @@ - - * @author Joas Schilling - * @author Morris Jobke - * @author Tom Needham - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption; - -class Capabilities { - - public static function getCapabilities() { - return new \OC_OCS_Result(array( - 'capabilities' => array( - 'files' => array( - 'encryption' => true, - ), - ), - )); - } - -} diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php deleted file mode 100644 index 784121c7ed1..00000000000 --- a/apps/files_encryption/lib/crypt.php +++ /dev/null @@ -1,581 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Owen Winkler - * @author Robin McCorkell - * @author Sam Tuke - * @author Scott Arciszewski - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption; - -/** - * Class for common cryptography functionality - */ - -class Crypt { - - const ENCRYPTION_UNKNOWN_ERROR = -1; - const ENCRYPTION_NOT_INITIALIZED_ERROR = 1; - const ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR = 2; - const ENCRYPTION_NO_SHARE_KEY_FOUND = 3; - - const BLOCKSIZE = 8192; // block size will always be 8192 for a PHP stream https://bugs.php.net/bug.php?id=21641 - const DEFAULT_CIPHER = 'AES-256-CFB'; - - const HEADERSTART = 'HBEGIN'; - const HEADEREND = 'HEND'; - - /** - * return encryption mode client or server side encryption - * @param string $user name (use system wide setting if name=null) - * @return string 'client' or 'server' - * @note at the moment we only support server side encryption - */ - public static function mode($user = null) { - - return 'server'; - - } - - /** - * Create a new encryption keypair - * @return array publicKey, privatekey - */ - public static function createKeypair() { - - $return = false; - - $res = Helper::getOpenSSLPkey(); - - if ($res === false) { - \OCP\Util::writeLog('Encryption library', 'couldn\'t generate users key-pair for ' . \OCP\User::getUser(), \OCP\Util::ERROR); - while ($msg = openssl_error_string()) { - \OCP\Util::writeLog('Encryption library', 'openssl_pkey_new() fails: ' . $msg, \OCP\Util::ERROR); - } - } elseif (openssl_pkey_export($res, $privateKey, null, Helper::getOpenSSLConfig())) { - // Get public key - $keyDetails = openssl_pkey_get_details($res); - $publicKey = $keyDetails['key']; - - $return = array( - 'publicKey' => $publicKey, - 'privateKey' => $privateKey - ); - } else { - \OCP\Util::writeLog('Encryption library', 'couldn\'t export users private key, please check your servers openSSL configuration.' . \OCP\User::getUser(), \OCP\Util::ERROR); - while($errMsg = openssl_error_string()) { - \OCP\Util::writeLog('Encryption library', $errMsg, \OCP\Util::ERROR); - } - } - - return $return; - } - - /** - * Add arbitrary padding to encrypted data - * @param string $data data to be padded - * @return string padded data - * @note In order to end up with data exactly 8192 bytes long we must - * add two letters. It is impossible to achieve exactly 8192 length - * blocks with encryption alone, hence padding is added to achieve the - * required length. - */ - private static function addPadding($data) { - - $padded = $data . 'xx'; - - return $padded; - - } - - /** - * Remove arbitrary padding to encrypted data - * @param string $padded padded data to remove padding from - * @return string unpadded data on success, false on error - */ - private static function removePadding($padded) { - - if (substr($padded, -2) === 'xx') { - - $data = substr($padded, 0, -2); - - return $data; - - } else { - - // TODO: log the fact that unpadded data was submitted for removal of padding - return false; - - } - - } - - /** - * Check if a file's contents contains an IV and is symmetrically encrypted - * @param string $content - * @return boolean - * @note see also \OCA\Files_Encryption\Util->isEncryptedPath() - */ - public static function isCatfileContent($content) { - - if (!$content) { - - return false; - - } - - $noPadding = self::removePadding($content); - - // Fetch encryption metadata from end of file - $meta = substr($noPadding, -22); - - // Fetch identifier from start of metadata - $identifier = substr($meta, 0, 6); - - if ($identifier === '00iv00') { - - return true; - - } else { - - return false; - - } - - } - - /** - * Check if a file is encrypted according to database file cache - * @param string $path - * @return bool - */ - public static function isEncryptedMeta($path) { - - // TODO: Use DI to get \OC\Files\Filesystem out of here - - // Fetch all file metadata from DB - $metadata = \OC\Files\Filesystem::getFileInfo($path); - - // Return encryption status - return isset($metadata['encrypted']) && ( bool )$metadata['encrypted']; - - } - - /** - * Symmetrically encrypt a string - * @param string $plainContent - * @param string $iv - * @param string $passphrase - * @param string $cypher used for encryption, currently we support AES-128-CFB and AES-256-CFB - * @return string encrypted file content - * @throws \OCA\Files_Encryption\Exception\EncryptionException - */ - private static function encrypt($plainContent, $iv, $passphrase = '', $cipher = Crypt::DEFAULT_CIPHER) { - - $encryptedContent = openssl_encrypt($plainContent, $cipher, $passphrase, false, $iv); - - if (!$encryptedContent) { - $error = "Encryption (symmetric) of content failed: " . openssl_error_string(); - \OCP\Util::writeLog('Encryption library', $error, \OCP\Util::ERROR); - throw new Exception\EncryptionException($error, Exception\EncryptionException::ENCRYPTION_FAILED); - } - - return $encryptedContent; - - } - - /** - * Symmetrically decrypt a string - * @param string $encryptedContent - * @param string $iv - * @param string $passphrase - * @param string $cipher cipher user for decryption, currently we support aes128 and aes256 - * @throws \Exception - * @return string decrypted file content - */ - private static function decrypt($encryptedContent, $iv, $passphrase, $cipher = Crypt::DEFAULT_CIPHER) { - - $plainContent = openssl_decrypt($encryptedContent, $cipher, $passphrase, false, $iv); - - if ($plainContent) { - return $plainContent; - } else { - throw new \Exception('Encryption library: Decryption (symmetric) of content failed'); - } - - } - - /** - * Concatenate encrypted data with its IV and padding - * @param string $content content to be concatenated - * @param string $iv IV to be concatenated - * @return string concatenated content - */ - private static function concatIv($content, $iv) { - - $combined = $content . '00iv00' . $iv; - - return $combined; - - } - - /** - * Split concatenated data and IV into respective parts - * @param string $catFile concatenated data to be split - * @return array keys: encrypted, iv - */ - private static function splitIv($catFile) { - - // Fetch encryption metadata from end of file - $meta = substr($catFile, -22); - - // Fetch IV from end of file - $iv = substr($meta, -16); - - // Remove IV and IV identifier text to expose encrypted content - $encrypted = substr($catFile, 0, -22); - - $split = array( - 'encrypted' => $encrypted, - 'iv' => $iv - ); - - return $split; - - } - - /** - * Symmetrically encrypts a string and returns keyfile content - * @param string $plainContent content to be encrypted in keyfile - * @param string $passphrase - * @param string $cypher used for encryption, currently we support AES-128-CFB and AES-256-CFB - * @return false|string encrypted content combined with IV - * @note IV need not be specified, as it will be stored in the returned keyfile - * and remain accessible therein. - */ - public static function symmetricEncryptFileContent($plainContent, $passphrase = '', $cipher = Crypt::DEFAULT_CIPHER) { - - if (!$plainContent) { - \OCP\Util::writeLog('Encryption library', 'symmetrically encryption failed, no content given.', \OCP\Util::ERROR); - return false; - } - - $iv = self::generateIv(); - - try { - $encryptedContent = self::encrypt($plainContent, $iv, $passphrase, $cipher); - // Combine content to encrypt with IV identifier and actual IV - $catfile = self::concatIv($encryptedContent, $iv); - $padded = self::addPadding($catfile); - - return $padded; - } catch (Exception\EncryptionException $e) { - $message = 'Could not encrypt file content (code: ' . $e->getCode() . '): '; - \OCP\Util::writeLog('files_encryption', $message . $e->getMessage(), \OCP\Util::ERROR); - return false; - } - - } - - - /** - * Symmetrically decrypts keyfile content - * @param string $keyfileContent - * @param string $passphrase - * @param string $cipher cipher used for decryption, currently aes128 and aes256 is supported. - * @throws \Exception - * @return string|false - * @internal param string $source - * @internal param string $target - * @internal param string $key the decryption key - * @return string decrypted content - * - * This function decrypts a file - */ - public static function symmetricDecryptFileContent($keyfileContent, $passphrase = '', $cipher = Crypt::DEFAULT_CIPHER) { - - if (!$keyfileContent) { - - throw new \Exception('Encryption library: no data provided for decryption'); - - } - - // Remove padding - $noPadding = self::removePadding($keyfileContent); - - // Split into enc data and catfile - $catfile = self::splitIv($noPadding); - - if ($plainContent = self::decrypt($catfile['encrypted'], $catfile['iv'], $passphrase, $cipher)) { - - return $plainContent; - - } else { - return false; - } - - } - - /** - * Decrypt private key and check if the result is a valid keyfile - * - * @param string $encryptedKey encrypted keyfile - * @param string $passphrase to decrypt keyfile - * @return string|false encrypted private key or false - * - * This function decrypts a file - */ - public static function decryptPrivateKey($encryptedKey, $passphrase) { - - $header = self::parseHeader($encryptedKey); - $cipher = self::getCipher($header); - - // if we found a header we need to remove it from the key we want to decrypt - if (!empty($header)) { - $encryptedKey = substr($encryptedKey, strpos($encryptedKey, self::HEADEREND) + strlen(self::HEADEREND)); - } - - $plainKey = self::symmetricDecryptFileContent($encryptedKey, $passphrase, $cipher); - - // check if this a valid private key - $res = openssl_pkey_get_private($plainKey); - if (is_resource($res)) { - $sslInfo = openssl_pkey_get_details($res); - if (!isset($sslInfo['key'])) { - $plainKey = false; - } - } else { - $plainKey = false; - } - - return $plainKey; - - } - - /** - * Create asymmetrically encrypted keyfile content using a generated key - * @param string $plainContent content to be encrypted - * @param array $publicKeys array keys must be the userId of corresponding user - * @return array keys: keys (array, key = userId), data - * @throws \OCA\Files_Encryption\Exception\MultiKeyEncryptException if encryption failed - * @note symmetricDecryptFileContent() can decrypt files created using this method - */ - public static function multiKeyEncrypt($plainContent, array $publicKeys) { - - // openssl_seal returns false without errors if $plainContent - // is empty, so trigger our own error - if (empty($plainContent)) { - throw new Exception\MultiKeyEncryptException('Cannot multiKeyEncrypt empty plain content', Exception\MultiKeyEncryptException::EMPTY_DATA); - } - - // Set empty vars to be set by openssl by reference - $sealed = ''; - $shareKeys = array(); - $mappedShareKeys = array(); - - if (openssl_seal($plainContent, $sealed, $shareKeys, $publicKeys)) { - - $i = 0; - - // Ensure each shareKey is labelled with its - // corresponding userId - foreach ($publicKeys as $userId => $publicKey) { - - $mappedShareKeys[$userId] = $shareKeys[$i]; - $i++; - - } - - return array( - 'keys' => $mappedShareKeys, - 'data' => $sealed - ); - - } else { - throw new Exception\MultiKeyEncryptException('multi key encryption failed: ' . openssl_error_string(), - Exception\MultiKeyEncryptException::OPENSSL_SEAL_FAILED); - } - - } - - /** - * Asymmetrically encrypt a file using multiple public keys - * @param string $encryptedContent - * @param string $shareKey - * @param mixed $privateKey - * @throws \OCA\Files_Encryption\Exception\MultiKeyDecryptException if decryption failed - * @internal param string $plainContent contains decrypted content - * @return string $plainContent decrypted string - * @note symmetricDecryptFileContent() can be used to decrypt files created using this method - * - * This function decrypts a file - */ - public static function multiKeyDecrypt($encryptedContent, $shareKey, $privateKey) { - - if (!$encryptedContent) { - throw new Exception\MultiKeyDecryptException('Cannot mutliKeyDecrypt empty plain content', - Exception\MultiKeyDecryptException::EMPTY_DATA); - } - - if (openssl_open($encryptedContent, $plainContent, $shareKey, $privateKey)) { - - return $plainContent; - - } else { - throw new Exception\MultiKeyDecryptException('multiKeyDecrypt with share-key' . $shareKey . 'failed: ' . openssl_error_string(), - Exception\MultiKeyDecryptException::OPENSSL_OPEN_FAILED); - } - - } - - /** - * Generates a pseudo random initialisation vector - * @return String $iv generated IV - */ - private static function generateIv() { - - if ($random = openssl_random_pseudo_bytes(12, $strong)) { - - if (!$strong) { - - // If OpenSSL indicates randomness is insecure, log error - \OCP\Util::writeLog('Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()', \OCP\Util::WARN); - - } - - // We encode the iv purely for string manipulation - // purposes - it gets decoded before use - $iv = base64_encode($random); - - return $iv; - - } else { - - throw new \Exception('Generating IV failed'); - - } - - } - - /** - * Generate a pseudo random 256-bit ASCII key, used as file key - * @return string|false Generated key - */ - public static function generateKey() { - - // Generate key - if ($key = base64_encode(openssl_random_pseudo_bytes(32, $strong))) { - - if (!$strong) { - - // If OpenSSL indicates randomness is insecure, log error - throw new \Exception('Encryption library, Insecure symmetric key was generated using openssl_random_pseudo_bytes()'); - - } - - return $key; - - } else { - - return false; - - } - - } - - /** - * read header into array - * - * @param string $data - * @return array - */ - public static function parseHeader($data) { - - $result = array(); - - if (substr($data, 0, strlen(self::HEADERSTART)) === self::HEADERSTART) { - $endAt = strpos($data, self::HEADEREND); - $header = substr($data, 0, $endAt + strlen(self::HEADEREND)); - - // +1 to not start with an ':' which would result in empty element at the beginning - $exploded = explode(':', substr($header, strlen(self::HEADERSTART)+1)); - - $element = array_shift($exploded); - while ($element !== self::HEADEREND) { - - $result[$element] = array_shift($exploded); - - $element = array_shift($exploded); - - } - } - - return $result; - } - - /** - * check if data block is the header - * - * @param string $data - * @return boolean - */ - public static function isHeader($data) { - - if (substr($data, 0, strlen(self::HEADERSTART)) === self::HEADERSTART) { - return true; - } - - return false; - } - - /** - * get chiper from header - * - * @param array $header - * @throws \OCA\Files_Encryption\Exception\EncryptionException - */ - public static function getCipher($header) { - $cipher = isset($header['cipher']) ? $header['cipher'] : 'AES-128-CFB'; - - if ($cipher !== 'AES-256-CFB' && $cipher !== 'AES-128-CFB') { - - throw new Exception\EncryptionException('file header broken, no supported cipher defined', - Exception\EncryptionException::UNKNOWN_CIPHER); - } - - return $cipher; - } - - /** - * generate header for encrypted file - */ - public static function generateHeader() { - $cipher = Helper::getCipher(); - $header = self::HEADERSTART . ':cipher:' . $cipher . ':' . self::HEADEREND; - - return $header; - } - -} diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php deleted file mode 100644 index 1ae161ce99e..00000000000 --- a/apps/files_encryption/lib/helper.php +++ /dev/null @@ -1,532 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Lukas Reschke - * @author Morris Jobke - * @author Owen Winkler - * @author Robin Appelman - * @author Robin McCorkell - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption; - -/** - * Class to manage registration of hooks an various helper methods - * @package OCA\Files_Encryption - */ -class Helper { - - private static $tmpFileMapping; // Map tmp files to files in data/user/files - - /** - * register share related hooks - * - */ - public static function registerShareHooks() { - - \OCP\Util::connectHook('OCP\Share', 'pre_shared', 'OCA\Files_Encryption\Hooks', 'preShared'); - \OCP\Util::connectHook('OCP\Share', 'post_shared', 'OCA\Files_Encryption\Hooks', 'postShared'); - \OCP\Util::connectHook('OCP\Share', 'post_unshare', 'OCA\Files_Encryption\Hooks', 'postUnshare'); - } - - /** - * register user related hooks - * - */ - public static function registerUserHooks() { - - \OCP\Util::connectHook('OC_User', 'post_login', 'OCA\Files_Encryption\Hooks', 'login'); - \OCP\Util::connectHook('OC_User', 'logout', 'OCA\Files_Encryption\Hooks', 'logout'); - \OCP\Util::connectHook('OC_User', 'post_setPassword', 'OCA\Files_Encryption\Hooks', 'setPassphrase'); - \OCP\Util::connectHook('OC_User', 'pre_setPassword', 'OCA\Files_Encryption\Hooks', 'preSetPassphrase'); - \OCP\Util::connectHook('OC_User', 'post_createUser', 'OCA\Files_Encryption\Hooks', 'postCreateUser'); - \OCP\Util::connectHook('OC_User', 'post_deleteUser', 'OCA\Files_Encryption\Hooks', 'postDeleteUser'); - } - - /** - * register filesystem related hooks - * - */ - public static function registerFilesystemHooks() { - - \OCP\Util::connectHook('OC_Filesystem', 'rename', 'OCA\Files_Encryption\Hooks', 'preRename'); - \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Files_Encryption\Hooks', 'postRenameOrCopy'); - \OCP\Util::connectHook('OC_Filesystem', 'copy', 'OCA\Files_Encryption\Hooks', 'preCopy'); - \OCP\Util::connectHook('OC_Filesystem', 'post_copy', 'OCA\Files_Encryption\Hooks', 'postRenameOrCopy'); - \OCP\Util::connectHook('OC_Filesystem', 'post_delete', 'OCA\Files_Encryption\Hooks', 'postDelete'); - \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Files_Encryption\Hooks', 'preDelete'); - \OCP\Util::connectHook('\OC\Core\LostPassword\Controller\LostController', 'post_passwordReset', 'OCA\Files_Encryption\Hooks', 'postPasswordReset'); - \OCP\Util::connectHook('OC_Filesystem', 'post_umount', 'OCA\Files_Encryption\Hooks', 'postUnmount'); - \OCP\Util::connectHook('OC_Filesystem', 'umount', 'OCA\Files_Encryption\Hooks', 'preUnmount'); - } - - /** - * register app management related hooks - * - */ - public static function registerAppHooks() { - - \OCP\Util::connectHook('OC_App', 'pre_disable', 'OCA\Files_Encryption\Hooks', 'preDisable'); - \OCP\Util::connectHook('OC_App', 'post_disable', 'OCA\Files_Encryption\Hooks', 'postEnable'); - } - - /** - * setup user for files_encryption - * - * @param Util $util - * @param string $password - * @return bool - */ - public static function setupUser(Util $util, $password) { - // Check files_encryption infrastructure is ready for action - if (!$util->ready()) { - - \OCP\Util::writeLog('Encryption library', 'User account "' . $util->getUserId() - . '" is not ready for encryption; configuration started', \OCP\Util::DEBUG); - - if (!$util->setupServerSide($password)) { - return false; - } - } - - return true; - } - - /** - * get recovery key id - * - * @return string|bool recovery key ID or false - */ - public static function getRecoveryKeyId() { - $appConfig = \OC::$server->getAppConfig(); - $key = $appConfig->getValue('files_encryption', 'recoveryKeyId'); - - return ($key === null) ? false : $key; - } - - public static function getPublicShareKeyId() { - $appConfig = \OC::$server->getAppConfig(); - $key = $appConfig->getValue('files_encryption', 'publicShareKeyId'); - - return ($key === null) ? false : $key; - } - - /** - * enable recovery - * - * @param string $recoveryKeyId - * @param string $recoveryPassword - * @return bool - */ - public static function adminEnableRecovery($recoveryKeyId, $recoveryPassword) { - - $view = new \OC\Files\View('/'); - $appConfig = \OC::$server->getAppConfig(); - - if ($recoveryKeyId === null) { - $recoveryKeyId = 'recovery_' . substr(md5(time()), 0, 8); - $appConfig->setValue('files_encryption', 'recoveryKeyId', $recoveryKeyId); - } - - if (!Keymanager::recoveryKeyExists($view)) { - - $keypair = Crypt::createKeypair(); - - // Save public key - Keymanager::setPublicKey($keypair['publicKey'], $recoveryKeyId); - - $cipher = Helper::getCipher(); - $encryptedKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $recoveryPassword, $cipher); - if ($encryptedKey) { - Keymanager::setPrivateSystemKey($encryptedKey, $recoveryKeyId); - // Set recoveryAdmin as enabled - $appConfig->setValue('files_encryption', 'recoveryAdminEnabled', 1); - $return = true; - } - - } else { // get recovery key and check the password - $util = new Util(new \OC\Files\View('/'), \OCP\User::getUser()); - $return = $util->checkRecoveryPassword($recoveryPassword); - if ($return) { - $appConfig->setValue('files_encryption', 'recoveryAdminEnabled', 1); - } - } - - return $return; - } - - /** - * Check if a path is a .part file - * @param string $path Path that may identify a .part file - * @return bool - */ - public static function isPartialFilePath($path) { - - $extension = pathinfo($path, PATHINFO_EXTENSION); - if ( $extension === 'part') { - return true; - } else { - return false; - } - - } - - - /** - * Remove .path extension from a file path - * @param string $path Path that may identify a .part file - * @return string File path without .part extension - * @note this is needed for reusing keys - */ - public static function stripPartialFileExtension($path) { - $extension = pathinfo($path, PATHINFO_EXTENSION); - - if ( $extension === 'part') { - - $newLength = strlen($path) - 5; // 5 = strlen(".part") = strlen(".etmp") - $fPath = substr($path, 0, $newLength); - - // if path also contains a transaction id, we remove it too - $extension = pathinfo($fPath, PATHINFO_EXTENSION); - if(substr($extension, 0, 12) === 'ocTransferId') { // 12 = strlen("ocTransferId") - $newLength = strlen($fPath) - strlen($extension) -1; - $fPath = substr($fPath, 0, $newLength); - } - return $fPath; - - } else { - return $path; - } - } - - /** - * disable recovery - * - * @param string $recoveryPassword - * @return bool - */ - public static function adminDisableRecovery($recoveryPassword) { - $util = new Util(new \OC\Files\View('/'), \OCP\User::getUser()); - $return = $util->checkRecoveryPassword($recoveryPassword); - - if ($return) { - // Set recoveryAdmin as disabled - \OC::$server->getAppConfig()->setValue('files_encryption', 'recoveryAdminEnabled', 0); - } - - return $return; - } - - /** - * checks if access is public/anonymous user - * @return bool - */ - public static function isPublicAccess() { - if (\OCP\User::getUser() === false) { - return true; - } else { - return false; - } - } - - /** - * Format a path to be relative to the /user/files/ directory - * @param string $path the absolute path - * @return string e.g. turns '/admin/files/test.txt' into 'test.txt' - */ - public static function stripUserFilesPath($path) { - $split = self::splitPath($path); - - // it is not a file relative to data/user/files - if (count($split) < 4 || $split[2] !== 'files') { - return false; - } - - $sliced = array_slice($split, 3); - $relPath = implode('/', $sliced); - - return $relPath; - } - - /** - * try to get the user from the path if no user is logged in - * @param string $path - * @return string user - */ - public static function getUser($path) { - - $user = \OCP\User::getUser(); - - - // if we are logged in, then we return the userid - if ($user) { - return $user; - } - - // if no user is logged in we try to access a publicly shared files. - // In this case we need to try to get the user from the path - return self::getUserFromPath($path); - } - - /** - * extract user from path - * - * @param string $path - * @return string user id - * @throws Exception\EncryptionException - */ - public static function getUserFromPath($path) { - $split = self::splitPath($path); - - if (count($split) > 2 && ( - $split[2] === 'files' || $split[2] === 'files_versions' || $split[2] === 'cache' || $split[2] === 'files_trashbin')) { - - $user = $split[1]; - - if (\OCP\User::userExists($user)) { - return $user; - } - } - - throw new Exception\EncryptionException('Could not determine user', Exception\EncryptionException::GENERIC); - } - - /** - * get path to the corresponding file in data/user/files if path points - * to a file in cache - * - * @param string $path path to a file in cache - * @return string path to corresponding file relative to data/user/files - * @throws Exception\EncryptionException - */ - public static function getPathFromCachedFile($path) { - $split = self::splitPath($path); - - if (count($split) < 5) { - throw new Exception\EncryptionException('no valid cache file path', Exception\EncryptionException::GENERIC); - } - - // we skip /user/cache/transactionId - $sliced = array_slice($split, 4); - - return implode('/', $sliced); - } - - - /** - * get path to the corresponding file in data/user/files for a version - * - * @param string $path path to a version - * @return string path to corresponding file relative to data/user/files - * @throws Exception\EncryptionException - */ - public static function getPathFromVersion($path) { - $split = self::splitPath($path); - - if (count($split) < 4) { - throw new Exception\EncryptionException('no valid path to a version', Exception\EncryptionException::GENERIC); - } - - // we skip user/files_versions - $sliced = array_slice($split, 3); - $relPath = implode('/', $sliced); - //remove the last .v - $realPath = substr($relPath, 0, strrpos($relPath, '.v')); - - return $realPath; - } - - /** - * create directory recursively - * - * @param string $path - * @param \OC\Files\View $view - */ - public static function mkdirr($path, \OC\Files\View $view) { - $dirParts = self::splitPath(dirname($path)); - $dir = ""; - foreach ($dirParts as $part) { - $dir = $dir . '/' . $part; - if (!$view->file_exists($dir)) { - $view->mkdir($dir); - } - } - } - - /** - * redirect to a error page - * @param Session $session - * @param int|null $errorCode - * @throws \Exception - */ - public static function redirectToErrorPage(Session $session, $errorCode = null) { - - if ($errorCode === null) { - $init = $session->getInitialized(); - switch ($init) { - case Session::INIT_EXECUTED: - $errorCode = Crypt::ENCRYPTION_PRIVATE_KEY_NOT_VALID_ERROR; - break; - case Session::NOT_INITIALIZED: - $errorCode = Crypt::ENCRYPTION_NOT_INITIALIZED_ERROR; - break; - default: - $errorCode = Crypt::ENCRYPTION_UNKNOWN_ERROR; - } - } - - $location = \OCP\Util::linkToAbsolute('apps/files_encryption/files', 'error.php'); - $post = 0; - if(count($_POST) > 0) { - $post = 1; - } - - if(defined('PHPUNIT_RUN') and PHPUNIT_RUN) { - throw new \Exception("Encryption error: $errorCode"); - } - - header('Location: ' . $location . '?p=' . $post . '&errorCode=' . $errorCode); - exit(); - } - - /** - * check requirements for encryption app. - * @return bool true if requirements are met - */ - public static function checkRequirements() { - - //openssl extension needs to be loaded - return extension_loaded("openssl"); - - } - - /** - * check some common errors if the server isn't configured properly for encryption - * @return bool true if configuration seems to be OK - */ - public static function checkConfiguration() { - if(self::getOpenSSLPkey()) { - return true; - } else { - while ($msg = openssl_error_string()) { - \OCP\Util::writeLog('Encryption library', 'openssl_pkey_new() fails: ' . $msg, \OCP\Util::ERROR); - } - return false; - } - } - - /** - * Create an openssl pkey with config-supplied settings - * WARNING: This initializes a new private keypair, which is computationally expensive - * @return resource The pkey resource created - */ - public static function getOpenSSLPkey() { - return openssl_pkey_new(self::getOpenSSLConfig()); - } - - /** - * Return an array of OpenSSL config options, default + config - * Used for multiple OpenSSL functions - * @return array The combined defaults and config settings - */ - public static function getOpenSSLConfig() { - $config = array('private_key_bits' => 4096); - $config = array_merge(\OC::$server->getConfig()->getSystemValue('openssl', array()), $config); - return $config; - } - - /** - * remember from which file the tmp file (getLocalFile() call) was created - * @param string $tmpFile path of tmp file - * @param string $originalFile path of the original file relative to data/ - */ - public static function addTmpFileToMapper($tmpFile, $originalFile) { - self::$tmpFileMapping[$tmpFile] = $originalFile; - } - - /** - * get the path of the original file - * @param string $tmpFile path of the tmp file - * @return string|false path of the original file or false - */ - public static function getPathFromTmpFile($tmpFile) { - if (isset(self::$tmpFileMapping[$tmpFile])) { - return self::$tmpFileMapping[$tmpFile]; - } - - return false; - } - - /** - * detect file type, encryption can read/write regular files, versions - * and cached files - * - * @param string $path - * @return int - * @throws Exception\EncryptionException - */ - public static function detectFileType($path) { - $parts = self::splitPath($path); - - if (count($parts) > 2) { - switch ($parts[2]) { - case 'files': - return Util::FILE_TYPE_FILE; - case 'files_versions': - return Util::FILE_TYPE_VERSION; - case 'cache': - return Util::FILE_TYPE_CACHE; - } - } - - // thow exception if we couldn't detect a valid file type - throw new Exception\EncryptionException('Could not detect file type', Exception\EncryptionException::GENERIC); - } - - /** - * read the cipher used for encryption from the config.php - * - * @return string - */ - public static function getCipher() { - - $cipher = \OC::$server->getConfig()->getSystemValue('cipher', Crypt::DEFAULT_CIPHER); - - if ($cipher !== 'AES-256-CFB' && $cipher !== 'AES-128-CFB') { - \OCP\Util::writeLog('files_encryption', - 'wrong cipher defined in config.php, only AES-128-CFB and AES-256-CFB is supported. Fall back ' . Crypt::DEFAULT_CIPHER, - \OCP\Util::WARN); - - $cipher = Crypt::DEFAULT_CIPHER; - } - - return $cipher; - } - - public static function splitPath($path) { - $normalized = \OC\Files\Filesystem::normalizePath($path); - return explode('/', $normalized); - } - -} - diff --git a/apps/files_encryption/lib/hooks.php b/apps/files_encryption/lib/hooks.php deleted file mode 100644 index 4a29ffaaedf..00000000000 --- a/apps/files_encryption/lib/hooks.php +++ /dev/null @@ -1,625 +0,0 @@ - - * @author Morris Jobke - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption; - -/** - * Class for hook specific logic - */ -class Hooks { - - // file for which we want to rename the keys after the rename operation was successful - private static $renamedFiles = array(); - // file for which we want to delete the keys after the delete operation was successful - private static $deleteFiles = array(); - // file for which we want to delete the keys after the delete operation was successful - private static $unmountedFiles = array(); - - /** - * Startup encryption backend upon user login - * @note This method should never be called for users using client side encryption - */ - public static function login($params) { - - if (\OCP\App::isEnabled('files_encryption') === false) { - return true; - } - - - $l = new \OC_L10N('files_encryption'); - - $view = new \OC\Files\View('/'); - - // ensure filesystem is loaded - if (!\OC\Files\Filesystem::$loaded) { - \OC_Util::setupFS($params['uid']); - } - - $privateKey = Keymanager::getPrivateKey($view, $params['uid']); - - // if no private key exists, check server configuration - if (!$privateKey) { - //check if all requirements are met - if (!Helper::checkRequirements() || !Helper::checkConfiguration()) { - $error_msg = $l->t("Missing requirements."); - $hint = $l->t('Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled.'); - \OC_App::disable('files_encryption'); - \OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR); - \OCP\Template::printErrorPage($error_msg, $hint); - } - } - - $util = new Util($view, $params['uid']); - - // setup user, if user not ready force relogin - if (Helper::setupUser($util, $params['password']) === false) { - return false; - } - - $session = $util->initEncryption($params); - - // Check if first-run file migration has already been performed - $ready = false; - $migrationStatus = $util->getMigrationStatus(); - if ($migrationStatus === Util::MIGRATION_OPEN && $session !== false) { - $ready = $util->beginMigration(); - } elseif ($migrationStatus === Util::MIGRATION_IN_PROGRESS) { - // refuse login as long as the initial encryption is running - sleep(5); - \OCP\User::logout(); - return false; - } - - $result = true; - - // If migration not yet done - if ($ready) { - - // Encrypt existing user files - try { - $result = $util->encryptAll('/' . $params['uid'] . '/' . 'files'); - } catch (\Exception $ex) { - \OCP\Util::writeLog('Encryption library', 'Initial encryption failed! Error: ' . $ex->getMessage(), \OCP\Util::FATAL); - $result = false; - } - - if ($result) { - \OC_Log::write( - 'Encryption library', 'Encryption of existing files belonging to "' . $params['uid'] . '" completed' - , \OC_Log::INFO - ); - // Register successful migration in DB - $util->finishMigration(); - } else { - \OCP\Util::writeLog('Encryption library', 'Initial encryption failed!', \OCP\Util::FATAL); - $util->resetMigrationStatus(); - \OCP\User::logout(); - } - } - - return $result; - } - - /** - * remove keys from session during logout - */ - public static function logout() { - $session = new Session(new \OC\Files\View()); - $session->removeKeys(); - } - - /** - * setup encryption backend upon user created - * @note This method should never be called for users using client side encryption - */ - public static function postCreateUser($params) { - - if (\OCP\App::isEnabled('files_encryption')) { - $view = new \OC\Files\View('/'); - $util = new Util($view, $params['uid']); - Helper::setupUser($util, $params['password']); - } - } - - /** - * cleanup encryption backend upon user deleted - * @note This method should never be called for users using client side encryption - */ - public static function postDeleteUser($params) { - - if (\OCP\App::isEnabled('files_encryption')) { - Keymanager::deletePublicKey(new \OC\Files\View(), $params['uid']); - } - } - - /** - * If the password can't be changed within ownCloud, than update the key password in advance. - */ - public static function preSetPassphrase($params) { - if (\OCP\App::isEnabled('files_encryption')) { - if ( ! \OC_User::canUserChangePassword($params['uid']) ) { - self::setPassphrase($params); - } - } - } - - /** - * Change a user's encryption passphrase - * @param array $params keys: uid, password - */ - public static function setPassphrase($params) { - if (\OCP\App::isEnabled('files_encryption') === false) { - return true; - } - - // Only attempt to change passphrase if server-side encryption - // is in use (client-side encryption does not have access to - // the necessary keys) - if (Crypt::mode() === 'server') { - - $view = new \OC\Files\View('/'); - $session = new Session($view); - - // Get existing decrypted private key - $privateKey = $session->getPrivateKey(); - - if ($params['uid'] === \OCP\User::getUser() && $privateKey) { - - // Encrypt private key with new user pwd as passphrase - $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($privateKey, $params['password'], Helper::getCipher()); - - // Save private key - if ($encryptedPrivateKey) { - Keymanager::setPrivateKey($encryptedPrivateKey, \OCP\User::getUser()); - } else { - \OCP\Util::writeLog('files_encryption', 'Could not update users encryption password', \OCP\Util::ERROR); - } - - // NOTE: Session does not need to be updated as the - // private key has not changed, only the passphrase - // used to decrypt it has changed - - - } else { // admin changed the password for a different user, create new keys and reencrypt file keys - - $user = $params['uid']; - $util = new Util($view, $user); - $recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null; - - // we generate new keys if... - // ...we have a recovery password and the user enabled the recovery key - // ...encryption was activated for the first time (no keys exists) - // ...the user doesn't have any files - if (($util->recoveryEnabledForUser() && $recoveryPassword) - || !$util->userKeysExists() - || !$view->file_exists($user . '/files')) { - - // backup old keys - $util->backupAllKeys('recovery'); - - $newUserPassword = $params['password']; - - // make sure that the users home is mounted - \OC\Files\Filesystem::initMountPoints($user); - - $keypair = Crypt::createKeypair(); - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // Save public key - Keymanager::setPublicKey($keypair['publicKey'], $user); - - // Encrypt private key with new password - $encryptedKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword, Helper::getCipher()); - if ($encryptedKey) { - Keymanager::setPrivateKey($encryptedKey, $user); - - if ($recoveryPassword) { // if recovery key is set we can re-encrypt the key files - $util = new Util($view, $user); - $util->recoverUsersFiles($recoveryPassword); - } - } else { - \OCP\Util::writeLog('files_encryption', 'Could not update users encryption password', \OCP\Util::ERROR); - } - - \OC_FileProxy::$enabled = $proxyStatus; - } - } - } - } - - /** - * after password reset we create a new key pair for the user - * - * @param array $params - */ - public static function postPasswordReset($params) { - $uid = $params['uid']; - $password = $params['password']; - - $util = new Util(new \OC\Files\View(), $uid); - $util->replaceUserKeys($password); - } - - /* - * check if files can be encrypted to every user. - */ - /** - * @param array $params - */ - public static function preShared($params) { - - if (\OCP\App::isEnabled('files_encryption') === false) { - return true; - } - - $l = new \OC_L10N('files_encryption'); - $users = array(); - $view = new \OC\Files\View('/'); - - switch ($params['shareType']) { - case \OCP\Share::SHARE_TYPE_USER: - $users[] = $params['shareWith']; - break; - case \OCP\Share::SHARE_TYPE_GROUP: - $users = \OC_Group::usersInGroup($params['shareWith']); - break; - } - - $notConfigured = array(); - foreach ($users as $user) { - if (!Keymanager::publicKeyExists($view, $user)) { - $notConfigured[] = $user; - } - } - - if (count($notConfigured) > 0) { - $params['run'] = false; - $params['error'] = $l->t('Following users are not set up for encryption:') . ' ' . join(', ' , $notConfigured); - } - - } - - /** - * update share keys if a file was shared - */ - public static function postShared($params) { - - if (\OCP\App::isEnabled('files_encryption') === false) { - return true; - } - - if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') { - - $path = \OC\Files\Filesystem::getPath($params['fileSource']); - - self::updateKeyfiles($path); - } - } - - /** - * update keyfiles and share keys recursively - * - * @param string $path to the file/folder - */ - private static function updateKeyfiles($path) { - $view = new \OC\Files\View('/'); - $userId = \OCP\User::getUser(); - $session = new Session($view); - $util = new Util($view, $userId); - $sharingEnabled = \OCP\Share::isEnabled(); - - $mountManager = \OC\Files\Filesystem::getMountManager(); - $mount = $mountManager->find('/' . $userId . '/files' . $path); - $mountPoint = $mount->getMountPoint(); - - // if a folder was shared, get a list of all (sub-)folders - if ($view->is_dir('/' . $userId . '/files' . $path)) { - $allFiles = $util->getAllFiles($path, $mountPoint); - } else { - $allFiles = array($path); - } - - foreach ($allFiles as $path) { - $usersSharing = $util->getSharingUsersArray($sharingEnabled, $path); - $util->setSharedFileKeyfiles($session, $usersSharing, $path); - } - } - - /** - * unshare file/folder from a user with whom you shared the file before - */ - public static function postUnshare($params) { - - if (\OCP\App::isEnabled('files_encryption') === false) { - return true; - } - - if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') { - - $view = new \OC\Files\View('/'); - $userId = $params['uidOwner']; - $userView = new \OC\Files\View('/' . $userId . '/files'); - $util = new Util($view, $userId); - $path = $userView->getPath($params['fileSource']); - - // for group shares get a list of the group members - if ($params['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) { - $userIds = \OC_Group::usersInGroup($params['shareWith']); - } else { - if ($params['shareType'] === \OCP\Share::SHARE_TYPE_LINK || $params['shareType'] === \OCP\Share::SHARE_TYPE_REMOTE) { - $userIds = array($util->getPublicShareKeyId()); - } else { - $userIds = array($params['shareWith']); - } - } - - $mountManager = \OC\Files\Filesystem::getMountManager(); - $mount = $mountManager->find('/' . $userId . '/files' . $path); - $mountPoint = $mount->getMountPoint(); - - // if we unshare a folder we need a list of all (sub-)files - if ($params['itemType'] === 'folder') { - $allFiles = $util->getAllFiles($path, $mountPoint); - } else { - $allFiles = array($path); - } - - foreach ($allFiles as $path) { - - // check if the user still has access to the file, otherwise delete share key - $sharingUsers = $util->getSharingUsersArray(true, $path); - - // Unshare every user who no longer has access to the file - $delUsers = array_diff($userIds, $sharingUsers); - $keyPath = Keymanager::getKeyPath($view, $util, $path); - - // delete share key - Keymanager::delShareKey($view, $delUsers, $keyPath, $userId, $path); - } - - } - } - - /** - * mark file as renamed so that we know the original source after the file was renamed - * @param array $params with the old path and the new path - */ - public static function preRename($params) { - self::preRenameOrCopy($params, 'rename'); - } - - /** - * mark file as copied so that we know the original source after the file was copied - * @param array $params with the old path and the new path - */ - public static function preCopy($params) { - self::preRenameOrCopy($params, 'copy'); - } - - private static function preRenameOrCopy($params, $operation) { - $user = \OCP\User::getUser(); - $view = new \OC\Files\View('/'); - $util = new Util($view, $user); - - // we only need to rename the keys if the rename happens on the same mountpoint - // otherwise we perform a stream copy, so we get a new set of keys - $oldPath = \OC\Files\Filesystem::normalizePath('/' . $user . '/files/' . $params['oldpath']); - $newPath = \OC\Files\Filesystem::normalizePath('/' . $user . '/files/' . $params['newpath']); - $mp1 = $view->getMountPoint($oldPath); - $mp2 = $view->getMountPoint($newPath); - - $oldKeysPath = Keymanager::getKeyPath($view, $util, $params['oldpath']); - - if ($mp1 === $mp2) { - self::$renamedFiles[$params['oldpath']] = array( - 'operation' => $operation, - 'oldKeysPath' => $oldKeysPath, - ); - } elseif ($mp1 !== $oldPath . '/') { - self::$renamedFiles[$params['oldpath']] = array( - 'operation' => 'cleanup', - 'oldKeysPath' => $oldKeysPath, - ); - } - } - - /** - * after a file is renamed/copied, rename/copy its keyfile and share-keys also fix the file size and fix also the sharing - * - * @param array $params array with oldpath and newpath - */ - public static function postRenameOrCopy($params) { - - if (\OCP\App::isEnabled('files_encryption') === false) { - return true; - } - - $view = new \OC\Files\View('/'); - $userId = \OCP\User::getUser(); - $util = new Util($view, $userId); - - if (isset(self::$renamedFiles[$params['oldpath']]['operation']) && - isset(self::$renamedFiles[$params['oldpath']]['oldKeysPath'])) { - $operation = self::$renamedFiles[$params['oldpath']]['operation']; - $oldKeysPath = self::$renamedFiles[$params['oldpath']]['oldKeysPath']; - unset(self::$renamedFiles[$params['oldpath']]); - if ($operation === 'cleanup') { - return $view->unlink($oldKeysPath); - } - } else { - \OCP\Util::writeLog('Encryption library', "can't get path and owner from the file before it was renamed", \OCP\Util::DEBUG); - return false; - } - - list($ownerNew, $pathNew) = $util->getUidAndFilename($params['newpath']); - - if ($util->isSystemWideMountPoint($pathNew)) { - $newKeysPath = 'files_encryption/keys/' . $pathNew; - } else { - $newKeysPath = $ownerNew . '/files_encryption/keys/' . $pathNew; - } - - // create key folders if it doesn't exists - if (!$view->file_exists(dirname($newKeysPath))) { - $view->mkdir(dirname($newKeysPath)); - } - - $view->$operation($oldKeysPath, $newKeysPath); - - // update sharing-keys - self::updateKeyfiles($params['newpath']); - } - - /** - * set migration status and the init status back to '0' so that all new files get encrypted - * if the app gets enabled again - * @param array $params contains the app ID - */ - public static function preDisable($params) { - if ($params['app'] === 'files_encryption') { - - \OC::$server->getConfig()->deleteAppFromAllUsers('files_encryption'); - - $session = new Session(new \OC\Files\View('/')); - $session->setInitialized(Session::NOT_INITIALIZED); - } - } - - /** - * set the init status to 'NOT_INITIALIZED' (0) if the app gets enabled - * @param array $params contains the app ID - */ - public static function postEnable($params) { - if ($params['app'] === 'files_encryption') { - $session = new Session(new \OC\Files\View('/')); - $session->setInitialized(Session::NOT_INITIALIZED); - } - } - - /** - * if the file was really deleted we remove the encryption keys - * @param array $params - * @return boolean|null - */ - public static function postDelete($params) { - - $path = $params[\OC\Files\Filesystem::signal_param_path]; - - if (!isset(self::$deleteFiles[$path])) { - return true; - } - - $deletedFile = self::$deleteFiles[$path]; - $keyPath = $deletedFile['keyPath']; - - // we don't need to remember the file any longer - unset(self::$deleteFiles[$path]); - - $view = new \OC\Files\View('/'); - - // return if the file still exists and wasn't deleted correctly - if ($view->file_exists('/' . \OCP\User::getUser() . '/files/' . $path)) { - return true; - } - - // Delete keyfile & shareKey so it isn't orphaned - $view->unlink($keyPath); - - } - - /** - * remember the file which should be deleted and it's owner - * @param array $params - * @return boolean|null - */ - public static function preDelete($params) { - $view = new \OC\Files\View('/'); - $path = $params[\OC\Files\Filesystem::signal_param_path]; - - // skip this method if the trash bin is enabled or if we delete a file - // outside of /data/user/files - if (\OCP\App::isEnabled('files_trashbin')) { - return true; - } - - $util = new Util($view, \OCP\USER::getUser()); - - $keysPath = Keymanager::getKeyPath($view, $util, $path); - - self::$deleteFiles[$path] = array( - 'keyPath' => $keysPath); - } - - /** - * unmount file from yourself - * remember files/folders which get unmounted - */ - public static function preUnmount($params) { - $view = new \OC\Files\View('/'); - $user = \OCP\User::getUser(); - $path = $params[\OC\Files\Filesystem::signal_param_path]; - - $util = new Util($view, $user); - list($owner, $ownerPath) = $util->getUidAndFilename($path); - - $keysPath = Keymanager::getKeyPath($view, $util, $path); - - self::$unmountedFiles[$path] = array( - 'keyPath' => $keysPath, - 'owner' => $owner, - 'ownerPath' => $ownerPath - ); - } - - /** - * unmount file from yourself - */ - public static function postUnmount($params) { - - $path = $params[\OC\Files\Filesystem::signal_param_path]; - $user = \OCP\User::getUser(); - - if (!isset(self::$unmountedFiles[$path])) { - return true; - } - - $umountedFile = self::$unmountedFiles[$path]; - $keyPath = $umountedFile['keyPath']; - $owner = $umountedFile['owner']; - $ownerPath = $umountedFile['ownerPath']; - - $view = new \OC\Files\View(); - - // we don't need to remember the file any longer - unset(self::$unmountedFiles[$path]); - - // check if the user still has access to the file, otherwise delete share key - $sharingUsers = \OCP\Share::getUsersSharingFile($path, $user); - if (!in_array($user, $sharingUsers['users'])) { - Keymanager::delShareKey($view, array($user), $keyPath, $owner, $ownerPath); - } - } - -} diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php deleted file mode 100644 index 5e33372e9c6..00000000000 --- a/apps/files_encryption/lib/keymanager.php +++ /dev/null @@ -1,500 +0,0 @@ - - * @author Christopher Schäpers - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Robin Appelman - * @author Robin McCorkell - * @author Sam Tuke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption; - -/** - * Class to manage storage and retrieval of encryption keys - * @note Where a method requires a view object, it's root must be '/' - */ -class Keymanager { - - // base dir where all the file related keys are stored - private static $keys_base_dir = '/files_encryption/keys/'; - private static $encryption_base_dir = '/files_encryption'; - private static $public_key_dir = '/files_encryption/public_keys'; - - private static $key_cache = array(); // cache keys - - /** - * read key from hard disk - * - * @param string $path to key - * @param \OC\Files\View $view - * @return string|bool either the key or false - */ - private static function getKey($path, $view) { - - $key = false; - - if (isset(self::$key_cache[$path])) { - $key = self::$key_cache[$path]; - } else { - - /** @var \OCP\Files\Storage $storage */ - list($storage, $internalPath) = $view->resolvePath($path); - - if ($storage->file_exists($internalPath)) { - $key = $storage->file_get_contents($internalPath); - self::$key_cache[$path] = $key; - } - - } - - return $key; - } - - /** - * write key to disk - * - * - * @param string $path path to key directory - * @param string $name key name - * @param string $key key - * @param \OC\Files\View $view - * @return bool - */ - private static function setKey($path, $name, $key, $view) { - self::keySetPreparation($view, $path); - - /** @var \OCP\Files\Storage $storage */ - $pathToKey = \OC\Files\Filesystem::normalizePath($path . '/' . $name); - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($pathToKey); - $result = $storage->file_put_contents($internalPath, $key); - - if (is_int($result) && $result > 0) { - self::$key_cache[$pathToKey] = $key; - return true; - } - - return false; - } - - /** - * retrieve the ENCRYPTED private key from a user - * - * @param \OC\Files\View $view - * @param string $user - * @return string private key or false (hopefully) - * @note the key returned by this method must be decrypted before use - */ - public static function getPrivateKey(\OC\Files\View $view, $user) { - $path = '/' . $user . '/' . 'files_encryption' . '/' . $user . '.privateKey'; - return self::getKey($path, $view); - } - - /** - * retrieve public key for a specified user - * @param \OC\Files\View $view - * @param string $userId - * @return string public key or false - */ - public static function getPublicKey(\OC\Files\View $view, $userId) { - $path = self::$public_key_dir . '/' . $userId . '.publicKey'; - return self::getKey($path, $view); - } - - public static function getPublicKeyPath() { - return self::$public_key_dir; - } - - /** - * Retrieve a user's public and private key - * @param \OC\Files\View $view - * @param string $userId - * @return array keys: privateKey, publicKey - */ - public static function getUserKeys(\OC\Files\View $view, $userId) { - - return array( - 'publicKey' => self::getPublicKey($view, $userId), - 'privateKey' => self::getPrivateKey($view, $userId) - ); - - } - - /** - * Retrieve public keys for given users - * @param \OC\Files\View $view - * @param array $userIds - * @return array of public keys for the specified users - */ - public static function getPublicKeys(\OC\Files\View $view, array $userIds) { - - $keys = array(); - foreach ($userIds as $userId) { - $keys[$userId] = self::getPublicKey($view, $userId); - } - - return $keys; - - } - - /** - * store file encryption key - * - * @param \OC\Files\View $view - * @param \OCA\Files_Encryption\Util $util - * @param string $path relative path of the file, including filename - * @param string $catfile keyfile content - * @return bool true/false - * @note The keyfile is not encrypted here. Client code must - * asymmetrically encrypt the keyfile before passing it to this method - */ - public static function setFileKey(\OC\Files\View $view, $util, $path, $catfile) { - $path = self::getKeyPath($view, $util, $path); - return self::setKey($path, 'fileKey', $catfile, $view); - - } - - /** - * get path to key folder for a given file - * - * @param \OC\Files\View $view relative to data directory - * @param \OCA\Files_Encryption\Util $util - * @param string $path path to the file, relative to the users file directory - * @return string - */ - public static function getKeyPath($view, $util, $path) { - - if ($view->is_dir('/' . \OCP\User::getUser() . '/' . $path)) { - throw new Exception\EncryptionException('file was expected but directoy was given', Exception\EncryptionException::GENERIC); - } - - list($owner, $filename) = $util->getUidAndFilename($path); - $filename = Helper::stripPartialFileExtension($filename); - $filePath_f = ltrim($filename, '/'); - - // in case of system wide mount points the keys are stored directly in the data directory - if ($util->isSystemWideMountPoint($filename)) { - $keyPath = self::$keys_base_dir . $filePath_f . '/'; - } else { - $keyPath = '/' . $owner . self::$keys_base_dir . $filePath_f . '/'; - } - - return $keyPath; - } - - /** - * get path to file key for a given file - * - * @param \OC\Files\View $view relative to data directory - * @param \OCA\Files_Encryption\Util $util - * @param string $path path to the file, relative to the users file directory - * @return string - */ - public static function getFileKeyPath($view, $util, $path) { - $keyDir = self::getKeyPath($view, $util, $path); - return $keyDir . 'fileKey'; - } - - /** - * get path to share key for a given user - * - * @param \OC\Files\View $view relateive to data directory - * @param \OCA\Files_Encryption\Util $util - * @param string $path path to file relative to the users files directoy - * @param string $uid user for whom we want the share-key path - * @retrun string - */ - public static function getShareKeyPath($view, $util, $path, $uid) { - $keyDir = self::getKeyPath($view, $util, $path); - return $keyDir . $uid . '.shareKey'; - } - - /** - * delete key - * - * @param \OC\Files\View $view - * @param string $path - * @return boolean - */ - private static function deleteKey($view, $path) { - $normalizedPath = \OC\Files\Filesystem::normalizePath($path); - $result = $view->unlink($normalizedPath); - - if ($result) { - unset(self::$key_cache[$normalizedPath]); - return true; - } - - return false; - } - - /** - * delete public key from a given user - * - * @param \OC\Files\View $view - * @param string $uid user - * @return bool - */ - public static function deletePublicKey($view, $uid) { - - $result = false; - - if (!\OCP\User::userExists($uid)) { - $publicKey = self::$public_key_dir . '/' . $uid . '.publicKey'; - self::deleteKey($view, $publicKey); - } - - return $result; - } - - /** - * check if public key for user exists - * - * @param \OC\Files\View $view - * @param string $uid - */ - public static function publicKeyExists($view, $uid) { - return $view->file_exists(self::$public_key_dir . '/'. $uid . '.publicKey'); - } - - - - /** - * retrieve keyfile for an encrypted file - * @param \OC\Files\View $view - * @param \OCA\Files_Encryption\Util $util - * @param string|false $filePath - * @return string file key or false - * @note The keyfile returned is asymmetrically encrypted. Decryption - * of the keyfile must be performed by client code - */ - public static function getFileKey($view, $util, $filePath) { - $path = self::getFileKeyPath($view, $util, $filePath); - return self::getKey($path, $view); - } - - /** - * store private key from the user - * @param string $key - * @return bool - * @note Encryption of the private key must be performed by client code - * as no encryption takes place here - */ - public static function setPrivateKey($key, $user = '') { - - $user = $user === '' ? \OCP\User::getUser() : $user; - $path = '/' . $user . '/files_encryption'; - $header = Crypt::generateHeader(); - - return self::setKey($path, $user . '.privateKey', $header . $key, new \OC\Files\View()); - - } - - /** - * check if recovery key exists - * - * @param \OC\Files\View $view - * @return bool - */ - public static function recoveryKeyExists($view) { - - $result = false; - - $recoveryKeyId = Helper::getRecoveryKeyId(); - if ($recoveryKeyId) { - $result = ($view->file_exists(self::$public_key_dir . '/' . $recoveryKeyId . ".publicKey") - && $view->file_exists(self::$encryption_base_dir . '/' . $recoveryKeyId . ".privateKey")); - } - - return $result; - } - - public static function publicShareKeyExists($view) { - $result = false; - - $publicShareKeyId = Helper::getPublicShareKeyId(); - if ($publicShareKeyId) { - $result = ($view->file_exists(self::$public_key_dir . '/' . $publicShareKeyId . ".publicKey") - && $view->file_exists(self::$encryption_base_dir . '/' . $publicShareKeyId . ".privateKey")); - - } - - return $result; - } - - /** - * store public key from the user - * @param string $key - * @param string $user - * - * @return bool - */ - public static function setPublicKey($key, $user = '') { - - $user = $user === '' ? \OCP\User::getUser() : $user; - - return self::setKey(self::$public_key_dir, $user . '.publicKey', $key, new \OC\Files\View('/')); - } - - /** - * write private system key (recovery and public share key) to disk - * - * @param string $key encrypted key - * @param string $keyName name of the key - * @return boolean - */ - public static function setPrivateSystemKey($key, $keyName) { - - $keyName = $keyName . '.privateKey'; - $header = Crypt::generateHeader(); - - return self::setKey(self::$encryption_base_dir, $keyName,$header . $key, new \OC\Files\View()); - } - - /** - * read private system key (recovery and public share key) from disk - * - * @param string $keyName name of the key - * @return string|boolean private system key or false - */ - public static function getPrivateSystemKey($keyName) { - $path = $keyName . '.privateKey'; - return self::getKey($path, new \OC\Files\View(self::$encryption_base_dir)); - } - - /** - * store multiple share keys for a single file - * @param \OC\Files\View $view - * @param \OCA\Files_Encryption\Util $util - * @param string $path - * @param array $shareKeys - * @return bool - */ - public static function setShareKeys($view, $util, $path, array $shareKeys) { - - // in case of system wide mount points the keys are stored directly in the data directory - $basePath = Keymanager::getKeyPath($view, $util, $path); - - self::keySetPreparation($view, $basePath); - - $result = true; - - foreach ($shareKeys as $userId => $shareKey) { - if (!self::setKey($basePath, $userId . '.shareKey', $shareKey, $view)) { - // If any of the keys are not set, flag false - $result = false; - } - } - - // Returns false if any of the keys weren't set - return $result; - } - - /** - * retrieve shareKey for an encrypted file - * @param \OC\Files\View $view - * @param string $userId - * @param \OCA\Files_Encryption\Util $util - * @param string $filePath - * @return string file key or false - * @note The sharekey returned is encrypted. Decryption - * of the keyfile must be performed by client code - */ - public static function getShareKey($view, $userId, $util, $filePath) { - $path = self::getShareKeyPath($view, $util, $filePath, $userId); - return self::getKey($path, $view); - } - - /** - * Delete a single user's shareKey for a single file - * - * @param \OC\Files\View $view relative to data/ - * @param array $userIds list of users we want to remove - * @param string $keyPath - * @param string $owner the owner of the file - * @param string $ownerPath the owners name of the file for which we want to remove the users relative to data/user/files - */ - public static function delShareKey($view, $userIds, $keysPath, $owner, $ownerPath) { - - $key = array_search($owner, $userIds, true); - if ($key !== false && $view->file_exists('/' . $owner . '/files/' . $ownerPath)) { - unset($userIds[$key]); - } - - self::recursiveDelShareKeys($keysPath, $userIds, $view); - - } - - /** - * recursively delete share keys from given users - * - * @param string $dir directory - * @param array $userIds user ids for which the share keys should be deleted - * @param \OC\Files\View $view view relative to data/ - */ - private static function recursiveDelShareKeys($dir, $userIds, $view) { - - $dirContent = $view->opendir($dir); - - if (is_resource($dirContent)) { - while (($file = readdir($dirContent)) !== false) { - if (!\OC\Files\Filesystem::isIgnoredDir($file)) { - if ($view->is_dir($dir . '/' . $file)) { - self::recursiveDelShareKeys($dir . '/' . $file, $userIds, $view); - } else { - foreach ($userIds as $userId) { - if ($userId . '.shareKey' === $file) { - \OCP\Util::writeLog('files_encryption', 'recursiveDelShareKey: delete share key: ' . $file, \OCP\Util::DEBUG); - self::deleteKey($view, $dir . '/' . $file); - } - } - } - } - } - closedir($dirContent); - } - } - - /** - * Make preparations to vars and filesystem for saving a keyfile - * - * @param \OC\Files\View $view - * @param string $path relatvie to the views root - * @param string $basePath - */ - protected static function keySetPreparation($view, $path) { - // If the file resides within a subdirectory, create it - if (!$view->file_exists($path)) { - $sub_dirs = explode('/', $path); - $dir = ''; - foreach ($sub_dirs as $sub_dir) { - $dir .= '/' . $sub_dir; - if (!$view->is_dir($dir)) { - $view->mkdir($dir); - } - } - } - } - -} diff --git a/apps/files_encryption/lib/migration.php b/apps/files_encryption/lib/migration.php deleted file mode 100644 index 3f8ca9f4e23..00000000000 --- a/apps/files_encryption/lib/migration.php +++ /dev/null @@ -1,302 +0,0 @@ - - * @author Björn Schießle - * @author Joas Schilling - * @author Morris Jobke - * @author Robin Appelman - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption; - - -class Migration { - - /** - * @var \OC\Files\View - */ - private $view; - private $public_share_key_id; - private $recovery_key_id; - - public function __construct() { - $this->view = new \OC\Files\View(); - $this->view->getUpdater()->disable(); - $this->public_share_key_id = Helper::getPublicShareKeyId(); - $this->recovery_key_id = Helper::getRecoveryKeyId(); - } - - public function reorganizeFolderStructure() { - $this->reorganizeSystemFolderStructure(); - - $limit = 500; - $offset = 0; - do { - $users = \OCP\User::getUsers('', $limit, $offset); - foreach ($users as $user) { - $this->reorganizeFolderStructureForUser($user); - } - $offset += $limit; - } while (count($users) >= $limit); - } - - public function reorganizeSystemFolderStructure() { - - $this->createPathForKeys('/files_encryption'); - - // backup system wide folders - $this->backupSystemWideKeys(); - - // rename public keys - $this->renamePublicKeys(); - - // rename system wide mount point - $this->renameFileKeys('', '/files_encryption/keyfiles'); - - // rename system private keys - $this->renameSystemPrivateKeys(); - - // delete old system wide folders - $this->view->deleteAll('/public-keys'); - $this->view->deleteAll('/owncloud_private_key'); - $this->view->deleteAll('/files_encryption/share-keys'); - $this->view->deleteAll('/files_encryption/keyfiles'); - $storage = $this->view->getMount('')->getStorage(); - $storage->getScanner()->scan('files_encryption'); - $storage->getCache()->remove('owncloud_private_key'); - $storage->getCache()->remove('public-keys'); - } - - - public function reorganizeFolderStructureForUser($user) { - // backup all keys - \OC_Util::tearDownFS(); - \OC_Util::setupFS($user); - if ($this->backupUserKeys($user)) { - // create new 'key' folder - $this->view->mkdir($user . '/files_encryption/keys'); - // rename users private key - $this->renameUsersPrivateKey($user); - // rename file keys - $path = $user . '/files_encryption/keyfiles'; - $this->renameFileKeys($user, $path); - $trashPath = $user . '/files_trashbin/keyfiles'; - if (\OC_App::isEnabled('files_trashbin') && $this->view->is_dir($trashPath)) { - $this->renameFileKeys($user, $trashPath, true); - $this->view->deleteAll($trashPath); - $this->view->deleteAll($user . '/files_trashbin/share-keys'); - } - // delete old folders - $this->deleteOldKeys($user); - $this->view->getMount('/' . $user)->getStorage()->getScanner()->scan('files_encryption'); - } - } - - private function backupSystemWideKeys() { - $backupDir = 'encryption_migration_backup_' . date("Y-m-d_H-i-s"); - $this->view->mkdir($backupDir); - $this->view->copy('owncloud_private_key', $backupDir . '/owncloud_private_key'); - $this->view->copy('public-keys', $backupDir . '/public-keys'); - $this->view->copy('files_encryption', $backupDir . '/files_encryption'); - } - - private function backupUserKeys($user) { - $encryptionDir = $user . '/files_encryption'; - if ($this->view->is_dir($encryptionDir)) { - $backupDir = $user . '/encryption_migration_backup_' . date("Y-m-d_H-i-s"); - $this->view->mkdir($backupDir); - $this->view->copy($encryptionDir, $backupDir); - return true; - } - return false; - } - - private function renamePublicKeys() { - $dh = $this->view->opendir('public-keys'); - - $this->createPathForKeys('files_encryption/public_keys'); - - if (is_resource($dh)) { - while (($oldPublicKey = readdir($dh)) !== false) { - if (!\OC\Files\Filesystem::isIgnoredDir($oldPublicKey)) { - $newPublicKey = substr($oldPublicKey, 0, strlen($oldPublicKey) - strlen('.public.key')) . '.publicKey'; - $this->view->rename('public-keys/' . $oldPublicKey, 'files_encryption/public_keys/' . $newPublicKey); - } - } - closedir($dh); - } - } - - private function renameSystemPrivateKeys() { - $dh = $this->view->opendir('owncloud_private_key'); - - if (is_resource($dh)) { - while (($oldPrivateKey = readdir($dh)) !== false) { - if (!\OC\Files\Filesystem::isIgnoredDir($oldPrivateKey)) { - $newPrivateKey = substr($oldPrivateKey, 0, strlen($oldPrivateKey) - strlen('.private.key')) . '.privateKey'; - $this->view->rename('owncloud_private_key/' . $oldPrivateKey, 'files_encryption/' . $newPrivateKey); - } - } - closedir($dh); - } - } - - private function renameUsersPrivateKey($user) { - $oldPrivateKey = $user . '/files_encryption/' . $user . '.private.key'; - $newPrivateKey = substr($oldPrivateKey, 0, strlen($oldPrivateKey) - strlen('.private.key')) . '.privateKey'; - - $this->view->rename($oldPrivateKey, $newPrivateKey); - } - - private function getFileName($file, $trash) { - - $extLength = strlen('.key'); - - if ($trash) { - $parts = explode('.', $file); - if ($parts[count($parts) - 1] !== 'key') { - $extLength = $extLength + strlen('.' . $parts[count($parts) - 1]); - } - } - - $filename = substr($file, 0, strlen($file) - $extLength); - - return $filename; - } - - private function getExtension($file, $trash) { - - $extension = ''; - - if ($trash) { - $parts = explode('.', $file); - if ($parts[count($parts) - 1] !== 'key') { - $extension = '.' . $parts[count($parts) - 1]; - } - } - - return $extension; - } - - private function getFilePath($path, $user, $trash) { - $offset = $trash ? strlen($user . '/files_trashbin/keyfiles') : strlen($user . '/files_encryption/keyfiles'); - return substr($path, $offset); - } - - private function getTargetDir($user, $filePath, $filename, $extension, $trash) { - if ($trash) { - $targetDir = $user . '/files_trashbin/keys/' . $filePath . '/' . $filename . $extension; - } else { - $targetDir = $user . '/files_encryption/keys/' . $filePath . '/' . $filename . $extension; - } - - return $targetDir; - } - - private function renameFileKeys($user, $path, $trash = false) { - - $dh = $this->view->opendir($path); - - if (is_resource($dh)) { - while (($file = readdir($dh)) !== false) { - if (!\OC\Files\Filesystem::isIgnoredDir($file)) { - if ($this->view->is_dir($path . '/' . $file)) { - $this->renameFileKeys($user, $path . '/' . $file, $trash); - } else { - $filename = $this->getFileName($file, $trash); - $filePath = $this->getFilePath($path, $user, $trash); - $extension = $this->getExtension($file, $trash); - $targetDir = $this->getTargetDir($user, $filePath, $filename, $extension, $trash); - $this->createPathForKeys($targetDir); - $this->view->rename($path . '/' . $file, $targetDir . '/fileKey'); - $this->renameShareKeys($user, $filePath, $filename, $targetDir, $trash); - } - } - } - closedir($dh); - } - } - - private function getOldShareKeyPath($user, $filePath, $trash) { - if ($trash) { - $oldShareKeyPath = $user . '/files_trashbin/share-keys/' . $filePath; - } else { - $oldShareKeyPath = $user . '/files_encryption/share-keys/' . $filePath; - } - - return $oldShareKeyPath; - } - - private function getUidFromShareKey($file, $filename, $trash) { - $extLength = strlen('.shareKey'); - if ($trash) { - $parts = explode('.', $file); - if ($parts[count($parts) - 1] !== 'shareKey') { - $extLength = $extLength + strlen('.' . $parts[count($parts) - 1]); - } - } - - $uid = substr($file, strlen($filename) + 1, $extLength * -1); - - return $uid; - } - - private function renameShareKeys($user, $filePath, $filename, $target, $trash) { - $oldShareKeyPath = $this->getOldShareKeyPath($user, $filePath, $trash); - $dh = $this->view->opendir($oldShareKeyPath); - - if (is_resource($dh)) { - while (($file = readdir($dh)) !== false) { - if (!\OC\Files\Filesystem::isIgnoredDir($file)) { - if ($this->view->is_dir($oldShareKeyPath . '/' . $file)) { - continue; - } else { - if (substr($file, 0, strlen($filename) + 1) === $filename . '.') { - - $uid = $this->getUidFromShareKey($file, $filename, $trash); - $this->view->rename($oldShareKeyPath . '/' . $file, $target . '/' . $uid . '.shareKey'); - } - } - - } - } - closedir($dh); - } - } - - private function deleteOldKeys($user) { - $this->view->deleteAll($user . '/files_encryption/keyfiles'); - $this->view->deleteAll($user . '/files_encryption/share-keys'); - } - - private function createPathForKeys($path) { - if (!$this->view->file_exists($path)) { - $sub_dirs = explode('/', $path); - $dir = ''; - foreach ($sub_dirs as $sub_dir) { - $dir .= '/' . $sub_dir; - if (!$this->view->is_dir($dir)) { - $this->view->mkdir($dir); - } - } - } - } -} diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php deleted file mode 100644 index b452c0d4e27..00000000000 --- a/apps/files_encryption/lib/proxy.php +++ /dev/null @@ -1,401 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Morris Jobke - * @author Robin Appelman - * @author Robin McCorkell - * @author Sam Tuke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -/** - * Encryption proxy which handles filesystem operations before and after - * execution and encrypts, and handles keyfiles accordingly. Used for - * webui. - */ - -namespace OCA\Files_Encryption; - -/** - * Class Proxy - * @package OCA\Files_Encryption - */ -class Proxy extends \OC_FileProxy { - - private static $unencryptedSizes = array(); // remember unencrypted size - private static $fopenMode = array(); // remember the fopen mode - private static $enableEncryption = false; // Enable encryption for the given path - - - /** - * check if path is excluded from encryption - * - * @param string $path relative to data/ - * @return boolean - */ - protected function isExcludedPath($path) { - - $view = new \OC\Files\View(); - - $normalizedPath = \OC\Files\Filesystem::normalizePath($path); - - $parts = explode('/', $normalizedPath); - - // we only encrypt/decrypt files in the files and files_versions folder - if (sizeof($parts) < 3) { - /** - * Less then 3 parts means, we can't match: - * - /{$uid}/files/* nor - * - /{$uid}/files_versions/* - * So this is not a path we are looking for. - */ - return true; - } - if( - !($parts[2] === 'files' && \OCP\User::userExists($parts[1])) && - !($parts[2] === 'files_versions' && \OCP\User::userExists($parts[1]))) { - - return true; - } - - if (!$view->file_exists($normalizedPath)) { - $normalizedPath = dirname($normalizedPath); - } - - // we don't encrypt server-to-server shares - list($storage, ) = \OC\Files\Filesystem::resolvePath($normalizedPath); - /** - * @var \OCP\Files\Storage $storage - */ - if ($storage->instanceOfStorage('OCA\Files_Sharing\External\Storage')) { - return true; - } - - return false; - } - - /** - * Check if a file requires encryption - * @param string $path - * @param string $mode type of access - * @return bool - * - * Tests if server side encryption is enabled, and if we should call the - * crypt stream wrapper for the given file - */ - private function shouldEncrypt($path, $mode = 'w') { - - // don't call the crypt stream wrapper, if... - if ( - Crypt::mode() !== 'server' // we are not in server-side-encryption mode - || $this->isExcludedPath($path) // if path is excluded from encryption - || substr($path, 0, 8) === 'crypt://' // we are already in crypt mode - ) { - return false; - } - - $userId = Helper::getUser($path); - $view = new \OC\Files\View(''); - $util = new Util($view, $userId); - - // for write operation we always encrypt the files, for read operations - // we check if the existing file is encrypted or not decide if it needs to - // decrypt it. - if (($mode !== 'r' && $mode !== 'rb') || $util->isEncryptedPath($path)) { - return true; - } - - return false; - } - - /** - * @param string $path - * @param string $data - * @return bool - */ - public function preFile_put_contents($path, &$data) { - - if ($this->shouldEncrypt($path)) { - - if (!is_resource($data)) { - - // get root view - $view = new \OC\Files\View('/'); - - // get relative path - $relativePath = Helper::stripUserFilesPath($path); - - if (!isset($relativePath)) { - return true; - } - - // create random cache folder - $cacheFolder = rand(); - $path_slices = explode('/', \OC\Files\Filesystem::normalizePath($path)); - $path_slices[2] = "cache/".$cacheFolder; - $tmpPath = implode('/', $path_slices); - - $handle = fopen('crypt://' . $tmpPath, 'w'); - if (is_resource($handle)) { - - // write data to stream - fwrite($handle, $data); - - // close stream - fclose($handle); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get encrypted content - $data = $view->file_get_contents($tmpPath); - - // store new unenecrypted size so that it can be updated - // in the post proxy - $tmpFileInfo = $view->getFileInfo($tmpPath); - if ( isset($tmpFileInfo['unencrypted_size']) ) { - self::$unencryptedSizes[\OC\Files\Filesystem::normalizePath($path)] = $tmpFileInfo['unencrypted_size']; - } - - // remove our temp file - $view->deleteAll('/' . \OCP\User::getUser() . '/cache/' . $cacheFolder); - - // re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - } else { - return false; - } - } - } - - return true; - - } - - /** - * update file cache with the new unencrypted size after file was written - * @param string $path - * @param mixed $result - * @return mixed - */ - public function postFile_put_contents($path, $result) { - $normalizedPath = \OC\Files\Filesystem::normalizePath($path); - if ( isset(self::$unencryptedSizes[$normalizedPath]) ) { - $view = new \OC\Files\View('/'); - $view->putFileInfo($normalizedPath, - array('encrypted' => true, 'unencrypted_size' => self::$unencryptedSizes[$normalizedPath])); - unset(self::$unencryptedSizes[$normalizedPath]); - } - - return $result; - } - - /** - * @param string $path Path of file from which has been read - * @param string $data Data that has been read from file - */ - public function postFile_get_contents($path, $data) { - - $plainData = null; - - // If data is a catfile - if ( - Crypt::mode() === 'server' - && $this->shouldEncrypt($path) - && Crypt::isCatfileContent($data) - ) { - - $handle = fopen('crypt://' . $path, 'r'); - - if (is_resource($handle)) { - while (($plainDataChunk = fgets($handle, 8192)) !== false) { - $plainData .= $plainDataChunk; - } - } - - } - - if (!isset($plainData)) { - - $plainData = $data; - - } - - return $plainData; - - } - - /** - * remember initial fopen mode because sometimes it gets changed during the request - * @param string $path path - * @param string $mode type of access - */ - public function preFopen($path, $mode) { - - self::$fopenMode[$path] = $mode; - self::$enableEncryption = $this->shouldEncrypt($path, $mode); - - } - - - /** - * @param string $path - * @param resource $result - * @return resource - */ - public function postFopen($path, $result) { - - $path = \OC\Files\Filesystem::normalizePath($path); - - if (!$result || self::$enableEncryption === false) { - - return $result; - - } - - // if we remember the mode from the pre proxy we re-use it - // otherwise we fall back to stream_get_meta_data() - if (isset(self::$fopenMode[$path])) { - $mode = self::$fopenMode[$path]; - unset(self::$fopenMode[$path]); - } else { - $meta = stream_get_meta_data($result); - $mode = $meta['mode']; - } - - // Close the original encrypted file - fclose($result); - - // Open the file using the crypto stream wrapper - // protocol and let it do the decryption work instead - $result = fopen('crypt://' . $path, $mode); - - return $result; - - } - - /** - * @param string $path - * @param array $data - * @return array - */ - public function postGetFileInfo($path, $data) { - - // if path is a folder do nothing - if (\OCP\App::isEnabled('files_encryption') && $data !== false && array_key_exists('size', $data)) { - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get file size - $data['size'] = self::postFileSize($path, $data['size'], $data); - - // Re-enable the proxy - \OC_FileProxy::$enabled = $proxyStatus; - } - - return $data; - } - - /** - * @param string $path - * @param int $size - * @return int|bool - */ - public function postFileSize($path, $size, $fileInfo = null) { - - $view = new \OC\Files\View('/'); - - $userId = Helper::getUser($path); - $util = new Util($view, $userId); - - // if encryption is no longer enabled or if the files aren't migrated yet - // we return the default file size - if(!\OCP\App::isEnabled('files_encryption') || - $util->getMigrationStatus() !== Util::MIGRATION_COMPLETED) { - return $size; - } - - // if path is a folder do nothing - if ($view->is_dir($path)) { - $proxyState = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - $fileInfo = $view->getFileInfo($path); - \OC_FileProxy::$enabled = $proxyState; - if (isset($fileInfo['unencrypted_size']) && $fileInfo['unencrypted_size'] > 0) { - return $fileInfo['unencrypted_size']; - } - return $size; - } - - // get relative path - $relativePath = Helper::stripUserFilesPath($path); - - // if path is empty we cannot resolve anything - if (empty($relativePath)) { - return $size; - } - - // get file info from database/cache - if (empty($fileInfo)) { - $proxyState = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - $fileInfo = $view->getFileInfo($path); - \OC_FileProxy::$enabled = $proxyState; - } - - // if file is encrypted return real file size - if (isset($fileInfo['encrypted']) && $fileInfo['encrypted'] === true) { - // try to fix unencrypted file size if it doesn't look plausible - if ((int)$fileInfo['size'] > 0 && (int)$fileInfo['unencrypted_size'] === 0 ) { - $fixSize = $util->getFileSize($path); - $fileInfo['unencrypted_size'] = $fixSize; - // put file info if not .part file - if (!Helper::isPartialFilePath($relativePath)) { - $view->putFileInfo($path, array('unencrypted_size' => $fixSize)); - } - } - $size = $fileInfo['unencrypted_size']; - } else { - - $fileInfoUpdates = array(); - - $fixSize = $util->getFileSize($path); - if ($fixSize > 0) { - $size = $fixSize; - - $fileInfoUpdates['encrypted'] = true; - $fileInfoUpdates['unencrypted_size'] = $size; - - // put file info if not .part file - if (!Helper::isPartialFilePath($relativePath)) { - $view->putFileInfo($path, $fileInfoUpdates); - } - } - - } - return $size; - } - -} diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php deleted file mode 100644 index 10e4c061b30..00000000000 --- a/apps/files_encryption/lib/session.php +++ /dev/null @@ -1,203 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Robin Appelman - * @author Robin McCorkell - * @author Sam Tuke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption; - -/** - * Class for handling encryption related session data - */ - -class Session { - - private $view; - private static $publicShareKey = false; - - const NOT_INITIALIZED = '0'; - const INIT_EXECUTED = '1'; - const INIT_SUCCESSFUL = '2'; - - - /** - * if session is started, check if ownCloud key pair is set up, if not create it - * @param \OC\Files\View $view - * - * @note The ownCloud key pair is used to allow public link sharing even if encryption is enabled - */ - public function __construct($view) { - - $this->view = $view; - - if (!$this->view->is_dir('files_encryption')) { - - $this->view->mkdir('files_encryption'); - - } - - $appConfig = \OC::$server->getAppConfig(); - - $publicShareKeyId = Helper::getPublicShareKeyId(); - - if ($publicShareKeyId === false) { - $publicShareKeyId = 'pubShare_' . substr(md5(time()), 0, 8); - $appConfig->setValue('files_encryption', 'publicShareKeyId', $publicShareKeyId); - } - - if (!Keymanager::publicShareKeyExists($view)) { - - $keypair = Crypt::createKeypair(); - - - // Save public key - Keymanager::setPublicKey($keypair['publicKey'], $publicShareKeyId); - - // Encrypt private key empty passphrase - $cipher = Helper::getCipher(); - $encryptedKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], '', $cipher); - if ($encryptedKey) { - Keymanager::setPrivateSystemKey($encryptedKey, $publicShareKeyId); - } else { - \OCP\Util::writeLog('files_encryption', 'Could not create public share keys', \OCP\Util::ERROR); - } - - } - - if (Helper::isPublicAccess() && !self::getPublicSharePrivateKey()) { - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $encryptedKey = Keymanager::getPrivateSystemKey($publicShareKeyId); - $privateKey = Crypt::decryptPrivateKey($encryptedKey, ''); - self::setPublicSharePrivateKey($privateKey); - - \OC_FileProxy::$enabled = $proxyStatus; - } - } - - /** - * Sets user private key to session - * @param string $privateKey - * @return bool - * - * @note this should only be set on login - */ - public function setPrivateKey($privateKey) { - - \OC::$server->getSession()->set('privateKey', $privateKey); - - return true; - - } - - /** - * remove keys from session - */ - public function removeKeys() { - \OC::$server->getSession()->remove('publicSharePrivateKey'); - \OC::$server->getSession()->remove('privateKey'); - } - - /** - * Sets status of encryption app - * @param string $init INIT_SUCCESSFUL, INIT_EXECUTED, NOT_INITIALIZED - * @return bool - * - * @note this doesn not indicate of the init was successful, we just remeber the try! - */ - public function setInitialized($init) { - - \OC::$server->getSession()->set('encryptionInitialized', $init); - - return true; - - } - - /** - * remove encryption keys and init status from session - */ - public function closeSession() { - \OC::$server->getSession()->remove('encryptionInitialized'); - \OC::$server->getSession()->remove('privateKey'); - } - - - /** - * Gets status if we already tried to initialize the encryption app - * @return string init status INIT_SUCCESSFUL, INIT_EXECUTED, NOT_INITIALIZED - * - * @note this doesn not indicate of the init was successful, we just remeber the try! - */ - public function getInitialized() { - if (!is_null(\OC::$server->getSession()->get('encryptionInitialized'))) { - return \OC::$server->getSession()->get('encryptionInitialized'); - } else if (Helper::isPublicAccess() && self::getPublicSharePrivateKey()) { - return self::INIT_SUCCESSFUL; - } else { - return self::NOT_INITIALIZED; - } - } - - /** - * Gets user or public share private key from session - * @return string $privateKey The user's plaintext private key - * - */ - public function getPrivateKey() { - // return the public share private key if this is a public access - if (Helper::isPublicAccess()) { - return self::getPublicSharePrivateKey(); - } else { - if (!is_null(\OC::$server->getSession()->get('privateKey'))) { - return \OC::$server->getSession()->get('privateKey'); - } else { - return false; - } - } - } - - /** - * Sets public user private key to session - * @param string $privateKey - * @return bool - */ - private static function setPublicSharePrivateKey($privateKey) { - self::$publicShareKey = $privateKey; - return true; - } - - /** - * Gets public share private key from session - * @return string $privateKey - * - */ - private static function getPublicSharePrivateKey() { - return self::$publicShareKey; - } - -} diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php deleted file mode 100644 index 4cbf9e4a4b7..00000000000 --- a/apps/files_encryption/lib/stream.php +++ /dev/null @@ -1,700 +0,0 @@ - - * @author Florin Peter - * @author jknockaert - * @author Joas Schilling - * @author Morris Jobke - * @author Robin McCorkell - * @author Sam Tuke - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -/** - * transparently encrypted filestream - * - * you can use it as wrapper around an existing stream by setting CryptStream::$sourceStreams['foo']=array('path'=>$path,'stream'=>$stream) - * and then fopen('crypt://streams/foo'); - */ - -namespace OCA\Files_Encryption; - -use OCA\Files_Encryption\Exception\EncryptionException; - -/** - * Provides 'crypt://' stream wrapper protocol. - * @note We use a stream wrapper because it is the most secure way to handle - * decrypted content transfers. There is no safe way to decrypt the entire file - * somewhere on the server, so we have to encrypt and decrypt blocks on the fly. - * @note Paths used with this protocol MUST BE RELATIVE. Use URLs like: - * crypt://filename, or crypt://subdirectory/filename, NOT - * crypt:///home/user/owncloud/data. Otherwise keyfiles will be put in - * [owncloud]/data/user/files_encryption/keyfiles/home/user/owncloud/data and - * will not be accessible to other methods. - * @note Data read and written must always be 8192 bytes long, as this is the - * buffer size used internally by PHP. The encryption process makes the input - * data longer, and input is chunked into smaller pieces in order to result in - * a 8192 encrypted block size. - * @note When files are deleted via webdav, or when they are updated and the - * previous version deleted, this is handled by OC\Files\View, and thus the - * encryption proxies are used and keyfiles deleted. - */ -class Stream { - - const PADDING_CHAR = '-'; - - private $plainKey; - private $encKeyfiles; - private $rawPath; // The raw path relative to the data dir - private $relPath; // rel path to users file dir - private $userId; - private $keyId; - private $handle; // Resource returned by fopen - private $meta = array(); // Header / meta for source stream - private $cache; // Current block unencrypted - private $position; // Current pointer position in the unencrypted stream - private $writeFlag; // Flag to write current block when leaving it - private $size; - private $headerSize = 0; // Size of header - private $unencryptedSize; - private $publicKey; - private $encKeyfile; - private $newFile; // helper var, we only need to write the keyfile for new files - private $isLocalTmpFile = false; // do we operate on a local tmp file - private $localTmpFile; // path of local tmp file - private $containHeader = false; // the file contain a header - private $cipher; // cipher used for encryption/decryption - /** @var \OCA\Files_Encryption\Util */ - private $util; - - /** - * @var \OC\Files\View - */ - private $rootView; // a fsview object set to '/' - - /** - * @var \OCA\Files_Encryption\Session - */ - private $session; - private $privateKey; - - /** - * @param string $path raw path relative to data/ - * @param string $mode - * @param int $options - * @param string $opened_path - * @return bool - * @throw \OCA\Files_Encryption\Exception\EncryptionException - */ - public function stream_open($path, $mode, $options, &$opened_path) { - - // read default cipher from config - $this->cipher = Helper::getCipher(); - - // assume that the file already exist before we decide it finally in getKey() - $this->newFile = false; - - $this->rootView = new \OC\Files\View('/'); - - $this->session = new Session($this->rootView); - - $this->privateKey = $this->session->getPrivateKey(); - if ($this->privateKey === false) { - throw new EncryptionException('Session does not contain a private key, maybe your login password changed?', - EncryptionException::PRIVATE_KEY_MISSING); - } - - $normalizedPath = \OC\Files\Filesystem::normalizePath(str_replace('crypt://', '', $path)); - $originalFile = Helper::getPathFromTmpFile($normalizedPath); - if ($originalFile) { - $this->rawPath = $originalFile; - $this->isLocalTmpFile = true; - $this->localTmpFile = $normalizedPath; - } else { - $this->rawPath = $normalizedPath; - } - - $this->util = new Util($this->rootView, Helper::getUser($this->rawPath)); - - // get the key ID which we want to use, can be the users key or the - // public share key - $this->keyId = $this->util->getKeyId(); - - $fileType = Helper::detectFileType($this->rawPath); - - switch ($fileType) { - case Util::FILE_TYPE_FILE: - $this->relPath = Helper::stripUserFilesPath($this->rawPath); - $user = \OC::$server->getUserSession()->getUser(); - $this->userId = $user ? $user->getUID() : Helper::getUserFromPath($this->rawPath); - break; - case Util::FILE_TYPE_VERSION: - $this->relPath = Helper::getPathFromVersion($this->rawPath); - $this->userId = Helper::getUserFromPath($this->rawPath); - break; - case Util::FILE_TYPE_CACHE: - $this->relPath = Helper::getPathFromCachedFile($this->rawPath); - Helper::mkdirr($this->rawPath, new \OC\Files\View('/')); - $user = \OC::$server->getUserSession()->getUser(); - $this->userId = $user ? $user->getUID() : Helper::getUserFromPath($this->rawPath); - break; - default: - \OCP\Util::writeLog('Encryption library', 'failed to open file "' . $this->rawPath . '" expecting a path to "files", "files_versions" or "cache"', \OCP\Util::ERROR); - return false; - } - - // Disable fileproxies so we can get the file size and open the source file without recursive encryption - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $this->position = 0; - $this->cache = ''; - $this->writeFlag = 0; - - // Setting handle so it can be used for reading the header - if ($this->isLocalTmpFile) { - $this->handle = fopen($this->localTmpFile, $mode); - } else { - $this->handle = $this->rootView->fopen($this->rawPath, $mode); - } - - if ( - $mode === 'w' - or $mode === 'w+' - or $mode === 'wb' - or $mode === 'wb+' - ) { - // We're writing a new file so start write counter with 0 bytes - $this->size = 0; - $this->unencryptedSize = 0; - } else { - $this->size = $this->rootView->filesize($this->rawPath); - \OC_FileProxy::$enabled = true; - $this->unencryptedSize = $this->rootView->filesize($this->rawPath); - \OC_FileProxy::$enabled = false; - $this->readHeader(); - } - - \OC_FileProxy::$enabled = $proxyStatus; - - if (!is_resource($this->handle)) { - - \OCP\Util::writeLog('Encryption library', 'failed to open file "' . $this->rawPath . '"', \OCP\Util::ERROR); - - } else { - - $this->meta = stream_get_meta_data($this->handle); - // sometimes fopen changes the mode, e.g. for a url "r" convert to "r+" - // but we need to remember the original access type - $this->meta['mode'] = $mode; - - } - - - return is_resource($this->handle); - - } - - private function readHeader() { - - if (is_resource($this->handle)) { - $data = fread($this->handle, Crypt::BLOCKSIZE); - - $header = Crypt::parseHeader($data); - $this->cipher = Crypt::getCipher($header); - - // remeber that we found a header - if (!empty($header)) { - $this->containHeader = true; - $this->headerSize = Crypt::BLOCKSIZE; - // if there's no header then decrypt the block and store it in the cache - } else { - if (!$this->getKey()) { - throw new \Exception('Encryption key not found for "' . $this->rawPath . '" during attempted read via stream'); - } else { - $this->cache = Crypt::symmetricDecryptFileContent($data, $this->plainKey, $this->cipher); - } - } - - } - } - - /** - * Returns the current position of the file pointer - * @return int position of the file pointer - */ - public function stream_tell() { - return $this->position; - } - - /** - * @param int $offset - * @param int $whence - * @return bool true if fseek was successful, otherwise false - */ - - // seeking the stream tries to move the pointer on the encrypted stream to the beginning of the target block - // if that works, it flushes the current block and changes the position in the unencrypted stream - public function stream_seek($offset, $whence = SEEK_SET) { - // this wrapper needs to return "true" for success. - // the fseek call itself returns 0 on succeess - - $return=false; - - switch($whence) { - case SEEK_SET: - if($offset < $this->unencryptedSize && $offset >= 0) { - $newPosition=$offset; - } - break; - case SEEK_CUR: - if($offset>=0) { - $newPosition=$offset+$this->position; - } - break; - case SEEK_END: - if($this->unencryptedSize + $offset >= 0) { - $newPosition=$this->unencryptedSize+$offset; - } - break; - default: - return $return; - } - $newFilePosition=floor($newPosition/6126)*Crypt::BLOCKSIZE+$this->headerSize; - if (fseek($this->handle, $newFilePosition)===0) { - $this->flush(); - $this->position=$newPosition; - $return=true; - } - return $return; - - } - - /** - * @param int $count - * @return bool|string - * @throws \OCA\Files_Encryption\Exception\EncryptionException - */ - public function stream_read($count) { - - $result = ''; - - // limit to the end of the unencrypted file; otherwise getFileSize will fail and it is good practise anyway - $count=min($count,$this->unencryptedSize - $this->position); - - // loop over the 6126 sized unencrypted blocks - while ($count > 0) { - - $remainingLength = $count; - - // update the cache of the current block - $this->readCache(); - - // determine the relative position in the current block - $blockPosition=($this->position % 6126); - - // if entire read inside current block then only position needs to be updated - if ($remainingLength<(6126 - $blockPosition)) { - $result .= substr($this->cache,$blockPosition,$remainingLength); - $this->position += $remainingLength; - $count=0; - // otherwise remainder of current block is fetched, the block is flushed and the position updated - } else { - $result .= substr($this->cache,$blockPosition); - $this->flush(); - $this->position += (6126 - $blockPosition); - $count -= (6126 - $blockPosition); - } - - } - - return $result; - - } - - /** - * Encrypt and pad data ready for writing to disk - * @param string $plainData data to be encrypted - * @param string $key key to use for encryption - * @return string encrypted data on success, false on failure - */ - public function preWriteEncrypt($plainData, $key) { - - // Encrypt data to 'catfile', which includes IV - if ($encrypted = Crypt::symmetricEncryptFileContent($plainData, $key, $this->cipher)) { - - return $encrypted; - - } else { - - return false; - - } - - } - - /** - * Fetch the plain encryption key for the file and set it as plainKey property - * @internal param bool $generate if true, a new key will be generated if none can be found - * @return bool true on key found and set, false on key not found and new key generated and set - */ - public function getKey() { - - // Check if key is already set - if (isset($this->plainKey) && isset($this->encKeyfile)) { - - return true; - - } - - // Fetch and decrypt keyfile - // Fetch existing keyfile - $this->encKeyfile = Keymanager::getFileKey($this->rootView, $this->util, $this->relPath); - - // If a keyfile already exists - if ($this->encKeyfile) { - - $shareKey = Keymanager::getShareKey($this->rootView, $this->keyId, $this->util, $this->relPath); - - // if there is no valid private key return false - if ($this->privateKey === false) { - // if private key is not valid redirect user to a error page - Helper::redirectToErrorPage($this->session); - return false; - } - - if ($shareKey === false) { - // if no share key is available redirect user to a error page - Helper::redirectToErrorPage($this->session, Crypt::ENCRYPTION_NO_SHARE_KEY_FOUND); - return false; - } - - $this->plainKey = Crypt::multiKeyDecrypt($this->encKeyfile, $shareKey, $this->privateKey); - - return true; - - } else { - - $this->newFile = true; - - return false; - - } - - } - - /** - * write header at beginning of encrypted file - * - * @throws \OCA\Files_Encryption\Exception\EncryptionException - */ - private function writeHeader() { - - $header = Crypt::generateHeader(); - - if (strlen($header) > Crypt::BLOCKSIZE) { - throw new EncryptionException('max header size exceeded', EncryptionException::ENCRYPTION_HEADER_TO_LARGE); - } - - $paddedHeader = str_pad($header, Crypt::BLOCKSIZE, self::PADDING_CHAR, STR_PAD_RIGHT); - - fwrite($this->handle, $paddedHeader); - $this->headerWritten = true; - $this->containHeader = true; - $this->headerSize = Crypt::BLOCKSIZE; - $this->size += $this->headerSize; - } - - /** - * Handle plain data from the stream, and write it in 8192 byte blocks - * @param string $data data to be written to disk - * @note the data will be written to the path stored in the stream handle, set in stream_open() - * @note $data is only ever be a maximum of 8192 bytes long. This is set by PHP internally. stream_write() is called multiple times in a loop on data larger than 8192 bytes - * @note Because the encryption process used increases the length of $data, a cache is used to carry over data which would not fit in the required block size - * @note Padding is added to each encrypted block to ensure that the resulting block is exactly 8192 bytes. This is removed during stream_read - * @note PHP automatically updates the file pointer after writing data to reflect it's length. There is generally no need to update the poitner manually using fseek - */ - public function stream_write($data) { - - // if there is no valid private key return false - if ($this->privateKey === false) { - $this->size = 0; - return strlen($data); - } - - if ($this->size === 0) { - $this->writeHeader(); - } - - // Get / generate the keyfile for the file we're handling - // If we're writing a new file (not overwriting an existing - // one), save the newly generated keyfile - if (!$this->getKey()) { - - $this->plainKey = Crypt::generateKey(); - - } - - $length=0; - - // loop over $data to fit it in 6126 sized unencrypted blocks - while (strlen($data) > 0) { - - $remainingLength = strlen($data); - - // set the cache to the current 6126 block - $this->readCache(); - - // only allow writes on seekable streams, or at the end of the encrypted stream - // for seekable streams the pointer is moved back to the beginning of the encrypted block - // flush will start writing there when the position moves to another block - if((fseek($this->handle, floor($this->position/6126)*Crypt::BLOCKSIZE + $this->headerSize) === 0) || (floor($this->position/6126)*Crypt::BLOCKSIZE + $this->headerSize === $this->size)) { - - // switch the writeFlag so flush() will write the block - $this->writeFlag=1; - - // determine the relative position in the current block - $blockPosition=($this->position % 6126); - - // check if $data fits in current block - // if so, overwrite existing data (if any) - // update position and liberate $data - if ($remainingLength<(6126 - $blockPosition)) { - $this->cache=substr($this->cache,0,$blockPosition).$data.substr($this->cache,$blockPosition+$remainingLength); - $this->position += $remainingLength; - $length += $remainingLength; - $data = ''; - // if $data doens't fit the current block, the fill the current block and reiterate - // after the block is filled, it is flushed and $data is updated - } else { - $this->cache=substr($this->cache,0,$blockPosition).substr($data,0,6126-$blockPosition); - $this->flush(); - $this->position += (6126 - $blockPosition); - $length += (6126 - $blockPosition); - $data = substr($data, 6126 - $blockPosition); - } - - } else { - $data=''; - } - } - - $this->unencryptedSize = max($this->unencryptedSize,$this->position); - - return $length; - - } - - - /** - * @param int $option - * @param int $arg1 - * @param int|null $arg2 - */ - public function stream_set_option($option, $arg1, $arg2) { - $return = false; - switch ($option) { - case STREAM_OPTION_BLOCKING: - $return = stream_set_blocking($this->handle, $arg1); - break; - case STREAM_OPTION_READ_TIMEOUT: - $return = stream_set_timeout($this->handle, $arg1, $arg2); - break; - case STREAM_OPTION_WRITE_BUFFER: - $return = stream_set_write_buffer($this->handle, $arg1); - } - - return $return; - } - - /** - * @return array - */ - public function stream_stat() { - return fstat($this->handle); - } - - /** - * @param int $mode - */ - public function stream_lock($mode) { - return flock($this->handle, $mode); - } - - /** - * @return bool - */ - public function stream_flush() { - - $this->flush(); - return fflush($this->handle); - // Not a typo: http://php.net/manual/en/function.fflush.php - - } - - /** - * @return bool - */ - public function stream_eof() { - return ($this->position>=$this->unencryptedSize); - } - - private function flush() { - - // write to disk only when writeFlag was set to 1 - if ($this->writeFlag === 1) { - // Disable the file proxies so that encryption is not - // automatically attempted when the file is written to disk - - // we are handling that separately here and we don't want to - // get into an infinite loop - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - // Set keyfile property for file in question - $this->getKey(); - $encrypted = $this->preWriteEncrypt($this->cache, $this->plainKey); - fwrite($this->handle, $encrypted); - $this->writeFlag = 0; - $this->size = max($this->size,ftell($this->handle)); - \OC_FileProxy::$enabled = $proxyStatus; - } - // always empty the cache (otherwise readCache() will not fill it with the new block) - $this->cache = ''; - } - - private function readCache() { - // cache should always be empty string when this function is called - // don't try to fill the cache when trying to write at the end of the unencrypted file when it coincides with new block - if ($this->cache === '' && !($this->position===$this->unencryptedSize && ($this->position % 6126)===0)) { - // Get the data from the file handle - $data = fread($this->handle, Crypt::BLOCKSIZE); - $result = ''; - if (strlen($data)) { - if (!$this->getKey()) { - // Error! We don't have a key to decrypt the file with - throw new \Exception('Encryption key not found for "'. $this->rawPath . '" during attempted read via stream'); - } else { - // Decrypt data - $result = Crypt::symmetricDecryptFileContent($data, $this->plainKey, $this->cipher); - } - } - $this->cache = $result; - } - } - - /** - * @return bool - */ - public function stream_close() { - - $this->flush(); - - // if there is no valid private key return false - if ($this->privateKey === false) { - - // cleanup - if ($this->meta['mode'] !== 'r' && $this->meta['mode'] !== 'rb' && !$this->isLocalTmpFile) { - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - if ($this->rootView->file_exists($this->rawPath) && $this->size === $this->headerSize) { - fclose($this->handle); - $this->rootView->unlink($this->rawPath); - } - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - } - - // if private key is not valid redirect user to a error page - Helper::redirectToErrorPage($this->session); - } - - if ( - $this->meta['mode'] !== 'r' && - $this->meta['mode'] !== 'rb' && - $this->isLocalTmpFile === false && - $this->size > $this->headerSize && - $this->unencryptedSize > 0 - ) { - - // only write keyfiles if it was a new file - if ($this->newFile === true) { - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // Fetch user's public key - $this->publicKey = Keymanager::getPublicKey($this->rootView, $this->keyId); - - // Check if OC sharing api is enabled - $sharingEnabled = \OCP\Share::isEnabled(); - - // Get all users sharing the file includes current user - $uniqueUserIds = $this->util->getSharingUsersArray($sharingEnabled, $this->relPath); - $checkedUserIds = $this->util->filterShareReadyUsers($uniqueUserIds); - - // Fetch public keys for all sharing users - $publicKeys = Keymanager::getPublicKeys($this->rootView, $checkedUserIds['ready']); - - // Encrypt enc key for all sharing users - $this->encKeyfiles = Crypt::multiKeyEncrypt($this->plainKey, $publicKeys); - - // Save the new encrypted file key - Keymanager::setFileKey($this->rootView, $this->util, $this->relPath, $this->encKeyfiles['data']); - - // Save the sharekeys - Keymanager::setShareKeys($this->rootView, $this->util, $this->relPath, $this->encKeyfiles['keys']); - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - } - - // we need to update the file info for the real file, not for the - // part file. - $path = Helper::stripPartialFileExtension($this->rawPath); - - $fileInfo = array( - 'mimetype' => $this->rootView->getMimeType($this->rawPath), - 'encrypted' => true, - 'unencrypted_size' => $this->unencryptedSize, - ); - - // if we write a part file we also store the unencrypted size for - // the part file so that it can be re-used later - $this->rootView->putFileInfo($this->rawPath, $fileInfo); - if ($path !== $this->rawPath) { - $this->rootView->putFileInfo($path, $fileInfo); - } - - } - - $result = fclose($this->handle); - - if ($result === false) { - \OCP\Util::writeLog('Encryption library', 'Could not close stream, file could be corrupted', \OCP\Util::FATAL); - } - - return $result; - - } - -} diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php deleted file mode 100644 index d8dd96d653f..00000000000 --- a/apps/files_encryption/lib/util.php +++ /dev/null @@ -1,1700 +0,0 @@ - - * @author Björn Schießle - * @author Florin Peter - * @author jknockaert - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Markus Goetz - * @author Morris Jobke - * @author Robin Appelman - * @author Robin McCorkell - * @author Sam Tuke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption; - -/** - * Class for utilities relating to encrypted file storage system - * @param \OC\Files\View $view expected to have OC '/' as root path - * @param string $userId ID of the logged in user - * @param int $client indicating status of client side encryption. Currently - * unused, likely to become obsolete shortly - */ - -class Util { - - const MIGRATION_COMPLETED = 1; // migration to new encryption completed - const MIGRATION_IN_PROGRESS = -1; // migration is running - const MIGRATION_OPEN = 0; // user still needs to be migrated - - const FILE_TYPE_FILE = 0; - const FILE_TYPE_VERSION = 1; - const FILE_TYPE_CACHE = 2; - - /** - * @var \OC\Files\View - */ - private $view; // OC\Files\View object for filesystem operations - - /** - * @var string - */ - private $userId; // ID of the user we use to encrypt/decrypt files - - /** - * @var string - */ - private $keyId; // ID of the key we want to manipulate - - /** - * @var bool - */ - private $client; // Client side encryption mode flag - - /** - * @var string - */ - private $publicKeyDir; // Dir containing all public user keys - - /** - * @var string - */ - private $encryptionDir; // Dir containing user's files_encryption - - /** - * @var string - */ - private $keysPath; // Dir containing all file related encryption keys - - /** - * @var string - */ - private $publicKeyPath; // Path to user's public key - - /** - * @var string - */ - private $privateKeyPath; // Path to user's private key - - /** - * @var string - */ - private $userFilesDir; - - /** - * @var string - */ - private $publicShareKeyId; - - /** - * @var string - */ - private $recoveryKeyId; - - /** - * @var bool - */ - private $isPublic; - - /** - * @param \OC\Files\View $view - * @param string $userId - * @param bool $client - */ - public function __construct($view, $userId, $client = false) { - - $this->view = $view; - $this->client = $client; - $this->userId = $userId; - - $appConfig = \OC::$server->getAppConfig(); - - $this->publicShareKeyId = $appConfig->getValue('files_encryption', 'publicShareKeyId'); - $this->recoveryKeyId = $appConfig->getValue('files_encryption', 'recoveryKeyId'); - - $this->userDir = '/' . $this->userId; - $this->fileFolderName = 'files'; - $this->userFilesDir = - '/' . $userId . '/' . $this->fileFolderName; // TODO: Does this need to be user configurable? - $this->publicKeyDir = Keymanager::getPublicKeyPath(); - $this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption'; - $this->keysPath = $this->encryptionDir . '/' . 'keys'; - $this->publicKeyPath = - $this->publicKeyDir . '/' . $this->userId . '.publicKey'; // e.g. data/public-keys/admin.publicKey - $this->privateKeyPath = - $this->encryptionDir . '/' . $this->userId . '.privateKey'; // e.g. data/admin/admin.privateKey - // make sure that the owners home is mounted - \OC\Files\Filesystem::initMountPoints($userId); - - if (Helper::isPublicAccess()) { - $this->keyId = $this->publicShareKeyId; - $this->isPublic = true; - } else { - $this->keyId = $this->userId; - $this->isPublic = false; - } - } - - /** - * @return bool - */ - public function ready() { - - if ( - !$this->view->file_exists($this->encryptionDir) - or !$this->view->file_exists($this->keysPath) - or !$this->view->file_exists($this->publicKeyPath) - or !$this->view->file_exists($this->privateKeyPath) - ) { - return false; - } else { - return true; - } - } - - /** - * check if the users private & public key exists - * @return boolean - */ - public function userKeysExists() { - if ( - $this->view->file_exists($this->privateKeyPath) && - $this->view->file_exists($this->publicKeyPath)) { - return true; - } else { - return false; - } - } - - /** - * create a new public/private key pair for the user - * - * @param string $password password for the private key - */ - public function replaceUserKeys($password) { - $this->backupAllKeys('password_reset'); - $this->view->unlink($this->publicKeyPath); - $this->view->unlink($this->privateKeyPath); - $this->setupServerSide($password); - } - - /** - * Sets up user folders and keys for serverside encryption - * - * @param string $passphrase to encrypt server-stored private key with - * @return bool - */ - public function setupServerSide($passphrase = null) { - - // Set directories to check / create - $setUpDirs = array( - $this->userDir, - $this->publicKeyDir, - $this->encryptionDir, - $this->keysPath - ); - - // Check / create all necessary dirs - foreach ($setUpDirs as $dirPath) { - - if (!$this->view->file_exists($dirPath)) { - - $this->view->mkdir($dirPath); - - } - - } - - // Create user keypair - // we should never override a keyfile - if ( - !$this->view->file_exists($this->publicKeyPath) - && !$this->view->file_exists($this->privateKeyPath) - ) { - - // Generate keypair - $keypair = Crypt::createKeypair(); - - if ($keypair) { - - \OC_FileProxy::$enabled = false; - - // Encrypt private key with user pwd as passphrase - $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $passphrase, Helper::getCipher()); - - // Save key-pair - if ($encryptedPrivateKey) { - $header = crypt::generateHeader(); - $this->view->file_put_contents($this->privateKeyPath, $header . $encryptedPrivateKey); - $this->view->file_put_contents($this->publicKeyPath, $keypair['publicKey']); - } - - \OC_FileProxy::$enabled = true; - } - - } else { - // check if public-key exists but private-key is missing - if ($this->view->file_exists($this->publicKeyPath) && !$this->view->file_exists($this->privateKeyPath)) { - \OCP\Util::writeLog('Encryption library', - 'public key exists but private key is missing for "' . $this->keyId . '"', \OCP\Util::FATAL); - return false; - } else { - if (!$this->view->file_exists($this->publicKeyPath) && $this->view->file_exists($this->privateKeyPath) - ) { - \OCP\Util::writeLog('Encryption library', - 'private key exists but public key is missing for "' . $this->keyId . '"', \OCP\Util::FATAL); - return false; - } - } - } - - return true; - - } - - /** - * @return string - */ - public function getPublicShareKeyId() { - return $this->publicShareKeyId; - } - - /** - * Check whether pwd recovery is enabled for a given user - * @return bool 1 = yes, 0 = no, false = no record - * - * @note If records are not being returned, check for a hidden space - * at the start of the uid in db - */ - public function recoveryEnabledForUser() { - - $recoveryMode = \OC::$server->getConfig()->getUserValue($this->userId, 'files_encryption', 'recovery_enabled', '0'); - - return ($recoveryMode === '1') ? true : false; - - } - - /** - * Enable / disable pwd recovery for a given user - * @param bool $enabled Whether to enable or disable recovery - * @return bool - */ - public function setRecoveryForUser($enabled) { - - $value = $enabled ? '1' : '0'; - try { - \OC::$server->getConfig()->setUserValue($this->userId, 'files_encryption', 'recovery_enabled', $value); - return true; - } catch(\OCP\PreConditionNotMetException $e) { - return false; - } - - } - - /** - * Find all files and their encryption status within a directory - * @param string $directory The path of the parent directory to search - * @param bool $found the founded files if called again - * @return array keys: plain, encrypted, broken - * @note $directory needs to be a path relative to OC data dir. e.g. - * /admin/files NOT /backup OR /home/www/oc/data/admin/files - */ - public function findEncFiles($directory, &$found = false) { - - // Disable proxy - we don't want files to be decrypted before - // we handle them - \OC_FileProxy::$enabled = false; - - if ($found === false) { - $found = array( - 'plain' => array(), - 'encrypted' => array(), - 'broken' => array(), - ); - } - - if ($this->view->is_dir($directory) && $handle = $this->view->opendir($directory)){ - if (is_resource($handle)) { - while (false !== ($file = readdir($handle))) { - - if ($file !== "." && $file !== "..") { - // skip stray part files - if (Helper::isPartialFilePath($file)) { - continue; - } - - $filePath = $directory . '/' . $this->view->getRelativePath('/' . $file); - $relPath = Helper::stripUserFilesPath($filePath); - - // If the path is a directory, search - // its contents - if ($this->view->is_dir($filePath)) { - - $this->findEncFiles($filePath, $found); - - // If the path is a file, determine - // its encryption status - } elseif ($this->view->is_file($filePath)) { - - // Disable proxies again, some- - // where they got re-enabled :/ - \OC_FileProxy::$enabled = false; - - $isEncryptedPath = $this->isEncryptedPath($filePath); - // If the file is encrypted - // NOTE: If the userId is - // empty or not set, file will - // detected as plain - // NOTE: This is inefficient; - // scanning every file like this - // will eat server resources :( - if ($isEncryptedPath) { - - $fileKey = Keymanager::getFileKey($this->view, $this, $relPath); - $shareKey = Keymanager::getShareKey($this->view, $this->userId, $this, $relPath); - // if file is encrypted but now file key is available, throw exception - if ($fileKey === false || $shareKey === false) { - \OCP\Util::writeLog('encryption library', 'No keys available to decrypt the file: ' . $filePath, \OCP\Util::ERROR); - $found['broken'][] = array( - 'name' => $file, - 'path' => $filePath, - ); - } else { - $found['encrypted'][] = array( - 'name' => $file, - 'path' => $filePath, - ); - } - - // If the file is not encrypted - } else { - - $found['plain'][] = array( - 'name' => $file, - 'path' => $relPath - ); - } - } - } - } - } - } - - \OC_FileProxy::$enabled = true; - - return $found; - } - - /** - * Check if a given path identifies an encrypted file - * @param string $path - * @return boolean - */ - public function isEncryptedPath($path) { - - // Disable encryption proxy so data retrieved is in its - // original form - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $data = ''; - - // we only need 24 byte from the last chunk - if ($this->view->file_exists($path)) { - $handle = $this->view->fopen($path, 'r'); - if (is_resource($handle)) { - // suppress fseek warining, we handle the case that fseek doesn't - // work in the else branch - if (@fseek($handle, -24, SEEK_END) === 0) { - $data = fgets($handle); - } else { - // if fseek failed on the storage we create a local copy from the file - // and read this one - fclose($handle); - $localFile = $this->view->getLocalFile($path); - $handle = fopen($localFile, 'r'); - if (is_resource($handle) && fseek($handle, -24, SEEK_END) === 0) { - $data = fgets($handle); - } - } - fclose($handle); - } - } - - // re-enable proxy - \OC_FileProxy::$enabled = $proxyStatus; - - return Crypt::isCatfileContent($data); - } - - /** - * get the file size of the unencrypted file - * @param string $path absolute path - * @return bool - */ - public function getFileSize($path) { - - $result = 0; - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // split the path parts - $pathParts = explode('/', $path); - - if (isset($pathParts[2]) && $pathParts[2] === 'files' && $this->view->file_exists($path) - && $this->isEncryptedPath($path) - ) { - - $cipher = 'AES-128-CFB'; - $realSize = 0; - - // get the size from filesystem - $size = $this->view->filesize($path); - - // open stream - $stream = $this->view->fopen($path, "r"); - - if (is_resource($stream)) { - - // if the file contains a encryption header we - // we set the cipher - // and we update the size - if ($this->containHeader($path)) { - $data = fread($stream,Crypt::BLOCKSIZE); - $header = Crypt::parseHeader($data); - $cipher = Crypt::getCipher($header); - $size -= Crypt::BLOCKSIZE; - } - - // fast path, else the calculation for $lastChunkNr is bogus - if ($size === 0) { - \OC_FileProxy::$enabled = $proxyStatus; - return 0; - } - - // calculate last chunk nr - // next highest is end of chunks, one subtracted is last one - // we have to read the last chunk, we can't just calculate it (because of padding etc) - $lastChunkNr = ceil($size/Crypt::BLOCKSIZE)-1; - - // calculate last chunk position - $lastChunkPos = ($lastChunkNr * Crypt::BLOCKSIZE); - - // get the content of the last chunk - if (@fseek($stream, $lastChunkPos, SEEK_CUR) === 0) { - $realSize+=$lastChunkNr*6126; - } - $lastChunkContentEncrypted=''; - $count=Crypt::BLOCKSIZE; - while ($count>0) { - $data=fread($stream,Crypt::BLOCKSIZE); - $count=strlen($data); - $lastChunkContentEncrypted.=$data; - if(strlen($lastChunkContentEncrypted)>Crypt::BLOCKSIZE) { - $realSize+=6126; - $lastChunkContentEncrypted=substr($lastChunkContentEncrypted,Crypt::BLOCKSIZE); - } - } - fclose($stream); - $relPath = Helper::stripUserFilesPath($path); - $shareKey = Keymanager::getShareKey($this->view, $this->keyId, $this, $relPath); - if($shareKey===false) { - \OC_FileProxy::$enabled = $proxyStatus; - return $result; - } - $session = new Session($this->view); - $privateKey = $session->getPrivateKey(); - $plainKeyfile = $this->decryptKeyfile($relPath, $privateKey); - $plainKey = Crypt::multiKeyDecrypt($plainKeyfile, $shareKey, $privateKey); - $lastChunkContent=Crypt::symmetricDecryptFileContent($lastChunkContentEncrypted, $plainKey, $cipher); - - // calc the real file size with the size of the last chunk - $realSize += strlen($lastChunkContent); - - // store file size - $result = $realSize; - } - } - - \OC_FileProxy::$enabled = $proxyStatus; - - return $result; - } - - /** - * check if encrypted file contain a encryption header - * - * @param string $path - * @return boolean - */ - private function containHeader($path) { - // Disable encryption proxy to read the raw data - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $isHeader = false; - $handle = $this->view->fopen($path, 'r'); - - if (is_resource($handle)) { - $firstBlock = fread($handle, Crypt::BLOCKSIZE); - $isHeader = Crypt::isHeader($firstBlock); - } - - \OC_FileProxy::$enabled = $proxyStatus; - - return $isHeader; - } - - /** - * fix the file size of the encrypted file - * @param string $path absolute path - * @return boolean true / false if file is encrypted - */ - public function fixFileSize($path) { - - $result = false; - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $realSize = $this->getFileSize($path); - - if ($realSize > 0) { - - $cached = $this->view->getFileInfo($path); - $cached['encrypted'] = true; - - // set the size - $cached['unencrypted_size'] = $realSize; - - // put file info - $this->view->putFileInfo($path, $cached); - - $result = true; - - } - - \OC_FileProxy::$enabled = $proxyStatus; - - return $result; - } - - /** - * encrypt versions from given file - * @param array $filelist list of encrypted files, relative to data/user/files - * @return boolean - */ - private function encryptVersions($filelist) { - - $successful = true; - - if (\OCP\App::isEnabled('files_versions')) { - - foreach ($filelist as $filename) { - - $versions = \OCA\Files_Versions\Storage::getVersions($this->userId, $filename); - foreach ($versions as $version) { - - $path = '/' . $this->userId . '/files_versions/' . $version['path'] . '.v' . $version['version']; - - $encHandle = fopen('crypt://' . $path . '.part', 'wb'); - - if ($encHandle === false) { - \OCP\Util::writeLog('Encryption library', 'couldn\'t open "' . $path . '", decryption failed!', \OCP\Util::FATAL); - $successful = false; - continue; - } - - $plainHandle = $this->view->fopen($path, 'rb'); - if ($plainHandle === false) { - \OCP\Util::writeLog('Encryption library', 'couldn\'t open "' . $path . '.part", decryption failed!', \OCP\Util::FATAL); - $successful = false; - continue; - } - - stream_copy_to_stream($plainHandle, $encHandle); - - fclose($encHandle); - fclose($plainHandle); - - $this->view->rename($path . '.part', $path); - } - } - } - - return $successful; - } - - /** - * decrypt versions from given file - * @param string $filelist list of decrypted files, relative to data/user/files - * @return boolean - */ - private function decryptVersions($filelist) { - - $successful = true; - - if (\OCP\App::isEnabled('files_versions')) { - - foreach ($filelist as $filename) { - - $versions = \OCA\Files_Versions\Storage::getVersions($this->userId, $filename); - foreach ($versions as $version) { - - $path = '/' . $this->userId . '/files_versions/' . $version['path'] . '.v' . $version['version']; - - $encHandle = fopen('crypt://' . $path, 'rb'); - - if ($encHandle === false) { - \OCP\Util::writeLog('Encryption library', 'couldn\'t open "' . $path . '", decryption failed!', \OCP\Util::FATAL); - $successful = false; - continue; - } - - $plainHandle = $this->view->fopen($path . '.part', 'wb'); - if ($plainHandle === false) { - \OCP\Util::writeLog('Encryption library', 'couldn\'t open "' . $path . '.part", decryption failed!', \OCP\Util::FATAL); - $successful = false; - continue; - } - - stream_copy_to_stream($encHandle, $plainHandle); - - fclose($encHandle); - fclose($plainHandle); - - $this->view->rename($path . '.part', $path); - } - } - } - - return $successful; - } - - /** - * Decrypt all files - * @return bool - */ - public function decryptAll() { - - $found = $this->findEncFiles($this->userId . '/files'); - - $successful = true; - - if ($found) { - - $versionStatus = \OCP\App::isEnabled('files_versions'); - \OC_App::disable('files_versions'); - - $decryptedFiles = array(); - - // Encrypt unencrypted files - foreach ($found['encrypted'] as $encryptedFile) { - - //relative to data//file - $relPath = Helper::stripUserFilesPath($encryptedFile['path']); - - //get file info - $fileInfo = \OC\Files\Filesystem::getFileInfo($relPath); - - //relative to /data - $rawPath = $encryptedFile['path']; - - //get timestamp - $timestamp = $fileInfo['mtime']; - - //enable proxy to use OC\Files\View to access the original file - \OC_FileProxy::$enabled = true; - - // Open enc file handle for binary reading - $encHandle = $this->view->fopen($rawPath, 'rb'); - - // Disable proxy to prevent file being encrypted again - \OC_FileProxy::$enabled = false; - - if ($encHandle === false) { - \OCP\Util::writeLog('Encryption library', 'couldn\'t open "' . $rawPath . '", decryption failed!', \OCP\Util::FATAL); - $successful = false; - continue; - } - - // Open plain file handle for binary writing, with same filename as original plain file - $plainHandle = $this->view->fopen($rawPath . '.part', 'wb'); - if ($plainHandle === false) { - \OCP\Util::writeLog('Encryption library', 'couldn\'t open "' . $rawPath . '.part", decryption failed!', \OCP\Util::FATAL); - $successful = false; - continue; - } - - // Move plain file to a temporary location - $size = stream_copy_to_stream($encHandle, $plainHandle); - if ($size === 0) { - \OCP\Util::writeLog('Encryption library', 'Zero bytes copied of "' . $rawPath . '", decryption failed!', \OCP\Util::FATAL); - $successful = false; - continue; - } - - fclose($encHandle); - fclose($plainHandle); - - $fakeRoot = $this->view->getRoot(); - $this->view->chroot('/' . $this->userId . '/files'); - - $this->view->rename($relPath . '.part', $relPath); - - //set timestamp - $this->view->touch($relPath, $timestamp); - - $this->view->chroot($fakeRoot); - - // Add the file to the cache - \OC\Files\Filesystem::putFileInfo($relPath, array( - 'encrypted' => false, - 'size' => $size, - 'unencrypted_size' => 0, - 'etag' => $fileInfo['etag'] - )); - - $decryptedFiles[] = $relPath; - - } - - if ($versionStatus) { - \OC_App::enable('files_versions'); - } - - if (!$this->decryptVersions($decryptedFiles)) { - $successful = false; - } - - // if there are broken encrypted files than the complete decryption - // was not successful - if (!empty($found['broken'])) { - $successful = false; - } - - if ($successful) { - $this->backupAllKeys('decryptAll', false, false); - $this->view->deleteAll($this->keysPath); - } - - \OC_FileProxy::$enabled = true; - } - - return $successful; - } - - /** - * Encrypt all files in a directory - * @param string $dirPath the directory whose files will be encrypted - * @return bool - * @note Encryption is recursive - */ - public function encryptAll($dirPath) { - - $result = true; - - $found = $this->findEncFiles($dirPath); - - // Disable proxy to prevent file being encrypted twice - \OC_FileProxy::$enabled = false; - - $versionStatus = \OCP\App::isEnabled('files_versions'); - \OC_App::disable('files_versions'); - - $encryptedFiles = array(); - - // Encrypt unencrypted files - foreach ($found['plain'] as $plainFile) { - - //get file info - $fileInfo = \OC\Files\Filesystem::getFileInfo($plainFile['path']); - - //relative to data//file - $relPath = $plainFile['path']; - - //relative to /data - $rawPath = '/' . $this->userId . '/files/' . $plainFile['path']; - - // keep timestamp - $timestamp = $fileInfo['mtime']; - - // Open plain file handle for binary reading - $plainHandle = $this->view->fopen($rawPath, 'rb'); - - // Open enc file handle for binary writing, with same filename as original plain file - $encHandle = fopen('crypt://' . $rawPath . '.part', 'wb'); - - if (is_resource($encHandle) && is_resource($plainHandle)) { - // Move plain file to a temporary location - $size = stream_copy_to_stream($plainHandle, $encHandle); - - fclose($encHandle); - fclose($plainHandle); - - $fakeRoot = $this->view->getRoot(); - $this->view->chroot('/' . $this->userId . '/files'); - - $this->view->rename($relPath . '.part', $relPath); - - // set timestamp - $this->view->touch($relPath, $timestamp); - - $encSize = $this->view->filesize($relPath); - - $this->view->chroot($fakeRoot); - - // Add the file to the cache - \OC\Files\Filesystem::putFileInfo($relPath, array( - 'encrypted' => true, - 'size' => $encSize, - 'unencrypted_size' => $size, - 'etag' => $fileInfo['etag'] - )); - - $encryptedFiles[] = $relPath; - } else { - \OCP\Util::writeLog('files_encryption', 'initial encryption: could not encrypt ' . $rawPath, \OCP\Util::FATAL); - $result = false; - } - } - - \OC_FileProxy::$enabled = true; - - if ($versionStatus) { - \OC_App::enable('files_versions'); - } - - $result = $result && $this->encryptVersions($encryptedFiles); - - return $result; - - } - - /** - * Return important encryption related paths - * @param string $pathName Name of the directory to return the path of - * @return string path - */ - public function getPath($pathName) { - - switch ($pathName) { - - case 'publicKeyDir': - - return $this->publicKeyDir; - - break; - - case 'encryptionDir': - - return $this->encryptionDir; - - break; - - case 'keysPath': - - return $this->keysPath; - - break; - - case 'publicKeyPath': - - return $this->publicKeyPath; - - break; - - case 'privateKeyPath': - - return $this->privateKeyPath; - - break; - } - - return false; - - } - - /** - * Returns whether the given user is ready for encryption. - * Also returns true if the given user is the public user - * or the recovery key user. - * - * @param string $user user to check - * - * @return boolean true if the user is ready, false otherwise - */ - private function isUserReady($user) { - if ($user === $this->publicShareKeyId - || $user === $this->recoveryKeyId - ) { - return true; - } - $util = new Util($this->view, $user); - return $util->ready(); - } - - /** - * Filter an array of UIDs to return only ones ready for sharing - * @param array $unfilteredUsers users to be checked for sharing readiness - * @return array as multi-dimensional array. keys: ready, unready - */ - public function filterShareReadyUsers($unfilteredUsers) { - - // This array will collect the filtered IDs - $readyIds = $unreadyIds = array(); - - // Loop through users and create array of UIDs that need new keyfiles - foreach ($unfilteredUsers as $user) { - // Check that the user is encryption capable, or is the - // public system user (for public shares) - if ($this->isUserReady($user)) { - - // Construct array of ready UIDs for Keymanager{} - $readyIds[] = $user; - - } else { - - // Construct array of unready UIDs for Keymanager{} - $unreadyIds[] = $user; - - // Log warning; we can't do necessary setup here - // because we don't have the user passphrase - \OCP\Util::writeLog('Encryption library', - '"' . $user . '" is not setup for encryption', \OCP\Util::WARN); - - } - - } - - return array( - 'ready' => $readyIds, - 'unready' => $unreadyIds - ); - - } - - /** - * Decrypt a keyfile - * @param string $filePath - * @param string $privateKey - * @return false|string - */ - private function decryptKeyfile($filePath, $privateKey) { - - // Get the encrypted keyfile - $encKeyfile = Keymanager::getFileKey($this->view, $this, $filePath); - - // The file has a shareKey and must use it for decryption - $shareKey = Keymanager::getShareKey($this->view, $this->keyId, $this, $filePath); - - $plainKeyfile = Crypt::multiKeyDecrypt($encKeyfile, $shareKey, $privateKey); - - return $plainKeyfile; - } - - /** - * Encrypt keyfile to multiple users - * @param Session $session - * @param array $users list of users which should be able to access the file - * @param string $filePath path of the file to be shared - * @return bool - */ - public function setSharedFileKeyfiles(Session $session, array $users, $filePath) { - - // Make sure users are capable of sharing - $filteredUids = $this->filterShareReadyUsers($users); - - // If we're attempting to share to unready users - if (!empty($filteredUids['unready'])) { - - \OCP\Util::writeLog('Encryption library', - 'Sharing to these user(s) failed as they are unready for encryption:"' - . print_r($filteredUids['unready'], 1), \OCP\Util::WARN); - - return false; - - } - - // Get public keys for each user, ready for generating sharekeys - $userPubKeys = Keymanager::getPublicKeys($this->view, $filteredUids['ready']); - - // Note proxy status then disable it - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // Get the current users's private key for decrypting existing keyfile - $privateKey = $session->getPrivateKey(); - - try { - // Decrypt keyfile - $plainKeyfile = $this->decryptKeyfile($filePath, $privateKey); - // Re-enc keyfile to (additional) sharekeys - $multiEncKey = Crypt::multiKeyEncrypt($plainKeyfile, $userPubKeys); - } catch (Exception\EncryptionException $e) { - $msg = 'set shareFileKeyFailed (code: ' . $e->getCode() . '): ' . $e->getMessage(); - \OCP\Util::writeLog('files_encryption', $msg, \OCP\Util::FATAL); - return false; - } catch (\Exception $e) { - $msg = 'set shareFileKeyFailed (unknown error): ' . $e->getMessage(); - \OCP\Util::writeLog('files_encryption', $msg, \OCP\Util::FATAL); - return false; - } - - // Save the recrypted key to it's owner's keyfiles directory - // Save new sharekeys to all necessary user directory - if ( - !Keymanager::setFileKey($this->view, $this, $filePath, $multiEncKey['data']) - || !Keymanager::setShareKeys($this->view, $this, $filePath, $multiEncKey['keys']) - ) { - - \OCP\Util::writeLog('Encryption library', - 'Keyfiles could not be saved for users sharing ' . $filePath, \OCP\Util::ERROR); - - return false; - - } - - // Return proxy to original status - \OC_FileProxy::$enabled = $proxyStatus; - - return true; - } - - /** - * Find, sanitise and format users sharing a file - * @note This wraps other methods into a portable bundle - * @param boolean $sharingEnabled - * @param string $filePath path relativ to current users files folder - */ - public function getSharingUsersArray($sharingEnabled, $filePath) { - - $appConfig = \OC::$server->getAppConfig(); - - // Check if key recovery is enabled - if ( - $appConfig->getValue('files_encryption', 'recoveryAdminEnabled') - && $this->recoveryEnabledForUser() - ) { - $recoveryEnabled = true; - } else { - $recoveryEnabled = false; - } - - // Make sure that a share key is generated for the owner too - list($owner, $ownerPath) = $this->getUidAndFilename($filePath); - - $ownerPath = Helper::stripPartialFileExtension($ownerPath); - - // always add owner to the list of users with access to the file - $userIds = array($owner); - - if ($sharingEnabled) { - - // Find out who, if anyone, is sharing the file - $result = \OCP\Share::getUsersSharingFile($ownerPath, $owner); - $userIds = \array_merge($userIds, $result['users']); - if ($result['public'] || $result['remote']) { - $userIds[] = $this->publicShareKeyId; - } - - } - - // If recovery is enabled, add the - // Admin UID to list of users to share to - if ($recoveryEnabled) { - // Find recoveryAdmin user ID - $recoveryKeyId = $appConfig->getValue('files_encryption', 'recoveryKeyId'); - // Add recoveryAdmin to list of users sharing - $userIds[] = $recoveryKeyId; - } - - // check if it is a group mount - if (\OCP\App::isEnabled("files_external")) { - $mounts = \OC_Mount_Config::getSystemMountPoints(); - foreach ($mounts as $mount) { - if ($mount['mountpoint'] == substr($ownerPath, 1, strlen($mount['mountpoint']))) { - $userIds = array_merge($userIds, $this->getUserWithAccessToMountPoint($mount['applicable']['users'], $mount['applicable']['groups'])); - } - } - } - - // Remove duplicate UIDs - $uniqueUserIds = array_unique($userIds); - - return $uniqueUserIds; - - } - - private function getUserWithAccessToMountPoint($users, $groups) { - $result = array(); - if (in_array('all', $users)) { - $result = \OCP\User::getUsers(); - } else { - $result = array_merge($result, $users); - foreach ($groups as $group) { - $result = array_merge($result, \OC_Group::usersInGroup($group)); - } - } - - return $result; - } - - /** - * set migration status - * @param int $status - * @param int $preCondition only update migration status if the previous value equals $preCondition - * @return boolean - */ - private function setMigrationStatus($status, $preCondition = null) { - - // convert to string if preCondition is set - $preCondition = ($preCondition === null) ? null : (string)$preCondition; - - try { - \OC::$server->getConfig()->setUserValue($this->userId, 'files_encryption', 'migration_status', (string)$status, $preCondition); - return true; - } catch(\OCP\PreConditionNotMetException $e) { - return false; - } - - } - - /** - * start migration mode to initially encrypt users data - * @return boolean - */ - public function beginMigration() { - - $result = $this->setMigrationStatus(self::MIGRATION_IN_PROGRESS, self::MIGRATION_OPEN); - - if ($result) { - \OCP\Util::writeLog('Encryption library', "Start migration to encryption mode for " . $this->userId, \OCP\Util::INFO); - } else { - \OCP\Util::writeLog('Encryption library', "Could not activate migration mode for " . $this->userId . ". Probably another process already started the initial encryption", \OCP\Util::WARN); - } - - return $result; - } - - public function resetMigrationStatus() { - return $this->setMigrationStatus(self::MIGRATION_OPEN); - - } - - /** - * close migration mode after users data has been encrypted successfully - * @return boolean - */ - public function finishMigration() { - $result = $this->setMigrationStatus(self::MIGRATION_COMPLETED); - - if ($result) { - \OCP\Util::writeLog('Encryption library', "Finish migration successfully for " . $this->userId, \OCP\Util::INFO); - } else { - \OCP\Util::writeLog('Encryption library', "Could not deactivate migration mode for " . $this->userId, \OCP\Util::WARN); - } - - return $result; - } - - /** - * check if files are already migrated to the encryption system - * @return int|false migration status, false = in case of no record - * @note If records are not being returned, check for a hidden space - * at the start of the uid in db - */ - public function getMigrationStatus() { - - $migrationStatus = false; - if (\OCP\User::userExists($this->userId)) { - $migrationStatus = \OC::$server->getConfig()->getUserValue($this->userId, 'files_encryption', 'migration_status', null); - if ($migrationStatus === null) { - \OC::$server->getConfig()->setUserValue($this->userId, 'files_encryption', 'migration_status', (string)self::MIGRATION_OPEN); - $migrationStatus = self::MIGRATION_OPEN; - } - } - - return (int)$migrationStatus; - - } - - /** - * get uid of the owners of the file and the path to the file - * @param string $path Path of the file to check - * @throws \Exception - * @note $shareFilePath must be relative to data/UID/files. Files - * relative to /Shared are also acceptable - * @return array - */ - public function getUidAndFilename($path) { - - $pathinfo = pathinfo($path); - $partfile = false; - $parentFolder = false; - if (array_key_exists('extension', $pathinfo) && $pathinfo['extension'] === 'part') { - // if the real file exists we check this file - $filePath = $this->userFilesDir . '/' .$pathinfo['dirname'] . '/' . $pathinfo['filename']; - if ($this->view->file_exists($filePath)) { - $pathToCheck = $pathinfo['dirname'] . '/' . $pathinfo['filename']; - } else { // otherwise we look for the parent - $pathToCheck = $pathinfo['dirname']; - $parentFolder = true; - } - $partfile = true; - } else { - $pathToCheck = $path; - } - - $view = new \OC\Files\View($this->userFilesDir); - $fileOwnerUid = $view->getOwner($pathToCheck); - - // handle public access - if ($this->isPublic) { - return array($this->userId, $path); - } else { - - // Check that UID is valid - if (!\OCP\User::userExists($fileOwnerUid)) { - throw new \Exception( - 'Could not find owner (UID = "' . var_export($fileOwnerUid, 1) . '") of file "' . $path . '"'); - } - - // NOTE: Bah, this dependency should be elsewhere - \OC\Files\Filesystem::initMountPoints($fileOwnerUid); - - // If the file owner is the currently logged in user - if ($fileOwnerUid === $this->userId) { - - // Assume the path supplied is correct - $filename = $path; - - } else { - $info = $view->getFileInfo($pathToCheck); - $ownerView = new \OC\Files\View('/' . $fileOwnerUid . '/files'); - - // Fetch real file path from DB - $filename = $ownerView->getPath($info['fileid']); - if ($parentFolder) { - $filename = $filename . '/'. $pathinfo['filename']; - } - - if ($partfile) { - $filename = $filename . '.' . $pathinfo['extension']; - } - - } - - return array( - $fileOwnerUid, - \OC\Files\Filesystem::normalizePath($filename) - ); - } - } - - /** - * go recursively through a dir and collect all files and sub files. - * @param string $dir relative to the users files folder - * @return array with list of files relative to the users files folder - */ - public function getAllFiles($dir, $mountPoint = '') { - $result = array(); - $dirList = array($dir); - - while ($dirList) { - $dir = array_pop($dirList); - $content = $this->view->getDirectoryContent(\OC\Files\Filesystem::normalizePath( - $this->userFilesDir . '/' . $dir)); - - foreach ($content as $c) { - // getDirectoryContent() returns the paths relative to the mount points, so we need - // to re-construct the complete path - $path = ($mountPoint !== '') ? $mountPoint . '/' . $c['path'] : $c['path']; - $path = \OC\Files\Filesystem::normalizePath($path); - if ($c['type'] === 'dir') { - $dirList[] = substr($path, strlen('/' . \OCP\User::getUser() . "/files")); - } else { - $result[] = substr($path, strlen('/' . \OCP\User::getUser() . "/files")); - } - } - - } - - return $result; - } - - /** - * get owner of the shared files. - * @param int $id ID of a share - * @return string owner - */ - public function getOwnerFromSharedFile($id) { - - $query = \OCP\DB::prepare('SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1); - - $result = $query->execute(array($id)); - - $source = null; - if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR); - } else { - $source = $result->fetchRow(); - } - - $fileOwner = false; - - if ($source && isset($source['parent'])) { - - $parent = $source['parent']; - - while (isset($parent)) { - - $query = \OCP\DB::prepare('SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1); - - $result = $query->execute(array($parent)); - - $item = null; - if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('Encryption library', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR); - } else { - $item = $result->fetchRow(); - } - - if ($item && isset($item['parent'])) { - - $parent = $item['parent']; - - } else { - - $fileOwner = $item['uid_owner']; - - break; - - } - } - - } else { - - $fileOwner = $source['uid_owner']; - - } - - return $fileOwner; - - } - - /** - * @return string - */ - public function getUserId() { - return $this->userId; - } - - /** - * @return string - */ - public function getKeyId() { - return $this->keyId; - } - - /** - * @return string - */ - public function getUserFilesDir() { - return $this->userFilesDir; - } - - /** - * @param string $password - * @return bool - */ - public function checkRecoveryPassword($password) { - - $result = false; - - $recoveryKey = Keymanager::getPrivateSystemKey($this->recoveryKeyId); - $decryptedRecoveryKey = Crypt::decryptPrivateKey($recoveryKey, $password); - - if ($decryptedRecoveryKey) { - $result = true; - } - - return $result; - } - - /** - * @return string - */ - public function getRecoveryKeyId() { - return $this->recoveryKeyId; - } - - /** - * add recovery key to all encrypted files - */ - public function addRecoveryKeys($path = '/') { - $dirContent = $this->view->getDirectoryContent($this->keysPath . '/' . $path); - foreach ($dirContent as $item) { - // get relative path from files_encryption/keyfiles/ - $filePath = substr($item['path'], strlen('files_encryption/keys')); - if ($this->view->is_dir($this->userFilesDir . '/' . $filePath)) { - $this->addRecoveryKeys($filePath . '/'); - } else { - $session = new Session(new \OC\Files\View('/')); - $sharingEnabled = \OCP\Share::isEnabled(); - $usersSharing = $this->getSharingUsersArray($sharingEnabled, $filePath); - $this->setSharedFileKeyfiles($session, $usersSharing, $filePath); - } - } - } - - /** - * remove recovery key to all encrypted files - */ - public function removeRecoveryKeys($path = '/') { - $dirContent = $this->view->getDirectoryContent($this->keysPath . '/' . $path); - foreach ($dirContent as $item) { - // get relative path from files_encryption/keyfiles - $filePath = substr($item['path'], strlen('files_encryption/keys')); - if ($this->view->is_dir($this->userFilesDir . '/' . $filePath)) { - $this->removeRecoveryKeys($filePath . '/'); - } else { - $this->view->unlink($this->keysPath . '/' . $filePath . '/' . $this->recoveryKeyId . '.shareKey'); - } - } - } - - /** - * decrypt given file with recovery key and encrypt it again to the owner and his new key - * @param string $file - * @param string $privateKey recovery key to decrypt the file - */ - private function recoverFile($file, $privateKey) { - - $sharingEnabled = \OCP\Share::isEnabled(); - - // Find out who, if anyone, is sharing the file - if ($sharingEnabled) { - $result = \OCP\Share::getUsersSharingFile($file, $this->userId, true); - $userIds = $result['users']; - $userIds[] = $this->recoveryKeyId; - if ($result['public']) { - $userIds[] = $this->publicShareKeyId; - } - } else { - $userIds = array( - $this->userId, - $this->recoveryKeyId - ); - } - $filteredUids = $this->filterShareReadyUsers($userIds); - - //decrypt file key - $encKeyfile = Keymanager::getFileKey($this->view, $this, $file); - $shareKey = Keymanager::getShareKey($this->view, $this->recoveryKeyId, $this, $file); - $plainKeyfile = Crypt::multiKeyDecrypt($encKeyfile, $shareKey, $privateKey); - // encrypt file key again to all users, this time with the new public key for the recovered use - $userPubKeys = Keymanager::getPublicKeys($this->view, $filteredUids['ready']); - $multiEncKey = Crypt::multiKeyEncrypt($plainKeyfile, $userPubKeys); - - Keymanager::setFileKey($this->view, $this, $file, $multiEncKey['data']); - Keymanager::setShareKeys($this->view, $this, $file, $multiEncKey['keys']); - - } - - /** - * collect all files and recover them one by one - * @param string $path to look for files keys - * @param string $privateKey private recovery key which is used to decrypt the files - */ - private function recoverAllFiles($path, $privateKey) { - $dirContent = $this->view->getDirectoryContent($this->keysPath . '/' . $path); - foreach ($dirContent as $item) { - // get relative path from files_encryption/keyfiles - $filePath = substr($item['path'], strlen('files_encryption/keys')); - if ($this->view->is_dir($this->userFilesDir . '/' . $filePath)) { - $this->recoverAllFiles($filePath . '/', $privateKey); - } else { - $this->recoverFile($filePath, $privateKey); - } - } - } - - /** - * recover users files in case of password lost - * @param string $recoveryPassword - */ - public function recoverUsersFiles($recoveryPassword) { - - $encryptedKey = Keymanager::getPrivateSystemKey( $this->recoveryKeyId); - $privateKey = Crypt::decryptPrivateKey($encryptedKey, $recoveryPassword); - - $this->recoverAllFiles('/', $privateKey); - } - - /** - * create a backup of all keys from the user - * - * @param string $purpose define the purpose of the backup, will be part of the backup folder name - * @param boolean $timestamp (optional) should a timestamp be added, default true - * @param boolean $includeUserKeys (optional) include users private-/public-key, default true - */ - public function backupAllKeys($purpose, $timestamp = true, $includeUserKeys = true) { - $this->userId; - $backupDir = $this->encryptionDir . '/backup.' . $purpose; - $backupDir .= ($timestamp) ? '.' . date("Y-m-d_H-i-s") . '/' : '/'; - $this->view->mkdir($backupDir); - $this->view->copy($this->keysPath, $backupDir . 'keys/'); - if ($includeUserKeys) { - $this->view->copy($this->privateKeyPath, $backupDir . $this->userId . '.privateKey'); - $this->view->copy($this->publicKeyPath, $backupDir . $this->userId . '.publicKey'); - } - } - - /** - * restore backup - * - * @param string $backup complete name of the backup - * @return boolean - */ - public function restoreBackup($backup) { - $backupDir = $this->encryptionDir . '/backup.' . $backup . '/'; - - $fileKeysRestored = $this->view->rename($backupDir . 'keys', $this->encryptionDir . '/keys'); - - $pubKeyRestored = $privKeyRestored = true; - if ( - $this->view->file_exists($backupDir . $this->userId . '.privateKey') && - $this->view->file_exists($backupDir . $this->userId . '.privateKey') - ) { - - $pubKeyRestored = $this->view->rename($backupDir . $this->userId . '.publicKey', $this->publicKeyPath); - $privKeyRestored = $this->view->rename($backupDir . $this->userId . '.privateKey', $this->privateKeyPath); - } - - if ($fileKeysRestored && $pubKeyRestored && $privKeyRestored) { - $this->view->deleteAll($backupDir); - - return true; - } - - return false; - } - - /** - * delete backup - * - * @param string $backup complete name of the backup - * @return boolean - */ - public function deleteBackup($backup) { - $backupDir = $this->encryptionDir . '/backup.' . $backup . '/'; - return $this->view->deleteAll($backupDir); - } - - /** - * check if the file is stored on a system wide mount point - * @param string $path relative to /data/user with leading '/' - * @return boolean - */ - public function isSystemWideMountPoint($path) { - $normalizedPath = ltrim($path, '/'); - if (\OCP\App::isEnabled("files_external")) { - $mounts = \OC_Mount_Config::getSystemMountPoints(); - foreach ($mounts as $mount) { - if ($mount['mountpoint'] == substr($normalizedPath, 0, strlen($mount['mountpoint']))) { - if ($this->isMountPointApplicableToUser($mount)) { - return true; - } - } - } - } - return false; - } - - /** - * check if mount point is applicable to user - * - * @param array $mount contains $mount['applicable']['users'], $mount['applicable']['groups'] - * @return boolean - */ - protected function isMountPointApplicableToUser($mount) { - $uid = \OCP\User::getUser(); - $acceptedUids = array('all', $uid); - // check if mount point is applicable for the user - $intersection = array_intersect($acceptedUids, $mount['applicable']['users']); - if (!empty($intersection)) { - return true; - } - // check if mount point is applicable for group where the user is a member - foreach ($mount['applicable']['groups'] as $gid) { - if (\OC_Group::inGroup($uid, $gid)) { - return true; - } - } - return false; - } - - /** - * decrypt private key and add it to the current session - * @param array $params with 'uid' and 'password' - * @return mixed session or false - */ - public function initEncryption($params) { - - $session = new Session($this->view); - - // we tried to initialize the encryption app for this session - $session->setInitialized(Session::INIT_EXECUTED); - - $encryptedKey = Keymanager::getPrivateKey($this->view, $params['uid']); - - $privateKey = false; - if ($encryptedKey) { - $privateKey = Crypt::decryptPrivateKey($encryptedKey, $params['password']); - } - - if ($privateKey === false) { - \OCP\Util::writeLog('Encryption library', 'Private key for user "' . $params['uid'] - . '" is not valid! Maybe the user password was changed from outside if so please change it back to gain access', \OCP\Util::ERROR); - return false; - } - - $session->setPrivateKey($privateKey); - $session->setInitialized(Session::INIT_SUCCESSFUL); - - return $session; - } - - /* - * remove encryption related keys from the session - */ - public function closeEncryptionSession() { - $session = new Session($this->view); - $session->closeSession(); - } - -} diff --git a/apps/files_encryption/settings-admin.php b/apps/files_encryption/settings-admin.php deleted file mode 100644 index 44dcc2309a4..00000000000 --- a/apps/files_encryption/settings-admin.php +++ /dev/null @@ -1,42 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Morris Jobke - * @author Robin Appelman - * @author Sam Tuke - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -\OC_Util::checkAdminUser(); - -$tmpl = new OCP\Template('files_encryption', 'settings-admin'); - -// Check if an adminRecovery account is enabled for recovering files after lost pwd -$recoveryAdminEnabled = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryAdminEnabled', '0'); -$session = new \OCA\Files_Encryption\Session(new \OC\Files\View('/')); -$initStatus = $session->getInitialized(); - -$tmpl->assign('recoveryEnabled', $recoveryAdminEnabled); -$tmpl->assign('initStatus', $initStatus); - -\OCP\Util::addscript('files_encryption', 'settings-admin'); -\OCP\Util::addscript('core', 'multiselect'); - -return $tmpl->fetchPage(); diff --git a/apps/files_encryption/settings-personal.php b/apps/files_encryption/settings-personal.php deleted file mode 100644 index a9e512f89d8..00000000000 --- a/apps/files_encryption/settings-personal.php +++ /dev/null @@ -1,60 +0,0 @@ - - * @author Florin Peter - * @author Joas Schilling - * @author Morris Jobke - * @author Robin Appelman - * @author Sam Tuke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -// Add CSS stylesheet -\OCP\Util::addStyle('files_encryption', 'settings-personal'); - -$tmpl = new OCP\Template('files_encryption', 'settings-personal'); - -$user = \OCP\USER::getUser(); -$view = new \OC\Files\View('/'); -$util = new \OCA\Files_Encryption\Util($view, $user); -$session = new \OCA\Files_Encryption\Session($view); - -$privateKeySet = $session->getPrivateKey() !== false; -// did we tried to initialize the keys for this session? -$initialized = $session->getInitialized(); - -$recoveryAdminEnabled = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryAdminEnabled'); -$recoveryEnabledForUser = $util->recoveryEnabledForUser(); - -$result = false; - -if ($recoveryAdminEnabled || !$privateKeySet) { - - \OCP\Util::addscript('files_encryption', 'settings-personal'); - - $tmpl->assign('recoveryEnabled', $recoveryAdminEnabled); - $tmpl->assign('recoveryEnabledForUser', $recoveryEnabledForUser); - $tmpl->assign('privateKeySet', $privateKeySet); - $tmpl->assign('initialized', $initialized); - - $result = $tmpl->fetchPage(); -} - -return $result; - diff --git a/apps/files_encryption/templates/invalid_private_key.php b/apps/files_encryption/templates/invalid_private_key.php deleted file mode 100644 index 700b37b58a7..00000000000 --- a/apps/files_encryption/templates/invalid_private_key.php +++ /dev/null @@ -1,12 +0,0 @@ -
    -
  • - - - -
    - - t('Go directly to your %spersonal settings%s.', array('', ''))); ?> - -
    -
  • -
diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php deleted file mode 100644 index b686912bf4d..00000000000 --- a/apps/files_encryption/templates/settings-admin.php +++ /dev/null @@ -1,71 +0,0 @@ - -
-

t('Server-side Encryption')); ?>

- - - t("Encryption App is enabled but your keys are not initialized, please log-out and log-in again")); ?> - -

- t("Enable recovery key (allow to recover users files in case of password loss):")); ?> - -
-
- - -
- - -
- /> - -
- - /> - -

-

- -

> - t("Change recovery key password:")); ?> - -

- - -
-
- - -
- - -
- -

- -
diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php deleted file mode 100644 index 3c8034c968f..00000000000 --- a/apps/files_encryption/templates/settings-personal.php +++ /dev/null @@ -1,70 +0,0 @@ - -
-

t('Server-side Encryption')); ?>

- - - - t("Encryption App is enabled but your keys are not initialized, please log-out and log-in again")); ?> - - -

- - -
- t( "Set your old private key password to your current log-in password:" ) ); ?> - t( " If you don't remember your old password you can ask your administrator to recover your files." ) ); - endif; ?> -
- - -
- - -
- - -

- - -
-

- - -
- t( "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" ) ); ?> -
- /> - -
- - /> - -

- - diff --git a/apps/files_encryption/tests/binary b/apps/files_encryption/tests/binary deleted file mode 100644 index 79bc99479da..00000000000 Binary files a/apps/files_encryption/tests/binary and /dev/null differ diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php deleted file mode 100755 index 4ce8f9a926d..00000000000 --- a/apps/files_encryption/tests/crypt.php +++ /dev/null @@ -1,678 +0,0 @@ - - * @author Björn Schießle - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Robin Appelman - * @author Sam Tuke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class Crypt - */ -class Crypt extends TestCase { - - const TEST_ENCRYPTION_CRYPT_USER1 = "test-crypt-user1"; - - public $userId; - public $pass; - public $stateFilesTrashbin; - public $dataLong; - public $dataUrl; - public $dataShort; - /** - * @var \OC\Files\View - */ - public $view; - public $legacyEncryptedData; - public $genPrivateKey; - public $genPublicKey; - - /** @var \OCP\IConfig */ - private $config; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // create test user - self::loginHelper(self::TEST_ENCRYPTION_CRYPT_USER1, true); - } - - protected function setUp() { - parent::setUp(); - - // set user id - self::loginHelper(self::TEST_ENCRYPTION_CRYPT_USER1); - $this->userId = self::TEST_ENCRYPTION_CRYPT_USER1; - $this->pass = self::TEST_ENCRYPTION_CRYPT_USER1; - - // set content for encrypting / decrypting in tests - $this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php'); - $this->dataShort = 'hats'; - $this->dataUrl = __DIR__ . '/../lib/crypt.php'; - $this->legacyData = __DIR__ . '/legacy-text.txt'; - $this->legacyEncryptedData = __DIR__ . '/legacy-encrypted-text.txt'; - $this->legacyEncryptedDataKey = __DIR__ . '/encryption.key'; - $this->randomKey = \OCA\Files_Encryption\Crypt::generateKey(); - - $keypair = \OCA\Files_Encryption\Crypt::createKeypair(); - $this->genPublicKey = $keypair['publicKey']; - $this->genPrivateKey = $keypair['privateKey']; - - $this->view = new \OC\Files\View('/'); - - // remember files_trashbin state - $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin'); - - // we don't want to tests with app files_trashbin enabled - \OC_App::disable('files_trashbin'); - - $this->config = \OC::$server->getConfig(); - } - - protected function tearDown() { - // reset app files_trashbin - if ($this->stateFilesTrashbin) { - \OC_App::enable('files_trashbin'); - } else { - \OC_App::disable('files_trashbin'); - } - - $this->assertTrue(\OC_FileProxy::$enabled); - $this->config->deleteSystemValue('cipher'); - - parent::tearDown(); - } - - public static function tearDownAfterClass() { - // cleanup test user - \OC_User::deleteUser(self::TEST_ENCRYPTION_CRYPT_USER1); - - parent::tearDownAfterClass(); - } - - /** - * @medium - */ - public function testGenerateKey() { - - # TODO: use more accurate (larger) string length for test confirmation - - $key = \OCA\Files_Encryption\Crypt::generateKey(); - - $this->assertTrue(strlen($key) > 16); - - } - - public function testDecryptPrivateKey() { - - // test successful decrypt - $crypted = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->genPrivateKey, 'hat'); - - $header = \OCA\Files_Encryption\Crypt::generateHeader(); - - $decrypted = \OCA\Files_Encryption\Crypt::decryptPrivateKey($header . $crypted, 'hat'); - - $this->assertEquals($this->genPrivateKey, $decrypted); - - //test private key decrypt with wrong password - $wrongPasswd = \OCA\Files_Encryption\Crypt::decryptPrivateKey($crypted, 'hat2'); - - $this->assertEquals(false, $wrongPasswd); - - } - - - /** - * @medium - */ - public function testSymmetricEncryptFileContent() { - - # TODO: search in keyfile for actual content as IV will ensure this test always passes - - $crypted = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->dataShort, 'hat'); - - $this->assertNotEquals($this->dataShort, $crypted); - - - $decrypt = \OCA\Files_Encryption\Crypt::symmetricDecryptFileContent($crypted, 'hat'); - - $this->assertEquals($this->dataShort, $decrypt); - - } - - /** - * @medium - */ - public function testSymmetricEncryptFileContentAes128() { - - # TODO: search in keyfile for actual content as IV will ensure this test always passes - - $crypted = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->dataShort, 'hat', 'AES-128-CFB'); - - $this->assertNotEquals($this->dataShort, $crypted); - - - $decrypt = \OCA\Files_Encryption\Crypt::symmetricDecryptFileContent($crypted, 'hat', 'AES-128-CFB'); - - $this->assertEquals($this->dataShort, $decrypt); - - } - - /** - * @medium - */ - public function testSymmetricStreamEncryptShortFileContent() { - - $filename = 'tmp-' . $this->getUniqueID() . '.test'; - - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/'. $filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents($this->userId . '/files/' . $filename); - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - - // Check that the file was encrypted before being written to disk - $this->assertNotEquals($this->dataShort, $retreivedCryptedFile); - - // Get file contents with the encryption wrapper - $decrypted = file_get_contents('crypt:///' . $this->userId . '/files/'. $filename); - - // Check that decrypted data matches - $this->assertEquals($this->dataShort, $decrypted); - - // Teardown - $this->view->unlink($this->userId . '/files/' . $filename); - } - - /** - * @medium - */ - public function testSymmetricStreamEncryptShortFileContentAes128() { - - $filename = 'tmp-' . $this->getUniqueID() . '.test'; - - $this->config->setSystemValue('cipher', 'AES-128-CFB'); - - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/'. $filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - $this->config->deleteSystemValue('cipher'); - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents($this->userId . '/files/' . $filename); - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - - // Check that the file was encrypted before being written to disk - $this->assertNotEquals($this->dataShort, $retreivedCryptedFile); - - // Get file contents with the encryption wrapper - $decrypted = file_get_contents('crypt:///' . $this->userId . '/files/'. $filename); - - // Check that decrypted data matches - $this->assertEquals($this->dataShort, $decrypted); - - // Teardown - $this->view->unlink($this->userId . '/files/' . $filename); - } - - /** - * @medium - * Test that data that is written by the crypto stream wrapper - * @note Encrypted data is manually prepared and decrypted here to avoid dependency on success of stream_read - * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual - * reassembly of its data - */ - public function testSymmetricStreamEncryptLongFileContent() { - - // Generate a a random filename - $filename = 'tmp-' . $this->getUniqueID() . '.test'; - - // Save long data as encrypted file using stream wrapper - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong . $this->dataLong); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents($this->userId . '/files/' . $filename); - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - - - // Check that the file was encrypted before being written to disk - $this->assertNotEquals($this->dataLong . $this->dataLong, $retreivedCryptedFile); - - $decrypted = file_get_contents('crypt:///' . $this->userId . '/files/'. $filename); - - $this->assertEquals($this->dataLong . $this->dataLong, $decrypted); - - // Teardown - $this->view->unlink($this->userId . '/files/' . $filename); - } - - /** - * @medium - * Test that data that is written by the crypto stream wrapper with AES 128 - * @note Encrypted data is manually prepared and decrypted here to avoid dependency on success of stream_read - * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual - * reassembly of its data - */ - public function testSymmetricStreamEncryptLongFileContentAes128() { - - // Generate a a random filename - $filename = 'tmp-' . $this->getUniqueID() . '.test'; - - $this->config->setSystemValue('cipher', 'AES-128-CFB'); - - // Save long data as encrypted file using stream wrapper - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong . $this->dataLong); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $this->config->deleteSystemValue('cipher'); - - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents($this->userId . '/files/' . $filename); - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - - - // Check that the file was encrypted before being written to disk - $this->assertNotEquals($this->dataLong . $this->dataLong, $retreivedCryptedFile); - - $decrypted = file_get_contents('crypt:///' . $this->userId . '/files/'. $filename); - - $this->assertEquals($this->dataLong . $this->dataLong, $decrypted); - - // Teardown - $this->view->unlink($this->userId . '/files/' . $filename); - } - - /** - * @medium - * Test that data that is written by the crypto stream wrapper with AES 128 - * @note Encrypted data is manually prepared and decrypted here to avoid dependency on success of stream_read - * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual - * reassembly of its data - */ - public function testStreamDecryptLongFileContentWithoutHeader() { - - // Generate a a random filename - $filename = 'tmp-' . $this->getUniqueID() . '.test'; - - $this->config->setSystemValue('cipher', 'AES-128-CFB'); - - // Save long data as encrypted file using stream wrapper - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong . $this->dataLong); - - $this->config->deleteSystemValue('cipher'); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents($this->userId . '/files/' . $filename); - - // Check that the file was encrypted before being written to disk - $this->assertNotEquals($this->dataLong . $this->dataLong, $retreivedCryptedFile); - - // remove the header to check if we can also decrypt old files without a header, - // this files should fall back to AES-128 - $cryptedWithoutHeader = substr($retreivedCryptedFile, \OCA\Files_Encryption\Crypt::BLOCKSIZE); - $this->view->file_put_contents($this->userId . '/files/' . $filename, $cryptedWithoutHeader); - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - - $decrypted = file_get_contents('crypt:///' . $this->userId . '/files/'. $filename); - - $this->assertEquals($this->dataLong . $this->dataLong, $decrypted); - - // Teardown - $this->view->unlink($this->userId . '/files/' . $filename); - } - - /** - * @medium - */ - public function testIsEncryptedContent() { - - $this->assertFalse(\OCA\Files_Encryption\Crypt::isCatfileContent($this->dataUrl)); - - $this->assertFalse(\OCA\Files_Encryption\Crypt::isCatfileContent($this->legacyEncryptedData)); - - $keyfileContent = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->dataUrl, 'hat', 'AES-128-CFB'); - - $this->assertTrue(\OCA\Files_Encryption\Crypt::isCatfileContent($keyfileContent)); - - } - - /** - * @large - */ - public function testMultiKeyEncrypt() { - - # TODO: search in keyfile for actual content as IV will ensure this test always passes - - $pair1 = \OCA\Files_Encryption\Crypt::createKeypair(); - - $this->assertEquals(2, count($pair1)); - - $this->assertTrue(strlen($pair1['publicKey']) > 1); - - $this->assertTrue(strlen($pair1['privateKey']) > 1); - - - $crypted = \OCA\Files_Encryption\Crypt::multiKeyEncrypt($this->dataShort, array($pair1['publicKey'])); - - $this->assertNotEquals($this->dataShort, $crypted['data']); - - - $decrypt = \OCA\Files_Encryption\Crypt::multiKeyDecrypt($crypted['data'], $crypted['keys'][0], $pair1['privateKey']); - - $this->assertEquals($this->dataShort, $decrypt); - - } - - /** - * @medium - */ - public function testRenameFile() { - - $filename = 'tmp-' . $this->getUniqueID(); - - // Save long data as encrypted file using stream wrapper - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Get file decrypted contents - $decrypt = file_get_contents('crypt:///' . $this->userId . '/files/' . $filename); - - $this->assertEquals($this->dataLong, $decrypt); - - $newFilename = 'tmp-new-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - $view->rename($filename, $newFilename); - - // Get file decrypted contents - $newDecrypt = file_get_contents('crypt:///'. $this->userId . '/files/' . $newFilename); - - $this->assertEquals($this->dataLong, $newDecrypt); - - // tear down - $view->unlink($newFilename); - } - - /** - * @medium - */ - public function testMoveFileIntoFolder() { - - $filename = 'tmp-' . $this->getUniqueID(); - - // Save long data as encrypted file using stream wrapper - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Get file decrypted contents - $decrypt = file_get_contents('crypt:///' . $this->userId . '/files/' . $filename); - - $this->assertEquals($this->dataLong, $decrypt); - - $newFolder = '/newfolder' . $this->getUniqueID(); - $newFilename = 'tmp-new-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - $view->mkdir($newFolder); - $view->rename($filename, $newFolder . '/' . $newFilename); - - // Get file decrypted contents - $newDecrypt = file_get_contents('crypt:///' . $this->userId . '/files/' . $newFolder . '/' . $newFilename); - - $this->assertEquals($this->dataLong, $newDecrypt); - - // tear down - $view->unlink($newFolder); - } - - /** - * @medium - */ - public function testMoveFolder() { - - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - $filename = '/tmp-' . $this->getUniqueID(); - $folder = '/folder' . $this->getUniqueID(); - - $view->mkdir($folder); - - // Save long data as encrypted file using stream wrapper - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $folder . $filename, $this->dataLong); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Get file decrypted contents - $decrypt = file_get_contents('crypt:///' . $this->userId . '/files/' . $folder . $filename); - - $this->assertEquals($this->dataLong, $decrypt); - - $newFolder = '/newfolder/subfolder' . $this->getUniqueID(); - $view->mkdir('/newfolder'); - - $view->rename($folder, $newFolder); - - // Get file decrypted contents - $newDecrypt = file_get_contents('crypt:///' . $this->userId . '/files/' . $newFolder . $filename); - - $this->assertEquals($this->dataLong, $newDecrypt); - - // tear down - $view->unlink($newFolder); - $view->unlink('/newfolder'); - } - - /** - * @medium - */ - public function testChangePassphrase() { - $filename = 'tmp-' . $this->getUniqueID(); - - // Save long data as encrypted file using stream wrapper - $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Get file decrypted contents - $decrypt = file_get_contents('crypt:///' . $this->userId . '/files/' . $filename); - - $this->assertEquals($this->dataLong, $decrypt); - - // change password - \OC_User::setPassword($this->userId, 'test', null); - - // relogin - $params['uid'] = $this->userId; - $params['password'] = 'test'; - \OCA\Files_Encryption\Hooks::login($params); - - // Get file decrypted contents - $newDecrypt = file_get_contents('crypt:///' . $this->userId . '/files/' . $filename); - - $this->assertEquals($this->dataLong, $newDecrypt); - - // tear down - // change password back - \OC_User::setPassword($this->userId, $this->pass); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - $view->unlink($filename); - } - - /** - * @medium - */ - public function testViewFilePutAndGetContents() { - - $filename = '/tmp-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - // Save short data as encrypted file using stream wrapper - $cryptedFile = $view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Get file decrypted contents - $decrypt = $view->file_get_contents($filename); - - $this->assertEquals($this->dataShort, $decrypt); - - // Save long data as encrypted file using stream wrapper - $cryptedFileLong = $view->file_put_contents($filename, $this->dataLong); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFileLong)); - - // Get file decrypted contents - $decryptLong = $view->file_get_contents($filename); - - $this->assertEquals($this->dataLong, $decryptLong); - - // tear down - $view->unlink($filename); - } - - /** - * @large - */ - public function testTouchExistingFile() { - $filename = '/tmp-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - // Save short data as encrypted file using stream wrapper - $cryptedFile = $view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - $view->touch($filename); - - // Get file decrypted contents - $decrypt = $view->file_get_contents($filename); - - $this->assertEquals($this->dataShort, $decrypt); - - // tear down - $view->unlink($filename); - } - - /** - * @medium - */ - public function testTouchFile() { - $filename = '/tmp-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - $view->touch($filename); - - // Save short data as encrypted file using stream wrapper - $cryptedFile = $view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // Get file decrypted contents - $decrypt = $view->file_get_contents($filename); - - $this->assertEquals($this->dataShort, $decrypt); - - // tear down - $view->unlink($filename); - } - - /** - * @medium - */ - public function testFopenFile() { - $filename = '/tmp-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - // Save short data as encrypted file using stream wrapper - $cryptedFile = $view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - $handle = $view->fopen($filename, 'r'); - - // Get file decrypted contents - $decrypt = fgets($handle); - - $this->assertEquals($this->dataShort, $decrypt); - - // tear down - fclose($handle); - $view->unlink($filename); - } - -} diff --git a/apps/files_encryption/tests/encryption.key b/apps/files_encryption/tests/encryption.key deleted file mode 100644 index 4ee962145c2..00000000000 Binary files a/apps/files_encryption/tests/encryption.key and /dev/null differ diff --git a/apps/files_encryption/tests/encryption_table.xml b/apps/files_encryption/tests/encryption_table.xml deleted file mode 100644 index c0f63dc0efa..00000000000 --- a/apps/files_encryption/tests/encryption_table.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - *dbname* - true - false - utf8 - - *dbprefix*encryption_test - - - uid - text - true - 64 - - - mode - text - true - 64 - What client-side / server-side configuration is used - - - recovery_enabled - integer - true - 0 - Whether encryption key recovery is enabled - - - migration_status - integer - true - 0 - Whether encryption migration has been performed - - -
-
diff --git a/apps/files_encryption/tests/helper.php b/apps/files_encryption/tests/helper.php deleted file mode 100644 index 8fbd4f419a9..00000000000 --- a/apps/files_encryption/tests/helper.php +++ /dev/null @@ -1,339 +0,0 @@ - - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -use OCA\Files_Encryption; -use OCA\Files_Encryption\Helper; - -/** - * Class Helper - */ -class TestHelper extends TestCase { - - const TEST_ENCRYPTION_HELPER_USER1 = "test-helper-user1"; - const TEST_ENCRYPTION_HELPER_USER2 = "test-helper-user2"; - - protected function setUpUsers() { - // create test user - self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER2, true); - self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1, true); - } - - protected function cleanUpUsers() { - // cleanup test user - \OC_User::deleteUser(self::TEST_ENCRYPTION_HELPER_USER1); - \OC_User::deleteUser(self::TEST_ENCRYPTION_HELPER_USER2); - } - - public static function setupHooks() { - // Filesystem related hooks - Helper::registerFilesystemHooks(); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new Files_Encryption\Proxy()); - } - - public static function tearDownAfterClass() { - parent::tearDownAfterClass(); - } - - /** - * @medium - */ - function testStripPartialFileExtension() { - - $partFilename = 'testfile.txt.part'; - $filename = 'testfile.txt'; - - $this->assertTrue(Helper::isPartialFilePath($partFilename)); - - $this->assertEquals('testfile.txt', Helper::stripPartialFileExtension($partFilename)); - - $this->assertFalse(Helper::isPartialFilePath($filename)); - - $this->assertEquals('testfile.txt', Helper::stripPartialFileExtension($filename)); - } - - - /** - * @medium - */ - function testStripPartialFileExtensionWithTransferIdPath() { - - $partFilename = 'testfile.txt.ocTransferId643653835.part'; - $filename = 'testfile.txt'; - - $this->assertTrue(Helper::isPartialFilePath($partFilename)); - - $this->assertEquals('testfile.txt', Helper::stripPartialFileExtension($partFilename)); - - $this->assertFalse(Helper::isPartialFilePath($filename)); - - $this->assertEquals('testfile.txt', Helper::stripPartialFileExtension($filename)); - } - - /** - * @dataProvider dataVersionsPathPositive - */ - function testGetPathFromVersionPositive($path, $expected) { - $result = Helper::getPathFromVersion($path); - $this->assertSame($expected, $result); - } - - function dataVersionsPathPositive() { - return array( - array('/user/files_versions/foo/bar/test.txt.v456756835', 'foo/bar/test.txt'), - array('user/files_versions/foo/bar/test.txt.v456756835', 'foo/bar/test.txt'), - array('user/files_versions//foo/bar/test.txt.v456756835', 'foo/bar/test.txt'), - array('user/files_versions/test.txt.v456756835', 'test.txt'), - ); - } - - /** - * @dataProvider dataVersionsPathNegative - * @expectedException \OCA\Files_Encryption\Exception\EncryptionException - */ - function testGetPathFromVersionNegative($path) { - Helper::getPathFromVersion($path); - } - - function dataVersionsPathNegative() { - return array( - array('/user/files_versions/'), - array('/user/files_versions'), - ); - } - - /** - * @dataProvider dataPathsCachedFilePositive - */ - function testGetPathFromCachedFilePositive($path, $expected) { - $result = Helper::getPathFromCachedFile($path); - $this->assertEquals($expected, $result); - } - - function dataPathsCachedFilePositive() { - return array( - array('/user/cache/transferid636483/foo/bar/test.txt', 'foo/bar/test.txt'), - array('/user/cache/transferid636483//test.txt', 'test.txt'), - array('user/cache/transferid636483//test.txt', 'test.txt'), - ); - } - - - /** - * @dataProvider dataPathsCachedFileNegative - * @expectedException \OCA\Files_Encryption\Exception\EncryptionException - */ - function testGetPathFromCachedFileNegative($path) { - Helper::getPathFromCachedFile($path); - } - - function dataPathsCachedFileNegative() { - return array( - array('/user/cache/transferid636483/'), - array('/user/cache/transferid636483'), - array('/user/cache/transferid636483//'), - array('/user/cache'), - ); - } - - function testGetUser() { - self::setUpUsers(); - - $path1 = "/" . self::TEST_ENCRYPTION_HELPER_USER1 . "/files/foo/bar.txt"; - $path2 = "/" . self::TEST_ENCRYPTION_HELPER_USER1 . "/cache/foo/bar.txt"; - $path3 = "/" . self::TEST_ENCRYPTION_HELPER_USER2 . "/thumbnails/foo"; - $path4 ="/" . "/" . self::TEST_ENCRYPTION_HELPER_USER1; - - self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1); - - // if we are logged-in every path should return the currently logged-in user - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path1)); - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path2)); - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path3)); - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path4)); - - // now log out - self::logoutHelper(); - - // now we should only get the user from /user/files and user/cache paths - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path1)); - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path2)); - - try { - $this->assertFalse(Helper::getUser($path3)); - $this->assertFalse(true, '"OCA\Files_Encryption\Exception\EncryptionException: Could not determine user expected"'); - } catch (Files_Encryption\Exception\EncryptionException $e) { - $this->assertSame('Could not determine user', $e->getMessage()); - } - try { - $this->assertFalse(Helper::getUser($path4)); - $this->assertFalse(true, '"OCA\Files_Encryption\Exception\EncryptionException: Could not determine user expected"'); - } catch (Files_Encryption\Exception\EncryptionException $e) { - $this->assertSame('Could not determine user', $e->getMessage()); - } - - // Log-in again - self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1); - self::cleanUpUsers(); - } - - /** - * @dataProvider dataStripUserFilesPath - */ - function testStripUserFilesPath($path, $expected) { - $result = Helper::stripUserFilesPath($path); - $this->assertSame($expected, $result); - } - - function dataStripUserFilesPath() { - return array( - array('/user/files/foo.txt', 'foo.txt'), - array('//user/files/foo.txt', 'foo.txt'), - array('user//files/foo/bar.txt', 'foo/bar.txt'), - array('user//files/', false), - array('/user', false), - array('', false), - ); - } - - /** - * @dataProvider dataStripUserFilesPathPositive - */ - function testGetUserFromPathPositive($path, $expected) { - self::setUpUsers(); - $result = Helper::getUserFromPath($path); - $this->assertSame($expected, $result); - self::cleanUpUsers(); - } - - function dataStripUserFilesPathPositive() { - return array( - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/files/foo.txt', self::TEST_ENCRYPTION_HELPER_USER1), - array('//' . self::TEST_ENCRYPTION_HELPER_USER2 . '/files_versions/foo.txt', self::TEST_ENCRYPTION_HELPER_USER2), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/files_trashbin/', self::TEST_ENCRYPTION_HELPER_USER1), - array(self::TEST_ENCRYPTION_HELPER_USER1 . '//cache/foo/bar.txt', self::TEST_ENCRYPTION_HELPER_USER1), - ); - } - - /** - * @dataProvider dataStripUserFilesPathNegative - * @expectedException \OCA\Files_Encryption\Exception\EncryptionException - */ - function testGetUserFromPathNegative($path) { - Helper::getUserFromPath($path); - } - - function dataStripUserFilesPathNegative() { - return array( - array('/unknown_user/files/foo.txt'), - array('/' . self::TEST_ENCRYPTION_HELPER_USER2 . '/unknown_folder/foo.txt'), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1), - array(''), - ); - } - - /** - * @dataProvider dataPaths - */ - function testMkdirr($path, $expected) { - self::setUpUsers(); - Helper::mkdirr($path, new \OC\Files\View('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/files')); - // ignore the filename because we only check for the directories - $dirParts = array_slice($expected, 0, -1); - $expectedPath = implode('/', $dirParts); - $this->assertTrue(\OC\Files\Filesystem::is_dir($expectedPath)); - - // cleanup - \OC\Files\Filesystem::unlink('/' . $expected[0]); - self::cleanUpUsers(); - } - - /** - * @dataProvider dataDetectFileTypePositive - */ - function testDetectFileTypePositive($path, $expected) { - $result = Helper::detectFileType($path); - $this->assertSame($expected, $result); - } - - function dataDetectFileTypePositive() { - return array( - array(self::TEST_ENCRYPTION_HELPER_USER1 . '/files', Files_Encryption\Util::FILE_TYPE_FILE), - array(self::TEST_ENCRYPTION_HELPER_USER1 . '/files/foo/bar', Files_Encryption\Util::FILE_TYPE_FILE), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/files/foo/bar', Files_Encryption\Util::FILE_TYPE_FILE), - array(self::TEST_ENCRYPTION_HELPER_USER1 . '/files_versions', Files_Encryption\Util::FILE_TYPE_VERSION), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '//files_versions/foo/bar', Files_Encryption\Util::FILE_TYPE_VERSION), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '//cache/foo/bar', Files_Encryption\Util::FILE_TYPE_CACHE), - ); - } - - /** - * @dataProvider dataDetectFileTypeNegative - * @expectedException \OCA\Files_Encryption\Exception\EncryptionException - */ - function testDetectFileTypeNegative($path) { - Helper::detectFileType($path); - } - - function dataDetectFileTypeNegative() { - return array( - array('/files'), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/unsuported_dir/foo/bar'), - ); - } - - /** - * @dataProvider dataPaths - */ - function testSplitPath($path, $expected) { - $result = Helper::splitPath($path); - $this->compareArray($result, $expected); - } - - function dataPaths() { - return array( - array('foo/bar/test.txt', array('', 'foo', 'bar', 'test.txt')), - array('/foo/bar/test.txt', array('', 'foo', 'bar', 'test.txt')), - array('/foo/bar//test.txt', array('', 'foo', 'bar', 'test.txt')), - array('//foo/bar/test.txt', array('', 'foo', 'bar', 'test.txt')), - array('foo', array('', 'foo')), - array('/foo', array('', 'foo')), - array('//foo', array('', 'foo')), - ); - } - - function compareArray($result, $expected) { - $this->assertSame(count($expected), count($result)); - - foreach ($expected as $key => $value) { - $this->assertArrayHasKey($key, $result); - $this->assertSame($value, $result[$key]); - } - } - -} diff --git a/apps/files_encryption/tests/hooks.php b/apps/files_encryption/tests/hooks.php deleted file mode 100644 index b63e0431187..00000000000 --- a/apps/files_encryption/tests/hooks.php +++ /dev/null @@ -1,447 +0,0 @@ - - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class Hooks - * this class provide basic hook app tests - */ -class Hooks extends TestCase { - - const TEST_ENCRYPTION_HOOKS_USER1 = "test-encryption-hooks-user1.dot"; - const TEST_ENCRYPTION_HOOKS_USER2 = "test-encryption-hooks-user2.dot"; - - /** @var \OC\Files\View */ - public $user1View; // view on /data/user1/files - /** @var \OC\Files\View */ - public $user2View; // view on /data/user2/files - /** @var \OC\Files\View */ - public $rootView; // view on /data/user - public $data; - public $filename; - public $folder; - - private static $testFiles; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // note: not using a data provider because these - // files all need to coexist to make sure the - // share keys are found properly (pattern matching) - self::$testFiles = array( - 't est.txt', - 't est_.txt', - 't est.doc.txt', - 't est(.*).txt', // make sure the regexp is escaped - 'multiple.dots.can.happen.too.txt', - 't est.' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.txt', - 't est_.' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey.txt', - 'who would upload their.shareKey', - 'user ones file.txt', - 'user ones file.txt.backup', - '.t est.txt' - ); - - // create test user - self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER1, true); - self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER2, true); - } - - protected function setUp() { - parent::setUp(); - - // set user id - self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER1); - \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER1); - - // init filesystem view - $this->user1View = new \OC\Files\View('/'. self::TEST_ENCRYPTION_HOOKS_USER1 . '/files'); - $this->user2View = new \OC\Files\View('/'. self::TEST_ENCRYPTION_HOOKS_USER2 . '/files'); - $this->rootView = new \OC\Files\View('/'); - - // init short data - $this->data = 'hats'; - $this->filename = 'enc_hooks_tests-' . $this->getUniqueID() . '.txt'; - $this->folder = 'enc_hooks_tests_folder-' . $this->getUniqueID(); - - } - - public static function tearDownAfterClass() { - // cleanup test user - \OC_User::deleteUser(self::TEST_ENCRYPTION_HOOKS_USER1); - \OC_User::deleteUser(self::TEST_ENCRYPTION_HOOKS_USER2); - - parent::tearDownAfterClass(); - } - - function testDisableHook() { - // encryption is enabled and running so we should have some user specific - // settings in oc_preferences - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*preferences` WHERE `appid` = ?'); - $result = $query->execute(array('files_encryption')); - $row = $result->fetchRow(); - $this->assertTrue(is_array($row)); - - // disabling the app should delete all user specific settings - \OCA\Files_Encryption\Hooks::preDisable(array('app' => 'files_encryption')); - - // check if user specific settings for the encryption app are really gone - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*preferences` WHERE `appid` = ?'); - $result = $query->execute(array('files_encryption')); - $row = $result->fetchRow(); - $this->assertFalse($row); - - // relogin user to initialize the encryption again - $user = \OCP\User::getUser(); - self::loginHelper($user); - - } - - function testDeleteHooks() { - - // remember files_trashbin state - $stateFilesTrashbin = \OC_App::isEnabled('files_trashbin'); - - // we want to tests with app files_trashbin disabled - \OC_App::disable('files_trashbin'); - - // make sure that the trash bin is disabled - $this->assertFalse(\OC_APP::isEnabled('files_trashbin')); - - $this->user1View->file_put_contents($this->filename, $this->data); - - // check if all keys are generated - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - - - self::logoutHelper(); - self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER2); - \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER2); - - - $this->user2View->file_put_contents($this->filename, $this->data); - - // check if all keys are generated - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - - - // create a dummy file that we can delete something outside of data/user/files - // in this case no share or file keys should be deleted - $this->rootView->file_put_contents(self::TEST_ENCRYPTION_HOOKS_USER2 . "/" . $this->filename, $this->data); - - // delete dummy file outside of data/user/files - $this->rootView->unlink(self::TEST_ENCRYPTION_HOOKS_USER2 . "/" . $this->filename); - - // all keys should still exist - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - - - // delete the file in data/user/files - // now the correspondig share and file keys from user2 should be deleted - $this->user2View->unlink($this->filename); - - // check if keys from user2 are really deleted - $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); - $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - - // but user1 keys should still exist - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - - if ($stateFilesTrashbin) { - \OC_App::enable('files_trashbin'); - } - else { - \OC_App::disable('files_trashbin'); - } - } - - function testDeleteHooksForSharedFiles() { - - self::logoutHelper(); - self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER1); - \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER1); - - // remember files_trashbin state - $stateFilesTrashbin = \OC_App::isEnabled('files_trashbin'); - - // we want to tests with app files_trashbin disabled - \OC_App::disable('files_trashbin'); - - // make sure that the trash bin is disabled - $this->assertFalse(\OC_APP::isEnabled('files_trashbin')); - - $this->user1View->file_put_contents($this->filename, $this->data); - - // check if all keys are generated - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - - // get the file info from previous created file - $fileInfo = $this->user1View->getFileInfo($this->filename); - - // check if we have a valid file info - $this->assertTrue($fileInfo instanceof \OC\Files\FileInfo); - - // share the file with user2 - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_HOOKS_USER2, \OCP\Constants::PERMISSION_ALL); - - // check if new share key exists - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); - - self::logoutHelper(); - self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER2); - \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER2); - - // user2 update the shared file - $this->user2View->file_put_contents($this->filename, $this->data); - - // keys should be stored at user1s dir, not in user2s - $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); - $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER2 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - - // delete the Shared file from user1 in data/user2/files/Shared - $result = $this->user2View->unlink($this->filename); - - $this->assertTrue($result); - - // share key for user2 from user1s home should be gone, all other keys should still exists - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - $this->assertFalse($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->filename . '/fileKey')); - - // cleanup - - self::logoutHelper(); - self::loginHelper(self::TEST_ENCRYPTION_HOOKS_USER1); - \OC_User::setUserId(self::TEST_ENCRYPTION_HOOKS_USER1); - - if ($stateFilesTrashbin) { - \OC_App::enable('files_trashbin'); - } - else { - \OC_App::disable('files_trashbin'); - } - } - - function testRenameHook() { - // create all files to make sure all keys can coexist properly - foreach (self::$testFiles as $file) { - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $file, $this->data); - - // test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - } - - foreach (self::$testFiles as $file) { - $this->doTestRenameHook($file); - } - } - - /** - * test rename operation - */ - function doTestRenameHook($filename) { - // check if keys exists - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $filename . '/fileKey')); - - // make subfolder and sub-subfolder - $this->rootView->mkdir('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder); - $this->rootView->mkdir('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder . '/' . $this->folder); - - $this->assertTrue($this->rootView->is_dir('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder . '/' . $this->folder)); - - // move the file to the sub-subfolder - $root = $this->rootView->getRoot(); - $this->rootView->chroot('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/'); - $this->rootView->rename($filename, '/' . $this->folder . '/' . $this->folder . '/' . $filename); - $this->rootView->chroot($root); - - $this->assertFalse($this->rootView->file_exists('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $filename)); - $this->assertTrue($this->rootView->file_exists('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder . '/' . $this->folder . '/' . $filename)); - - // keys should be renamed too - $this->assertFalse($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - $this->assertFalse($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $filename . '/fileKey')); - - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->folder . '/' . $this->folder . '/' - . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->folder . '/' . $this->folder . '/' - . $filename . '/fileKey')); - - // cleanup - $this->rootView->unlink('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder); - } - - function testCopyHook() { - // create all files to make sure all keys can coexist properly - foreach (self::$testFiles as $file) { - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $file, $this->data); - - // test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - } - - foreach (self::$testFiles as $file) { - $this->doTestCopyHook($file); - } - } - - /** - * test rename operation - */ - function doTestCopyHook($filename) { - // check if keys exists - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $filename . '/fileKey')); - - // make subfolder and sub-subfolder - $this->rootView->mkdir('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder); - $this->rootView->mkdir('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder . '/' . $this->folder); - - $this->assertTrue($this->rootView->is_dir('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder . '/' . $this->folder)); - - // copy the file to the sub-subfolder - \OC\Files\Filesystem::copy($filename, '/' . $this->folder . '/' . $this->folder . '/' . $filename); - - $this->assertTrue($this->rootView->file_exists('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $filename)); - $this->assertTrue($this->rootView->file_exists('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder . '/' . $this->folder . '/' . $filename)); - - // keys should be copied too - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' - . $filename . '/fileKey')); - - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->folder . '/' . $this->folder . '/' - . $filename . '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '.shareKey')); - $this->assertTrue($this->rootView->file_exists( - '/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keys/' . $this->folder . '/' . $this->folder . '/' - . $filename . '/fileKey')); - - // cleanup - $this->rootView->unlink('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $this->folder); - $this->rootView->unlink('/' . self::TEST_ENCRYPTION_HOOKS_USER1 . '/files/' . $filename); - } - - /** - * @brief replacing encryption keys during password change should be allowed - * until the user logged in for the first time - */ - public function testSetPassphrase() { - - $view = new \OC\Files\View(); - - // set user password for the first time - \OCA\Files_Encryption\Hooks::postCreateUser(array('uid' => 'newUser', 'password' => 'newUserPassword')); - - $this->assertTrue($view->file_exists(\OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/newUser.publicKey')); - $this->assertTrue($view->file_exists('newUser/files_encryption/newUser.privateKey')); - - // check if we are able to decrypt the private key - $encryptedKey = \OCA\Files_Encryption\Keymanager::getPrivateKey($view, 'newUser'); - $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, 'newUserPassword'); - $this->assertTrue(is_string($privateKey)); - - // change the password before the user logged-in for the first time, - // we can replace the encryption keys - \OCA\Files_Encryption\Hooks::setPassphrase(array('uid' => 'newUser', 'password' => 'passwordChanged')); - - $encryptedKey = \OCA\Files_Encryption\Keymanager::getPrivateKey($view, 'newUser'); - $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged'); - $this->assertTrue(is_string($privateKey)); - - // now create a files folder to simulate a already used account - $view->mkdir('/newUser/files'); - - // change the password after the user logged in, now the password should not change - \OCA\Files_Encryption\Hooks::setPassphrase(array('uid' => 'newUser', 'password' => 'passwordChanged2')); - - $encryptedKey = \OCA\Files_Encryption\Keymanager::getPrivateKey($view, 'newUser'); - $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged2'); - $this->assertFalse($privateKey); - - $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($encryptedKey, 'passwordChanged'); - $this->assertTrue(is_string($privateKey)); - - } - -} diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php deleted file mode 100644 index d1a3f1e140e..00000000000 --- a/apps/files_encryption/tests/keymanager.php +++ /dev/null @@ -1,411 +0,0 @@ - - * @author Björn Schießle - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Sam Tuke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class Keymanager - */ -class Keymanager extends TestCase { - - const TEST_USER = "test-keymanager-user.dot"; - - public $userId; - public $pass; - public static $stateFilesTrashbin; - /** - * @var \OC\Files\View - */ - public $view; - public $randomKey; - public $dataShort; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // disable file proxy by default - \OC_FileProxy::$enabled = false; - - // remember files_trashbin state - self::$stateFilesTrashbin = \OC_App::isEnabled('files_trashbin'); - - // we don't want to tests with app files_trashbin enabled - \OC_App::disable('files_trashbin'); - - // create test user - \OC_User::deleteUser(self::TEST_USER); - parent::loginHelper(self::TEST_USER, true); - } - - protected function setUp() { - parent::setUp(); - // set content for encrypting / decrypting in tests - $this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php'); - $this->dataShort = 'hats'; - $this->dataUrl = __DIR__ . '/../lib/crypt.php'; - $this->legacyData = __DIR__ . '/legacy-text.txt'; - $this->legacyEncryptedData = __DIR__ . '/legacy-encrypted-text.txt'; - $this->randomKey = \OCA\Files_Encryption\Crypt::generateKey(); - - $keypair = \OCA\Files_Encryption\Crypt::createKeypair(); - $this->genPublicKey = $keypair['publicKey']; - $this->genPrivateKey = $keypair['privateKey']; - - $this->view = new \OC\Files\View('/'); - - self::loginHelper(self::TEST_USER); - $this->userId = self::TEST_USER; - $this->pass = self::TEST_USER; - - $userHome = \OC_User::getHome($this->userId); - $this->dataDir = str_replace('/' . $this->userId, '', $userHome); - } - - function tearDown() { - $this->view->deleteAll('/' . self::TEST_USER . '/files_encryption/keys'); - parent::tearDown(); - } - - public static function tearDownAfterClass() { - \OC_FileProxy::$enabled = true; - - // cleanup test user - \OC_User::deleteUser(self::TEST_USER); - // reset app files_trashbin - if (self::$stateFilesTrashbin) { - \OC_App::enable('files_trashbin'); - } - - parent::tearDownAfterClass(); - } - - function testKeyCacheUpdate() { - $testUser = 'testKeyCacheUpdate'; - \OCA\Files_Encryption\Keymanager::setPublicKey('oldKey', $testUser); - - $this->assertSame('oldKey', - \OCA\Files_Encryption\Keymanager::getPublicKey($this->view, $testUser)); - - // update key - \OCA\Files_Encryption\Keymanager::setPublicKey('newKey', $testUser); - - $this->assertSame('newKey', - \OCA\Files_Encryption\Keymanager::getPublicKey($this->view, $testUser)); - - // cleanup - \OCA\Files_Encryption\Keymanager::deletePublicKey($this->view, $testUser); - - } - - /** - * @medium - */ - function testGetPrivateKey() { - - $key = \OCA\Files_Encryption\Keymanager::getPrivateKey($this->view, $this->userId); - - $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($key, $this->pass); - - $res = openssl_pkey_get_private($privateKey); - - $this->assertTrue(is_resource($res)); - - $sslInfo = openssl_pkey_get_details($res); - - $this->assertArrayHasKey('key', $sslInfo); - - } - - /** - * @medium - */ - function testGetPublicKey() { - - $publiceKey = \OCA\Files_Encryption\Keymanager::getPublicKey($this->view, $this->userId); - - $res = openssl_pkey_get_public($publiceKey); - - $this->assertTrue(is_resource($res)); - - $sslInfo = openssl_pkey_get_details($res); - - $this->assertArrayHasKey('key', $sslInfo); - } - - /** - * @medium - */ - function testSetFileKey() { - - $key = $this->randomKey; - - $file = 'unittest-' . $this->getUniqueID() . '.txt'; - - $util = new \OCA\Files_Encryption\Util($this->view, $this->userId); - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $this->view->file_put_contents($this->userId . '/files/' . $file, $this->dataShort); - - \OCA\Files_Encryption\Keymanager::setFileKey($this->view, $util, $file, $key); - - $this->assertTrue($this->view->file_exists('/' . $this->userId . '/files_encryption/keys/' . $file . '/fileKey')); - - // cleanup - $this->view->unlink('/' . $this->userId . '/files/' . $file); - - // change encryption proxy to previous state - \OC_FileProxy::$enabled = $proxyStatus; - } - - /** - * @medium - */ - function testSetPrivateKey() { - - $key = "dummy key"; - - \OCA\Files_Encryption\Keymanager::setPrivateKey($key, 'dummyUser'); - - $this->assertTrue($this->view->file_exists('/dummyUser/files_encryption/dummyUser.privateKey')); - - //clean up - $this->view->deleteAll('/dummyUser'); - } - - /** - * @medium - */ - function testSetPrivateSystemKey() { - - $key = "dummy key"; - $keyName = "myDummyKey"; - $encHeader = \OCA\Files_Encryption\Crypt::generateHeader(); - - \OCA\Files_Encryption\Keymanager::setPrivateSystemKey($key, $keyName); - - $this->assertTrue($this->view->file_exists('/files_encryption/' . $keyName . '.privateKey')); - - $result = \OCA\Files_Encryption\Keymanager::getPrivateSystemKey($keyName); - - $this->assertSame($encHeader . $key, $result); - - // clean up - $this->view->unlink('/files_encryption/' . $keyName.'.privateKey'); - } - - - /** - * @medium - */ - function testGetUserKeys() { - - $keys = \OCA\Files_Encryption\Keymanager::getUserKeys($this->view, $this->userId); - - $resPublic = openssl_pkey_get_public($keys['publicKey']); - - $this->assertTrue(is_resource($resPublic)); - - $sslInfoPublic = openssl_pkey_get_details($resPublic); - - $this->assertArrayHasKey('key', $sslInfoPublic); - - $privateKey = \OCA\Files_Encryption\Crypt::decryptPrivateKey($keys['privateKey'], $this->pass); - - $resPrivate = openssl_pkey_get_private($privateKey); - - $this->assertTrue(is_resource($resPrivate)); - - $sslInfoPrivate = openssl_pkey_get_details($resPrivate); - - $this->assertArrayHasKey('key', $sslInfoPrivate); - } - - /** - * @medium - */ - function testRecursiveDelShareKeysFolder() { - - $this->view->mkdir('/' . self::TEST_USER . '/files/folder1'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files/folder1/existingFile.txt', 'data'); - - // create folder structure for some dummy share key files - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/file2'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/file2'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file1'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file2'); - - // create some dummy share keys - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/user1.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/' . self::TEST_USER . '.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.test.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/test-keymanager-userxdot.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/userx.' . self::TEST_USER . '.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/' . self::TEST_USER . '.userx.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.' . self::TEST_USER . '.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/' . self::TEST_USER . '.user1.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file2/user2.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/file2/user3.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/file2/user3.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file1/user1.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user2.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user3.shareKey', 'data'); - - // recursive delete share keys from user1 and user2 - \OCA\Files_Encryption\Keymanager::delShareKey($this->view, - array('user1', 'user2', self::TEST_USER), - \OCA\Files_Encryption\Keymanager::getKeyPath($this->view, new \OCA\Files_Encryption\Util($this->view, self::TEST_USER), '/folder1'), - self::TEST_USER, - '/folder1'); - - // check if share keys from user1 and user2 are deleted - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/user1.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/file1/user1.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/file2/user2.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/subfolder/subsubfolder/file1/user1.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2/user2.shareKey')); - - // check if share keys from user3 still exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/file2/user3.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/subsubfolder/file2/user3.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/subfolder/file2/user3.shareKey')); - - // check if share keys for user or file with similar name - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.test.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/test-keymanager-userxdot.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/' . self::TEST_USER . '.userx.shareKey')); - // FIXME: this case currently cannot be distinguished, needs further fixing - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/userx.' . self::TEST_USER . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/user1.' . self::TEST_USER . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/file1/' . self::TEST_USER . '.user1.shareKey')); - - // owner key from existing file should still exists because the file is still there - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/' . self::TEST_USER . '.shareKey')); - - // cleanup - $this->view->deleteAll('/' . self::TEST_USER . '/files/folder1'); - - } - - /** - * @medium - */ - function testRecursiveDelShareKeysFile() { - - $this->view->mkdir('/' . self::TEST_USER . '/files/folder1'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files/folder1/existingFile.txt', 'data'); - - // create folder structure for some dummy share key files - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1'); - $this->view->mkdir('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt'); - - // create some dummy share keys - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/user1.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/user2.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/user3.shareKey', 'data'); - $this->view->file_put_contents('/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/' . self::TEST_USER . '.shareKey', 'data'); - - // recursive delete share keys from user1 and user2 - \OCA\Files_Encryption\Keymanager::delShareKey($this->view, - array('user1', 'user2', self::TEST_USER), - \OCA\Files_Encryption\Keymanager::getKeyPath($this->view, new \OCA\Files_Encryption\Util($this->view, self::TEST_USER), '/folder1/existingFile.txt'), - self::TEST_USER, - '/folder1/existingFile.txt'); - - - // check if share keys from user1 and user2 are deleted - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile/user1.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile/user2.shareKey')); - - // check if share keys for user3 and owner - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/' . self::TEST_USER . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_USER . '/files_encryption/keys/folder1/existingFile.txt/user3.shareKey')); - // cleanup - $this->view->deleteAll('/' . self::TEST_USER . '/files/folder1'); - - } - - function testKeySetPreperation() { - $basePath = '/' . self::TEST_USER . '/files'; - $path = '/folder1/subfolder/subsubfolder/file.txt'; - - $this->assertFalse($this->view->is_dir($basePath . '/testKeySetPreperation')); - - TestProtectedKeymanagerMethods::testKeySetPreperation($this->view, $basePath . $path); - - // check if directory structure was created - $this->assertTrue($this->view->is_dir($basePath . $path)); - - // cleanup - $this->view->deleteAll($basePath . '/folder1'); - - } -} - -/** - * dummy class to access protected methods of \OCA\Files_Encryption\Keymanager for testing - */ -class TestProtectedKeymanagerMethods extends \OCA\Files_Encryption\Keymanager { - - /** - * @param \OC\Files\View $view relative to data/ - * @param string $path - * @param string $basePath - */ - public static function testKeySetPreperation($view, $path) { - self::keySetPreparation($view, $path); - } -} diff --git a/apps/files_encryption/tests/legacy-encrypted-text.txt b/apps/files_encryption/tests/legacy-encrypted-text.txt deleted file mode 100644 index 1f5087178cd..00000000000 --- a/apps/files_encryption/tests/legacy-encrypted-text.txt +++ /dev/null @@ -1 +0,0 @@ -ð˜¯5–¡‹Ç¡i›òë³Zg§ESlÁF=Àªð \ No newline at end of file diff --git a/apps/files_encryption/tests/migration.php b/apps/files_encryption/tests/migration.php deleted file mode 100644 index 031c327d371..00000000000 --- a/apps/files_encryption/tests/migration.php +++ /dev/null @@ -1,266 +0,0 @@ - - * @author Joas Schilling - * @author Morris Jobke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -class Migration extends TestCase { - - const TEST_ENCRYPTION_MIGRATION_USER1='test_encryption_user1'; - const TEST_ENCRYPTION_MIGRATION_USER2='test_encryption_user2'; - const TEST_ENCRYPTION_MIGRATION_USER3='test_encryption_user3'; - - /** @var \OC\Files\View */ - private $view; - private $public_share_key_id; - private $recovery_key_id; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - self::loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER1, true); - self::loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER2, true); - self::loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER3, true); - } - - public static function tearDownAfterClass() { - \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER1); - \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER2); - \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER3); - parent::tearDownAfterClass(); - } - - protected function tearDown() { - if (\OC_DB::tableExists('encryption_test')) { - \OC_DB::dropTable('encryption_test'); - } - $this->assertTableNotExist('encryption_test'); - - parent::tearDown(); - } - - public function setUp() { - $this->loginHelper(self::TEST_ENCRYPTION_MIGRATION_USER1); - $this->view = new \OC\Files\View(); - $this->public_share_key_id = \OCA\Files_Encryption\Helper::getPublicShareKeyId(); - $this->recovery_key_id = \OCA\Files_Encryption\Helper::getRecoveryKeyId(); - if (\OC_DB::tableExists('encryption_test')) { - \OC_DB::dropTable('encryption_test'); - } - $this->assertTableNotExist('encryption_test'); - } - - public function checkLastIndexId() { - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (' - .' `item_type`, `item_source`, `item_target`, `share_type`,' - .' `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`,' - .' `file_target`, `token`, `parent`, `expiration`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)'); - $query->bindValue(1, 'file'); - $query->bindValue(2, 949); - $query->bindValue(3, '/949'); - $query->bindValue(4, 0); - $query->bindValue(5, 'migrate-test-user'); - $query->bindValue(6, 'migrate-test-owner'); - $query->bindValue(7, 23); - $query->bindValue(8, 1402493312); - $query->bindValue(9, 0); - $query->bindValue(10, '/migration.txt'); - $query->bindValue(11, null); - $query->bindValue(12, null); - $query->bindValue(13, null); - $this->assertEquals(1, $query->execute()); - - $this->assertNotEquals('0', \OC_DB::insertid('*PREFIX*share')); - - // cleanup - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `file_target` = ?'); - $query->bindValue(1, '/migration.txt'); - $this->assertEquals(1, $query->execute()); - - } - - public function testBrokenLastIndexId() { - - // create test table - $this->checkLastIndexId(); - \OC_DB::createDbFromStructure(__DIR__ . '/encryption_table.xml'); - $this->checkLastIndexId(); - } - - /** - * @param string $table - */ - public function assertTableNotExist($table) { - $type = \OC_Config::getValue( "dbtype", "sqlite" ); - if( $type == 'sqlite' || $type == 'sqlite3' ) { - // sqlite removes the tables after closing the DB - $this->assertTrue(true); - } else { - $this->assertFalse(\OC_DB::tableExists($table), 'Table ' . $table . ' exists.'); - } - } - - protected function createDummyShareKeys($uid) { - $this->view->mkdir($uid . '/files_encryption/share-keys/folder1/folder2/folder3'); - $this->view->mkdir($uid . '/files_encryption/share-keys/folder2/'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/folder3/file3.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/folder3/file3.' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/folder3/file3.' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/file2.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/file2.' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/folder2/file2.' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/file.1.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/file.1.' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder1/file.1.' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); - if ($this->public_share_key_id) { - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . $this->public_share_key_id . '.shareKey' , 'data'); - } - if ($this->recovery_key_id) { - $this->view->file_put_contents($uid . '/files_encryption/share-keys/folder2/file.2.1.' . $this->recovery_key_id . '.shareKey' , 'data'); - } - } - - protected function createDummyFileKeys($uid) { - $this->view->mkdir($uid . '/files_encryption/keyfiles/folder1/folder2/folder3'); - $this->view->mkdir($uid . '/files_encryption/keyfiles/folder2/'); - $this->view->file_put_contents($uid . '/files_encryption/keyfiles/folder1/folder2/folder3/file3.key' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/keyfiles/folder1/folder2/file2.key' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/keyfiles/folder1/file.1.key' , 'data'); - $this->view->file_put_contents($uid . '/files_encryption/keyfiles/folder2/file.2.1.key' , 'data'); - } - - protected function createDummyFilesInTrash($uid) { - $this->view->mkdir($uid . '/files_trashbin/share-keys'); - $this->view->mkdir($uid . '/files_trashbin/share-keys/folder1.d7437648723'); - $this->view->file_put_contents($uid . '/files_trashbin/share-keys/file1.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey.d5457864' , 'data'); - $this->view->file_put_contents($uid . '/files_trashbin/share-keys/file1.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey.d5457864' , 'data'); - $this->view->file_put_contents($uid . '/files_trashbin/share-keys/folder1.d7437648723/file2.' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); - - $this->view->mkdir($uid . '/files_trashbin/keyfiles'); - $this->view->mkdir($uid . '/files_trashbin/keyfiles/folder1.d7437648723'); - $this->view->file_put_contents($uid . '/files_trashbin/keyfiles/file1.key.d5457864' , 'data'); - $this->view->file_put_contents($uid . '/files_trashbin/keyfiles/folder1.d7437648723/file2.key' , 'data'); - } - - protected function createDummySystemWideKeys() { - $this->view->mkdir('owncloud_private_key'); - $this->view->file_put_contents('owncloud_private_key/systemwide_1.private.key', 'data'); - $this->view->file_put_contents('owncloud_private_key/systemwide_2.private.key', 'data'); - } - - public function testMigrateToNewFolderStructure() { - - // go back to the state before migration - $this->view->rename('/files_encryption/public_keys', '/public-keys'); - $this->view->rename('/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.publicKey', '/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.public.key'); - $this->view->rename('/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.publicKey', '/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.public.key'); - $this->view->rename('/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.publicKey', '/public-keys/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.public.key'); - $this->view->deleteAll(self::TEST_ENCRYPTION_MIGRATION_USER1 . '/files_encryption/keys'); - $this->view->deleteAll(self::TEST_ENCRYPTION_MIGRATION_USER2 . '/files_encryption/keys'); - $this->view->deleteAll(self::TEST_ENCRYPTION_MIGRATION_USER3 . '/files_encryption/keys'); - $this->view->rename(self::TEST_ENCRYPTION_MIGRATION_USER1 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.privateKey', - self::TEST_ENCRYPTION_MIGRATION_USER1 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.private.key'); - $this->view->rename(self::TEST_ENCRYPTION_MIGRATION_USER2 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.privateKey', - self::TEST_ENCRYPTION_MIGRATION_USER2 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.private.key'); - $this->view->rename(self::TEST_ENCRYPTION_MIGRATION_USER3 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.privateKey', - self::TEST_ENCRYPTION_MIGRATION_USER3 . '/files_encryption/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.private.key'); - - $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER1); - $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER2); - $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER3); - - $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER1); - $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER2); - $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER3); - - $this->createDummyFilesInTrash(self::TEST_ENCRYPTION_MIGRATION_USER2); - - // no user for system wide mount points - $this->createDummyFileKeys(''); - $this->createDummyShareKeys(''); - - $this->createDummySystemWideKeys(); - - $m = new \OCA\Files_Encryption\Migration(); - $m->reorganizeFolderStructure(); - - // TODO Verify that all files at the right place - $this->assertTrue($this->view->file_exists('/files_encryption/public_keys/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.publicKey')); - $this->assertTrue($this->view->file_exists('/files_encryption/public_keys/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.publicKey')); - $this->assertTrue($this->view->file_exists('/files_encryption/public_keys/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.publicKey')); - $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER1); - $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER2); - $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER3); - // system wide keys - $this->verifyNewKeyPath(''); - // trash - $this->verifyFilesInTrash(self::TEST_ENCRYPTION_MIGRATION_USER2); - - } - - protected function verifyFilesInTrash($uid) { - // share keys - $this->view->file_exists($uid . '/files_trashbin/keys/file1.d5457864/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey.d5457864' , 'data'); - $this->view->file_exists($uid . '/files_trashbin/keys/file1.d5457864/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey.d5457864' , 'data'); - $this->view->file_exists($uid . '/files_trashbin/keys/folder1.d7437648723/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); - - // file keys - $this->view->file_exists($uid . '/files_trashbin/keys/file1.d5457864/fileKey.d5457864' , 'data'); - $this->view->file_exists($uid . '/files_trashbin/keyfiles/file1.d5457864/fileKey.d5457864' , 'data'); - $this->view->file_exists($uid . '/files_trashbin/keyfiles/folder1.d7437648723/file2/fileKey' , 'data'); - } - - protected function verifyNewKeyPath($uid) { - // private key - if ($uid !== '') { - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/' . $uid . '.privateKey')); - } - // file keys - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/fileKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/file2/fileKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/file.1/fileKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/fileKey')); - // share keys - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); - if ($this->public_share_key_id) { - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . $this->public_share_key_id . '.shareKey')); - } - if ($this->recovery_key_id) { - $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/folder2/file.2.1/' . $this->recovery_key_id . '.shareKey')); - } - } -} diff --git a/apps/files_encryption/tests/proxy.php b/apps/files_encryption/tests/proxy.php deleted file mode 100644 index 59fcb896a2b..00000000000 --- a/apps/files_encryption/tests/proxy.php +++ /dev/null @@ -1,154 +0,0 @@ - - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Sam Tuke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class Proxy - * this class provide basic proxy app tests - */ -class Proxy extends TestCase { - - const TEST_ENCRYPTION_PROXY_USER1 = "test-proxy-user1"; - - public $userId; - public $pass; - /** - * @var \OC\Files\View - */ - public $view; // view in /data/user/files - public $rootView; // view on /data/user - public $data; - public $dataLong; - public $filename; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // create test user - self::loginHelper(self::TEST_ENCRYPTION_PROXY_USER1, true); - } - - protected function setUp() { - parent::setUp(); - - // set user id - \OC_User::setUserId(self::TEST_ENCRYPTION_PROXY_USER1); - $this->userId = self::TEST_ENCRYPTION_PROXY_USER1; - $this->pass = self::TEST_ENCRYPTION_PROXY_USER1; - - // init filesystem view - $this->view = new \OC\Files\View('/'. self::TEST_ENCRYPTION_PROXY_USER1 . '/files'); - $this->rootView = new \OC\Files\View('/'. self::TEST_ENCRYPTION_PROXY_USER1 ); - - // init short data - $this->data = 'hats'; - $this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php'); - $this->filename = 'enc_proxy_tests-' . $this->getUniqueID() . '.txt'; - - } - - public static function tearDownAfterClass() { - // cleanup test user - \OC_User::deleteUser(self::TEST_ENCRYPTION_PROXY_USER1); - - parent::tearDownAfterClass(); - } - - /** - * @medium - * test if postFileSize returns the unencrypted file size - */ - function testPostFileSize() { - - $this->view->file_put_contents($this->filename, $this->dataLong); - $size = strlen($this->dataLong); - - \OC_FileProxy::$enabled = false; - - $encryptedSize = $this->view->filesize($this->filename); - - \OC_FileProxy::$enabled = true; - - $unencryptedSize = $this->view->filesize($this->filename); - - $this->assertTrue($encryptedSize > $unencryptedSize); - $this->assertSame($size, $unencryptedSize); - - // cleanup - $this->view->unlink($this->filename); - - } - - function testPostFileSizeWithDirectory() { - - $this->view->file_put_contents($this->filename, $this->data); - - \OC_FileProxy::$enabled = false; - - // get root size, must match the file's unencrypted size - $unencryptedSize = $this->view->filesize(''); - - \OC_FileProxy::$enabled = true; - - $encryptedSize = $this->view->filesize(''); - - $this->assertTrue($encryptedSize !== $unencryptedSize); - - // cleanup - $this->view->unlink($this->filename); - - } - - /** - * @dataProvider isExcludedPathProvider - */ - function testIsExcludedPath($path, $expected) { - $this->view->mkdir(dirname($path)); - $this->view->file_put_contents($path, "test"); - - $result = \Test_Helper::invokePrivate(new \OCA\Files_Encryption\Proxy(), 'isExcludedPath', array($path)); - $this->assertSame($expected, $result); - - $this->view->deleteAll(dirname($path)); - - } - - public function isExcludedPathProvider() { - return array( - array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/files/test.txt', false), - array (self::TEST_ENCRYPTION_PROXY_USER1 . '/files/test.txt', false), - array ('/files/test.txt', true), - array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/files/versions/test.txt', false), - array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/files_versions/test.txt', false), - array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/files_trashbin/test.txt', true), - array ('/' . self::TEST_ENCRYPTION_PROXY_USER1 . '/file/test.txt', true), - ); - } - -} - diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php deleted file mode 100755 index 2a9f0359c91..00000000000 --- a/apps/files_encryption/tests/share.php +++ /dev/null @@ -1,1392 +0,0 @@ - - * @author Björn Schießle - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Lukas Reschke - * @author Morris Jobke - * @author Robin Appelman - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class Share - */ -class Share extends TestCase { - - const TEST_ENCRYPTION_SHARE_USER1 = "test-share-user1"; - const TEST_ENCRYPTION_SHARE_USER2 = "test-share-user2"; - const TEST_ENCRYPTION_SHARE_USER3 = "test-share-user3"; - const TEST_ENCRYPTION_SHARE_USER4 = "test-share-user4"; - const TEST_ENCRYPTION_SHARE_GROUP1 = "test-share-group1"; - - public $stateFilesTrashbin; - public $filename; - public $dataShort; - /** - * @var \OC\Files\View - */ - public $view; - public $folder1; - public $subfolder; - public $subsubfolder; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // enable resharing - \OC::$server->getAppConfig()->setValue('core', 'shareapi_allow_resharing', 'yes'); - - // register share hooks - \OC::registerShareHooks(); - \OCA\Files_Sharing\Helper::registerHooks(); - - // create users - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1, true); - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2, true); - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3, true); - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER4, true); - - // create group and assign users - \OC_Group::createGroup(self::TEST_ENCRYPTION_SHARE_GROUP1); - \OC_Group::addToGroup(self::TEST_ENCRYPTION_SHARE_USER3, self::TEST_ENCRYPTION_SHARE_GROUP1); - \OC_Group::addToGroup(self::TEST_ENCRYPTION_SHARE_USER4, self::TEST_ENCRYPTION_SHARE_GROUP1); - } - - protected function setUp() { - parent::setUp(); - - $this->dataShort = 'hats'; - $this->view = new \OC\Files\View('/'); - - $this->folder1 = '/folder1'; - $this->subfolder = '/subfolder1'; - $this->subsubfolder = '/subsubfolder1'; - - $this->filename = 'share-tmp.test'; - - // remember files_trashbin state - $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin'); - - // we don't want to tests with app files_trashbin enabled - \OC_App::disable('files_trashbin'); - - // login as first user - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - $this->createMocks(); - } - - protected function tearDown() { - // reset app files_trashbin - if ($this->stateFilesTrashbin) { - \OC_App::enable('files_trashbin'); - } else { - \OC_App::disable('files_trashbin'); - } - - $this->restoreHttpHelper(); - - parent::tearDown(); - } - - public static function tearDownAfterClass() { - // clean group - \OC_Group::deleteGroup(self::TEST_ENCRYPTION_SHARE_GROUP1); - - // cleanup users - \OC_User::deleteUser(self::TEST_ENCRYPTION_SHARE_USER1); - \OC_User::deleteUser(self::TEST_ENCRYPTION_SHARE_USER2); - \OC_User::deleteUser(self::TEST_ENCRYPTION_SHARE_USER3); - \OC_User::deleteUser(self::TEST_ENCRYPTION_SHARE_USER4); - - parent::tearDownAfterClass(); - } - - private function createMocks() { - $config = $this->getMockBuilder('\OCP\IConfig') - ->disableOriginalConstructor()->getMock(); - $clientService = $this->getMock('\OCP\Http\Client\IClientService'); - $httpHelperMock = $this->getMockBuilder('\OC\HTTPHelper') - ->setConstructorArgs([$config, $clientService]) - ->getMock(); - $httpHelperMock->expects($this->any())->method('post')->with($this->anything())->will($this->returnValue(array('success' => true, 'result' => "{'ocs' : { 'meta' : { 'statuscode' : 100 }}}"))); - - $this->registerHttpHelper($httpHelperMock); - } - - /** - * Register an http helper mock for testing purposes. - * @param $httpHelper http helper mock - */ - private function registerHttpHelper($httpHelper) { - $this->oldHttpHelper = \OC::$server->query('HTTPHelper'); - \OC::$server->registerService('HTTPHelper', function ($c) use ($httpHelper) { - return $httpHelper; - }); - } - - /** - * Restore the original http helper - */ - private function restoreHttpHelper() { - $oldHttpHelper = $this->oldHttpHelper; - \OC::$server->registerService('HTTPHelper', function ($c) use ($oldHttpHelper) { - return $oldHttpHelper; - }); - } - - /** - * @medium - */ - function testDeclineServer2ServerShare() { - - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // get the file info from previous created file - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - - // share the file - $token = \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, '', \OCP\Constants::PERMISSION_ALL); - $this->assertTrue(is_string($token)); - - $publicShareKeyId = \OC::$server->getConfig()->getAppValue('files_encryption', 'publicShareKeyId'); - - // check if share key for public exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $publicShareKeyId . '.shareKey')); - - // manipulate share - $query = \OC::$server->getDatabaseConnection()->prepare('UPDATE `*PREFIX*share` SET `share_type` = ?, `share_with` = ? WHERE `token`=?'); - $this->assertTrue($query->execute(array(\OCP\Share::SHARE_TYPE_REMOTE, 'foo@bar', $token))); - - // check if share key not exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $publicShareKeyId . '.shareKey')); - - - $query = \OC::$server->getDatabaseConnection()->prepare('SELECT * FROM `*PREFIX*share` WHERE `token`=?'); - $query->execute(array($token)); - - $share = $query->fetch(); - - $_POST['token'] = $token; - $s2s = new \OCA\Files_Sharing\API\Server2Server(); - $s2s->declineShare(array('id' => $share['id'])); - - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $publicShareKeyId . '.shareKey')); - - } - - /** - * @medium - * @param bool $withTeardown - */ - function testShareFile($withTeardown = true) { - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get the file info from previous created file - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // check if the unencrypted file size is stored - $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); - - // re-enable the file proxy - \OC_FileProxy::$enabled = $proxyStatus; - - // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // check if share key for user1 exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // login as user1 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - - // get file contents - $retrievedCryptedFile = $this->view->file_get_contents( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); - - // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - // cleanup - if ($withTeardown) { - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // unshare the file - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); - $this->view->unlink($this->filename); - $this->view->chroot('/'); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - } - } - - function testDownloadVersions() { - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - $rootView = new \OC\Files\View(); - - // save file twice to create a new version - \OC\Files\Filesystem::file_put_contents($this->filename, "revision1"); - \OCA\Files_Versions\Storage::store($this->filename); - \OC\Files\Filesystem::file_put_contents($this->filename, "revision2"); - - // check if the owner can retrieve the correct version - $versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_ENCRYPTION_SHARE_USER1, $this->filename); - $this->assertSame(1, count($versions)); - $version = reset($versions); - $versionUser1 = $rootView->file_get_contents('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_versions/' . $this->filename . '.v' . $version['version']); - $this->assertSame('revision1', $versionUser1); - - // share the file - $fileInfo = \OC\Files\Filesystem::getFileInfo($this->filename); - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - $this->assertTrue(\OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL)); - - // try to download the version as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - $versionUser2 = $rootView->file_get_contents('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_versions/' . $this->filename . '.v' . $version['version']); - $this->assertSame('revision1', $versionUser2); - - //cleanup - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2); - \OC\Files\Filesystem::unlink($this->filename); - } - - /** - * @medium - * @param bool $withTeardown - */ - function testReShareFile($withTeardown = true) { - $this->testShareFile(false); - - // login as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - - // get the file info - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); - - // share the file with user3 - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER3, \OCP\Constants::PERMISSION_ALL); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // check if share key for user2 exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - - // login as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3); - - // get file contents - $retrievedCryptedFile = $this->view->file_get_contents( - '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->filename); - - // check if data is the same as previously written - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - // cleanup - if ($withTeardown) { - - // login as user1 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - - // unshare the file with user2 - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER3); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - - // unshare the file with user1 - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); - $this->view->unlink($this->filename); - $this->view->chroot('/'); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - } - } - - /** - * @medium - * @param bool $withTeardown - * @return array - */ - function testShareFolder($withTeardown = true) { - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // create folder structure - $this->view->mkdir('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1); - $this->view->mkdir( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder); - $this->view->mkdir( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder - . $this->subsubfolder); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get the file info from previous created folder - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // re-enable the file proxy - \OC_FileProxy::$enabled = $proxyStatus; - - // share the folder with user1 - \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // check if share key for user1 exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // login as user1 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - - // get file contents - $retrievedCryptedFile = $this->view->file_get_contents( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' . $this->filename); - - // check if data is the same - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - // cleanup - if ($withTeardown) { - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // unshare the folder with user1 - \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' - . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files'); - $this->view->unlink($this->folder1); - $this->view->chroot('/'); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' - . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - } - - return $fileInfo; - } - - /** - * @medium - * @param bool $withTeardown - */ - function testReShareFolder($withTeardown = true) { - $fileInfoFolder1 = $this->testShareFolder(false); - - // login as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get the file info from previous created folder - $fileInfoSubFolder = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 - . $this->subfolder); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfoSubFolder); - - // re-enable the file proxy - \OC_FileProxy::$enabled = $proxyStatus; - - // share the file with user3 - \OCP\Share::shareItem('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER3, \OCP\Constants::PERMISSION_ALL); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // check if share key for user3 exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - - // login as user3 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3); - - // get file contents - $retrievedCryptedFile = $this->view->file_get_contents( - '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->subfolder - . $this->subsubfolder . '/' . $this->filename); - - // check if data is the same - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - // get the file info - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->subfolder - . $this->subsubfolder . '/' . $this->filename); - - // check if we have fileInfos - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // share the file with user3 - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER4, \OCP\Constants::PERMISSION_ALL); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // check if share key for user3 exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); - - // login as user3 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER4); - - // get file contents - $retrievedCryptedFile = $this->view->file_get_contents( - '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '/files/' . $this->filename); - - // check if data is the same - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - // cleanup - if ($withTeardown) { - - // login as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3); - - // unshare the file with user3 - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER4); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' - . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); - - // login as user1 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - - // unshare the folder with user2 - \OCP\Share::unshare('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER3); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' - . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // unshare the folder1 with user1 - \OCP\Share::unshare('folder', $fileInfoFolder1['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' - . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files'); - $this->view->unlink($this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename); - $this->view->chroot('/'); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys' - . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - } - } - - - function testRemoteShareFile() { - // login as admin - //self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get the file info from previous created file - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // check if the unencrypted file size is stored - $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); - - // re-enable the file proxy - \OC_FileProxy::$enabled = $proxyStatus; - - // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_REMOTE, 'user1@server1', \OCP\Constants::PERMISSION_ALL); - - $publicShareKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'publicShareKeyId'); - - // check if share key for public exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $publicShareKeyId . '.shareKey')); - - // unshare the file - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_REMOTE, 'user1@server1'); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $publicShareKeyId . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); - $this->view->unlink($this->filename); - $this->view->chroot('/'); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - } - - function testPublicShareFile() { - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get the file info from previous created file - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // check if the unencrypted file size is stored - $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); - - // re-enable the file proxy - \OC_FileProxy::$enabled = $proxyStatus; - - // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, false, \OCP\Constants::PERMISSION_ALL); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - $publicShareKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'publicShareKeyId'); - - // check if share key for public exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $publicShareKeyId . '.shareKey')); - - // some hacking to simulate public link - //$GLOBALS['app'] = 'files_sharing'; - //$GLOBALS['fileOwner'] = self::TEST_ENCRYPTION_SHARE_USER1; - self::logoutHelper(); - - // get file contents - $retrievedCryptedFile = file_get_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - // tear down - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // unshare the file - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $publicShareKeyId . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); - $this->view->unlink($this->filename); - $this->view->chroot('/'); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - } - - /** - * @medium - */ - function testShareFileWithGroup() { - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get the file info from previous created file - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // check if the unencrypted file size is stored - $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); - - // re-enable the file proxy - \OC_FileProxy::$enabled = $proxyStatus; - - // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // check if share key for user2 and user3 exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); - - // login as user1 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3); - - // get file contents - $retrievedCryptedFile = $this->view->file_get_contents( - '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '/files/' . $this->filename); - - // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // unshare the file - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); - $this->view->unlink($this->filename); - $this->view->chroot('/'); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - - } - - /** - * @large - */ - function testRecoveryFile() { - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - \OCA\Files_Encryption\Helper::adminEnableRecovery(null, 'test123'); - $recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId'); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - $util = new \OCA\Files_Encryption\Util(new \OC\Files\View('/'), self::TEST_ENCRYPTION_SHARE_USER1); - - // check if recovery password match - $this->assertTrue($util->checkRecoveryPassword('test123')); - - // enable recovery for admin - $this->assertTrue($util->setRecoveryForUser(1)); - $util->addRecoveryKeys(); - - // create folder structure - $this->view->mkdir('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1); - $this->view->mkdir( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder); - $this->view->mkdir( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1 . $this->subfolder - . $this->subsubfolder); - - // save file with content - $cryptedFile1 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - $cryptedFile2 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile1); - $this->assertInternalType('int', $cryptedFile2); - - // check if share key for admin and recovery exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - - // disable recovery for admin - $this->assertTrue($util->setRecoveryForUser(0)); - - // remove all recovery keys - $util->removeRecoveryKeys('/'); - - // check if share key for recovery not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - - // enable recovery for admin - $this->assertTrue($util->setRecoveryForUser(1)); - - // add recovery keys again - $util->addRecoveryKeys('/'); - - // check if share key for admin and recovery exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); - $this->view->unlink($this->filename); - $this->view->unlink($this->folder1); - $this->view->chroot('/'); - - // check if share key for recovery not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - - $this->assertTrue(\OCA\Files_Encryption\Helper::adminEnableRecovery(null, 'test123')); - $this->assertTrue(\OCA\Files_Encryption\Helper::adminDisableRecovery('test123')); - $this->assertEquals(0, \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryAdminEnabled')); - } - - /** - * @large - */ - function testRecoveryForUser() { - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - $result = \OCA\Files_Encryption\Helper::adminEnableRecovery(null, 'test123'); - $this->assertTrue($result); - - $recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId'); - - // login as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - - $util = new \OCA\Files_Encryption\Util(new \OC\Files\View('/'), self::TEST_ENCRYPTION_SHARE_USER2); - - // enable recovery for admin - $this->assertTrue($util->setRecoveryForUser(1)); - - // add recovery keys for existing files (e.g. the auto-generated welcome.txt) - $util->addRecoveryKeys(); - - // create folder structure - $this->view->mkdir('/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1); - $this->view->mkdir( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder); - $this->view->mkdir( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder - . $this->subsubfolder); - - // save file with content - $cryptedFile1 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER2. '/files/' . $this->filename, $this->dataShort); - $cryptedFile2 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' - . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile1); - $this->assertInternalType('int', $cryptedFile2); - - // check if share key for user and recovery exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // change password - \OC_User::setPassword(self::TEST_ENCRYPTION_SHARE_USER2, 'test', 'test123'); - $params = array('uid' => self::TEST_ENCRYPTION_SHARE_USER2, - 'password' => 'test', - 'recoveryPassword' => 'test123'); - \OCA\Files_Encryption\Hooks::setPassphrase($params); - - // login as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2, false, 'test'); - - // get file contents - $retrievedCryptedFile1 = file_get_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); - $retrievedCryptedFile2 = file_get_contents( - 'crypt:///' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename); - - // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retrievedCryptedFile1); - $this->assertEquals($this->dataShort, $retrievedCryptedFile2); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/'); - $this->view->unlink($this->folder1); - $this->view->unlink($this->filename); - $this->view->chroot('/'); - - // check if share key for user and recovery exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files_encryption/keys/' . $this->folder1 - . $this->subfolder . $this->subsubfolder . '/' - . $this->filename . '/' . $recoveryKeyId . '.shareKey')); - - // enable recovery for admin - $this->assertTrue($util->setRecoveryForUser(0)); - - \OCA\Files_Encryption\Helper::adminDisableRecovery('test123'); - $this->assertEquals(0, \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryAdminEnabled')); - - //clean up, reset passwords - \OC_User::setPassword(self::TEST_ENCRYPTION_SHARE_USER2, self::TEST_ENCRYPTION_SHARE_USER2, 'test123'); - $params = array('uid' => self::TEST_ENCRYPTION_SHARE_USER2, - 'password' => self::TEST_ENCRYPTION_SHARE_USER2, - 'recoveryPassword' => 'test123'); - \OCA\Files_Encryption\Hooks::setPassphrase($params); - } - - /** - * @medium - */ - function testFailShareFile() { - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // get the file info from previous created file - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // check if the unencrypted file size is stored - $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); - - // break users public key - $this->view->rename(\OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey', - \OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey_backup'); - - // re-enable the file proxy - \OC_FileProxy::$enabled = $proxyStatus; - - // share the file - try { - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL); - } catch (\Exception $e) { - $this->assertEquals(0, strpos($e->getMessage(), "Following users are not set up for encryption")); - } - - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // check if share key for user1 not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - - // disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // break user1 public key - $this->view->rename( - \OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey_backup', - \OCA\Files_Encryption\Keymanager::getPublicKeyPath() . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.publicKey'); - - // remove share file - $this->view->unlink('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 - . '.shareKey'); - - // re-enable the file proxy - \OC_FileProxy::$enabled = $proxyStatus; - - // unshare the file with user1 - \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1); - - // check if share key not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - - // cleanup - $this->view->chroot('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/'); - $this->view->unlink($this->filename); - $this->view->chroot('/'); - } - - - /** - * test rename a shared file mount point - */ - function testRename() { - - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // get the file info from previous created file - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); - - // check if share key for user1 and user2 exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - - // login as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER2); - - $this->assertTrue($this->view->file_exists('/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename)); - - // get file contents - $retrievedCryptedFile = $this->view->file_get_contents( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); - - // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - \OC\Files\Filesystem::mkdir($this->folder1); - - // move the file to a subfolder - \OC\Files\Filesystem::rename($this->filename, $this->folder1 . $this->filename); - - // check if we can read the moved file - $retrievedRenamedFile = $this->view->file_get_contents( - '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->folder1 . $this->filename); - - // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retrievedRenamedFile); - - // check if share key for user2 and user1 still exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // cleanup - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - $this->view->unlink('/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - } - - function testRenameGroupShare() { - // login as admin - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // save file with content - $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); - - // test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // get the file info from previous created file - $fileInfo = $this->view->getFileInfo( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); - - // check if we have a valid file info - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_ENCRYPTION_SHARE_GROUP1, \OCP\Constants::PERMISSION_ALL); - - // check if share key for user1, user3 and user4 exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); - - - // login as user2 - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER3); - - $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); - - // get file contents - $retrievedCryptedFile = \OC\Files\Filesystem::file_get_contents($this->filename); - - // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retrievedCryptedFile); - - \OC\Files\Filesystem::mkdir($this->folder1); - - // move the file to a subfolder - \OC\Files\Filesystem::rename($this->filename, $this->folder1 . $this->filename); - - // check if we can read the moved file - $retrievedRenamedFile = \OC\Files\Filesystem::file_get_contents($this->folder1 . $this->filename); - - // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retrievedRenamedFile); - - // check if share key for user1, user3 and user4 still exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/keys/' - . $this->filename . '/' . self::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); - - // cleanup - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - \OC\Files\Filesystem::unlink($this->filename); - } - - /** - * test if additional share keys are added if we move a folder to a shared parent - * @medium - */ - function testMoveFolder() { - - $view = new \OC\Files\View('/' . self::TEST_ENCRYPTION_SHARE_USER1); - - $filename = '/tmp-' . $this->getUniqueID(); - $folder = '/folder' . $this->getUniqueID(); - - \OC\Files\Filesystem::mkdir($folder); - - // Save long data as encrypted file using stream wrapper - $cryptedFile = \OC\Files\Filesystem::file_put_contents($folder . $filename, $this->dataShort); - - // Test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // Get file decrypted contents - $decrypt = \OC\Files\Filesystem::file_get_contents($folder . $filename); - - $this->assertEquals($this->dataShort, $decrypt); - - $newFolder = '/newfolder/subfolder' . $this->getUniqueID(); - \OC\Files\Filesystem::mkdir('/newfolder'); - - // get the file info from previous created file - $fileInfo = \OC\Files\Filesystem::getFileInfo('/newfolder'); - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // share the folder - \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); - - \OC\Files\Filesystem::rename($folder, $newFolder); - - // Get file decrypted contents - $newDecrypt = \OC\Files\Filesystem::file_get_contents($newFolder . $filename); - $this->assertEquals($this->dataShort, $newDecrypt); - - // check if additional share key for user2 exists - $this->assertTrue($view->file_exists('files_encryption/keys' . $newFolder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // check that old keys were removed/moved properly - $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // tear down - \OC\Files\Filesystem::unlink($newFolder); - \OC\Files\Filesystem::unlink('/newfolder'); - } - - function usersProvider() { - return array( - // test as owner - array(self::TEST_ENCRYPTION_SHARE_USER1), - // test as share receiver - array(self::TEST_ENCRYPTION_SHARE_USER2), - ); - } - - /** - * @dataProvider usersProvider - */ - function testMoveFileToFolder($userId) { - $view = new \OC\Files\View('/' . self::TEST_ENCRYPTION_SHARE_USER1); - - $filename = '/tmp-' . $this->getUniqueID(); - $folder = '/folder' . $this->getUniqueID(); - - \OC\Files\Filesystem::mkdir($folder); - - // Save long data as encrypted file using stream wrapper - $cryptedFile = \OC\Files\Filesystem::file_put_contents($folder . $filename, $this->dataShort); - - // Test that data was successfully written - $this->assertInternalType('int', $cryptedFile); - - // Get file decrypted contents - $decrypt = \OC\Files\Filesystem::file_get_contents($folder . $filename); - - $this->assertEquals($this->dataShort, $decrypt); - - $subFolder = $folder . '/subfolder' . $this->getUniqueID(); - \OC\Files\Filesystem::mkdir($subFolder); - - // get the file info from previous created file - $fileInfo = \OC\Files\Filesystem::getFileInfo($folder); - $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - - // share the folder - \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_ENCRYPTION_SHARE_USER2, \OCP\Constants::PERMISSION_ALL); - - // check that the share keys exist - $this->assertTrue($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // move the file into the subfolder as the test user - self::loginHelper($userId); - \OC\Files\Filesystem::rename($folder . $filename, $subFolder . $filename); - self::loginHelper(self::TEST_ENCRYPTION_SHARE_USER1); - - // Get file decrypted contents - $newDecrypt = \OC\Files\Filesystem::file_get_contents($subFolder . $filename); - $this->assertEquals($this->dataShort, $newDecrypt); - - // check if additional share key for user2 exists - $this->assertTrue($view->file_exists('files_encryption/keys' . $subFolder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertTrue($view->file_exists('files_encryption/keys' . $subFolder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // check that old keys were removed/moved properly - $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey')); - $this->assertFalse($view->file_exists('files_encryption/keys' . $folder . '/' . $filename . '/' . self::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); - - // tear down - \OC\Files\Filesystem::unlink($subFolder); - \OC\Files\Filesystem::unlink($folder); - } - -} diff --git a/apps/files_encryption/tests/stream.php b/apps/files_encryption/tests/stream.php deleted file mode 100644 index 34e4ee6a32a..00000000000 --- a/apps/files_encryption/tests/stream.php +++ /dev/null @@ -1,232 +0,0 @@ - - * @author Christopher Schäpers - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Thomas Müller - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class Stream - * this class provide basic stream tests - */ -class Stream extends TestCase { - - const TEST_ENCRYPTION_STREAM_USER1 = "test-stream-user1"; - - public $userId; - public $pass; - /** - * @var \OC\Files\View - */ - public $view; - public $dataShort; - public $stateFilesTrashbin; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // create test user - self::loginHelper(self::TEST_ENCRYPTION_STREAM_USER1, true); - } - - protected function setUp() { - parent::setUp(); - - // set user id - \OC_User::setUserId(self::TEST_ENCRYPTION_STREAM_USER1); - $this->userId = self::TEST_ENCRYPTION_STREAM_USER1; - $this->pass = self::TEST_ENCRYPTION_STREAM_USER1; - - // init filesystem view - $this->view = new \OC\Files\View('/'); - - // init short data - $this->dataShort = 'hats'; - - // remember files_trashbin state - $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin'); - - // we don't want to tests with app files_trashbin enabled - \OC_App::disable('files_trashbin'); - } - - protected function tearDown() { - // reset app files_trashbin - if ($this->stateFilesTrashbin) { - \OC_App::enable('files_trashbin'); - } - else { - \OC_App::disable('files_trashbin'); - } - - parent::tearDown(); - } - - public static function tearDownAfterClass() { - // cleanup test user - \OC_User::deleteUser(self::TEST_ENCRYPTION_STREAM_USER1); - - parent::tearDownAfterClass(); - } - - function testStreamOptions() { - $filename = '/tmp-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - // Save short data as encrypted file using stream wrapper - $cryptedFile = $view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - $handle = $view->fopen($filename, 'r'); - - // check if stream is at position zero - $this->assertEquals(0, ftell($handle)); - - // set stream options - $this->assertTrue(flock($handle, LOCK_SH)); - $this->assertTrue(flock($handle, LOCK_UN)); - - fclose($handle); - - // tear down - $view->unlink($filename); - } - - function testStreamSetBlocking() { - $filename = '/tmp-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - // Save short data as encrypted file using stream wrapper - $cryptedFile = $view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - $handle = $view->fopen($filename, 'r'); - - - if (\OC_Util::runningOnWindows()) { - fclose($handle); - $view->unlink($filename); - $this->markTestSkipped('[Windows] stream_set_blocking() does not work as expected on Windows.'); - } - - // set stream options - $this->assertTrue(stream_set_blocking($handle, 1)); - - fclose($handle); - - // tear down - $view->unlink($filename); - } - - /** - * @medium - */ - function testStreamSetTimeout() { - $filename = '/tmp-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - // Save short data as encrypted file using stream wrapper - $cryptedFile = $view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - $handle = $view->fopen($filename, 'r'); - - // set stream options - $this->assertFalse(stream_set_timeout($handle, 1)); - - fclose($handle); - - // tear down - $view->unlink($filename); - } - - function testStreamSetWriteBuffer() { - $filename = '/tmp-' . $this->getUniqueID(); - $view = new \OC\Files\View('/' . $this->userId . '/files'); - - // Save short data as encrypted file using stream wrapper - $cryptedFile = $view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - $handle = $view->fopen($filename, 'r'); - - // set stream options - $this->assertEquals(0, stream_set_write_buffer($handle, 1024)); - - fclose($handle); - - // tear down - $view->unlink($filename); - } - - /** - * @medium - * test if stream wrapper can read files outside from the data folder - */ - function testStreamFromLocalFile() { - - $filename = '/' . $this->userId . '/files/' . 'tmp-' . $this->getUniqueID().'.txt'; - - $tmpFilename = "/tmp/" . $this->getUniqueID() . ".txt"; - - // write an encrypted file - $cryptedFile = $this->view->file_put_contents($filename, $this->dataShort); - - // Test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // create a copy outside of the data folder in /tmp - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - $encryptedContent = $this->view->file_get_contents($filename); - \OC_FileProxy::$enabled = $proxyStatus; - - file_put_contents($tmpFilename, $encryptedContent); - - \OCA\Files_Encryption\Helper::addTmpFileToMapper($tmpFilename, $filename); - - // try to read the file from /tmp - $handle = fopen("crypt://".$tmpFilename, "r"); - $contentFromTmpFile = stream_get_contents($handle); - - // check if it was successful - $this->assertEquals($this->dataShort, $contentFromTmpFile); - - fclose($handle); - - // clean up - unlink($tmpFilename); - $this->view->unlink($filename); - - } -} diff --git a/apps/files_encryption/tests/testcase.php b/apps/files_encryption/tests/testcase.php deleted file mode 100644 index c03147fabcd..00000000000 --- a/apps/files_encryption/tests/testcase.php +++ /dev/null @@ -1,111 +0,0 @@ - - * @author Joas Schilling - * @author Morris Jobke - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class TestCase - */ -abstract class TestCase extends \Test\TestCase { - - /** - * @param string $user - * @param bool $create - * @param bool $password - */ - public static function loginHelper($user, $create = false, $password = false, $loadEncryption = true) { - if ($create) { - try { - \OC_User::createUser($user, $user); - } catch (\Exception $e) { - // catch username is already being used from previous aborted runs - } - } - - if ($password === false) { - $password = $user; - } - - \OC_Util::tearDownFS(); - \OC_User::setUserId(''); - \OC\Files\Filesystem::tearDown(); - \OC::$server->getUserSession()->setUser(new \OC\User\User($user, new \OC_User_Database())); - \OC_Util::setupFS($user); - - if ($loadEncryption) { - $params['uid'] = $user; - $params['password'] = $password; - \OCA\Files_Encryption\Hooks::login($params); - } - } - - public static function logoutHelper() { - \OC_Util::tearDownFS(); - \OC_User::setUserId(false); - \OC\Files\Filesystem::tearDown(); - } - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - - \OCA\Files_Encryption\Helper::registerFilesystemHooks(); - \OCA\Files_Encryption\Helper::registerUserHooks(); - \OCA\Files_Encryption\Helper::registerShareHooks(); - - \OC::registerShareHooks(); - \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new \OCA\Files_Encryption\Proxy()); - } - - public static function tearDownAfterClass() { - \OC_Hook::clear(); - \OC_FileProxy::clearProxies(); - - // Delete keys in /data/ - $view = new \OC\Files\View('/'); - $view->deleteAll('files_encryption'); - - parent::tearDownAfterClass(); - } - - protected function tearDown() { - parent::tearDown(); - $this->resetKeyCache(); - } - - protected function resetKeyCache() { - // reset key cache for every testrun - $keyCache = new \ReflectionProperty('\OCA\Files_Encryption\Keymanager', 'key_cache'); - $keyCache->setAccessible(true); - $keyCache->setValue(array()); - $keyCache->setAccessible(false); - } - -} diff --git a/apps/files_encryption/tests/trashbin.php b/apps/files_encryption/tests/trashbin.php deleted file mode 100755 index 84785738bfc..00000000000 --- a/apps/files_encryption/tests/trashbin.php +++ /dev/null @@ -1,346 +0,0 @@ - - * @author Christopher Schäpers - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class Trashbin - * this class provide basic trashbin app tests - */ -class Trashbin extends TestCase { - - const TEST_ENCRYPTION_TRASHBIN_USER1 = "test-trashbin-user1"; - - public $userId; - public $pass; - /** - * @var \OC\Files\View - */ - public $view; - public $dataShort; - public $stateFilesTrashbin; - public $folder1; - public $subfolder; - public $subsubfolder; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // trashbin hooks - \OCA\Files_Trashbin\Trashbin::registerHooks(); - - // create test user - self::loginHelper(self::TEST_ENCRYPTION_TRASHBIN_USER1, true); - } - - protected function setUp() { - parent::setUp(); - - // set user id - \OC_User::setUserId(self::TEST_ENCRYPTION_TRASHBIN_USER1); - $this->userId = self::TEST_ENCRYPTION_TRASHBIN_USER1; - $this->pass = self::TEST_ENCRYPTION_TRASHBIN_USER1; - - // init filesystem view - $this->view = new \OC\Files\View('/'); - - // init short data - $this->dataShort = 'hats'; - - $this->folder1 = '/folder1'; - $this->subfolder = '/subfolder1'; - $this->subsubfolder = '/subsubfolder1'; - - // remember files_trashbin state - $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin'); - - // we want to tests with app files_trashbin enabled - \OC_App::enable('files_trashbin'); - } - - protected function tearDown() { - // reset app files_trashbin - if ($this->stateFilesTrashbin) { - \OC_App::enable('files_trashbin'); - } - else { - \OC_App::disable('files_trashbin'); - } - - parent::tearDown(); - } - - public static function tearDownAfterClass() { - // cleanup test user - \OC_User::deleteUser(self::TEST_ENCRYPTION_TRASHBIN_USER1); - - \OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin'); - - parent::tearDownAfterClass(); - } - - /** - * @medium - * test delete file - */ - function testDeleteFile() { - - // generate filename - $filename = 'tmp-' . $this->getUniqueID() . '.txt'; - $filename2 = $filename . '.backup'; // a second file with similar name - - // save file with content - $cryptedFile = file_put_contents('crypt:///' .self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); - $cryptedFile2 = file_put_contents('crypt:///' .self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); - - // test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - $this->assertTrue(is_int($cryptedFile2)); - - // check if key for admin exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename2 . '/fileKey')); - - // check if share key for admin exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename2 . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - - // delete first file - \OC\Files\Filesystem::unlink($filename); - - // check if file not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); - - // check if key for admin not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); - - // check if share key for admin not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - - // check that second file still exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); - - // check that key for second file still exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename2 . '/fileKey')); - - // check that share key for second file still exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename2 . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - - // get files - $trashFiles = \OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_ENCRYPTION_TRASHBIN_USER1); - - // find created file with timestamp - $timestamp = null; - foreach ($trashFiles as $file) { - if ($file['name'] === $filename) { - $timestamp = $file['mtime']; - break; - } - } - - // check if we found the file we created - $this->assertNotNull($timestamp); - - $this->assertTrue($this->view->is_dir('/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename . '.d' . $timestamp)); - - // check if key for admin not exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename . '.d' . $timestamp . '/fileKey')); - - // check if share key for admin not exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename - . '.d' . $timestamp . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - } - - /** - * @medium - * test restore file - */ - function testRestoreFile() { - // generate filename - $filename = 'tmp-' . $this->getUniqueID() . '.txt'; - $filename2 = $filename . '.backup'; // a second file with similar name - - // save file with content - file_put_contents('crypt:///' . self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); - file_put_contents('crypt:///' . self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); - - // delete both files - \OC\Files\Filesystem::unlink($filename); - \OC\Files\Filesystem::unlink($filename2); - - $trashFiles = \OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_ENCRYPTION_TRASHBIN_USER1); - - // find created file with timestamp - $timestamp = null; - foreach ($trashFiles as $file) { - if ($file['name'] === $filename) { - $timestamp = $file['mtime']; - break; - } - } - - // make sure that we have a timestamp - $this->assertNotNull($timestamp); - - // before calling the restore operation the keys shouldn't be there - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - - // restore first file - $this->assertTrue(\OCA\Files_Trashbin\Trashbin::restore($filename . '.d' . $timestamp, $filename, $timestamp)); - - // check if file exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); - - // check if key for admin exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); - - // check if share key for admin exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - - // check that second file was NOT restored - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); - - // check if key for admin exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename2 . '/fileKey')); - - // check if share key for admin exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename2 . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - } - - /** - * @medium - * test delete file forever - */ - function testPermanentDeleteFile() { - - // generate filename - $filename = 'tmp-' . $this->getUniqueID() . '.txt'; - - // save file with content - $cryptedFile = file_put_contents('crypt:///' .$this->userId. '/files/' . $filename, $this->dataShort); - - // test that data was successfully written - $this->assertTrue(is_int($cryptedFile)); - - // check if key for admin exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/fileKey')); - - // check if share key for admin exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - - // delete file - \OC\Files\Filesystem::unlink($filename); - - // check if file not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); - - // check if key for admin not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' . $filename . '/' - . $filename . '.key')); - - // check if share key for admin not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keys/' - . $filename . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - - // find created file with timestamp - $query = \OC_DB::prepare('SELECT `timestamp`,`type` FROM `*PREFIX*files_trash`' - . ' WHERE `id`=?'); - $result = $query->execute(array($filename))->fetchRow(); - - $this->assertTrue(is_array($result)); - - // build suffix - $trashFileSuffix = 'd' . $result['timestamp']; - - // check if key for admin exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename - . '.' . $trashFileSuffix . '/fileKey')); - - // check if share key for admin exists - $this->assertTrue($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' - . $filename . '.' . $trashFileSuffix . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - - // get timestamp from file - $timestamp = str_replace('d', '', $trashFileSuffix); - - // delete file forever - $this->assertGreaterThan(0, \OCA\Files_Trashbin\Trashbin::delete($filename, $this->userId, $timestamp)); - - // check if key for admin not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/' . $filename . '.' - . $trashFileSuffix)); - - // check if key for admin not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename - . '.' . $trashFileSuffix . '/fileKey')); - - // check if share key for admin not exists - $this->assertFalse($this->view->file_exists( - '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keys/' . $filename - . '.' . $trashFileSuffix . '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); - } - -} diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php deleted file mode 100755 index 4174a0da0da..00000000000 --- a/apps/files_encryption/tests/util.php +++ /dev/null @@ -1,693 +0,0 @@ - - * @author Björn Schießle - * @author Florin Peter - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Markus Goetz - * @author Morris Jobke - * @author Robin Appelman - * @author Robin McCorkell - * @author Sam Tuke - * @author Thomas Müller - * @author Vincent Petry - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCA\Files_Encryption\Tests; - -/** - * Class Util - */ -class Util extends TestCase { - - const TEST_ENCRYPTION_UTIL_USER1 = "test-util-user1"; - const TEST_ENCRYPTION_UTIL_USER2 = "test-util-user2"; - const TEST_ENCRYPTION_UTIL_GROUP1 = "test-util-group1"; - const TEST_ENCRYPTION_UTIL_GROUP2 = "test-util-group2"; - const TEST_ENCRYPTION_UTIL_LEGACY_USER = "test-legacy-user"; - - public $userId; - public $encryptionDir; - public $publicKeyDir; - public $pass; - /** - * @var \OC\Files\View - */ - public $view; - public $keysPath; - public $publicKeyPath; - public $privateKeyPath; - /** - * @var \OCA\Files_Encryption\Util - */ - public $util; - public $dataShort; - public $legacyEncryptedData; - public $legacyEncryptedDataKey; - public $legacyKey; - public $stateFilesTrashbin; - - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - // create test user - self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1, true); - self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER2, true); - self::loginHelper(self::TEST_ENCRYPTION_UTIL_LEGACY_USER, true); - - // create groups - \OC_Group::createGroup(self::TEST_ENCRYPTION_UTIL_GROUP1); - \OC_Group::createGroup(self::TEST_ENCRYPTION_UTIL_GROUP2); - - // add user 1 to group1 - \OC_Group::addToGroup(self::TEST_ENCRYPTION_UTIL_USER1, self::TEST_ENCRYPTION_UTIL_GROUP1); - } - - protected function setUp() { - parent::setUp(); - - // login user - self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); - \OC_User::setUserId(self::TEST_ENCRYPTION_UTIL_USER1); - $this->userId = self::TEST_ENCRYPTION_UTIL_USER1; - $this->pass = self::TEST_ENCRYPTION_UTIL_USER1; - - // set content for encrypting / decrypting in tests - $this->dataUrl = __DIR__ . '/../lib/crypt.php'; - $this->dataShort = 'hats'; - $this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php'); - $this->legacyData = __DIR__ . '/legacy-text.txt'; - $this->legacyEncryptedData = __DIR__ . '/legacy-encrypted-text.txt'; - $this->legacyEncryptedDataKey = __DIR__ . '/encryption.key'; - $this->legacyKey = "30943623843030686906\0\0\0\0"; - - $keypair = \OCA\Files_Encryption\Crypt::createKeypair(); - - $this->genPublicKey = $keypair['publicKey']; - $this->genPrivateKey = $keypair['privateKey']; - - $this->publicKeyDir = \OCA\Files_Encryption\Keymanager::getPublicKeyPath(); - $this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption'; - $this->keysPath = $this->encryptionDir . '/' . 'keys'; - $this->publicKeyPath = - $this->publicKeyDir . '/' . $this->userId . '.publicKey'; // e.g. data/public-keys/admin.publicKey - $this->privateKeyPath = - $this->encryptionDir . '/' . $this->userId . '.privateKey'; // e.g. data/admin/admin.privateKey - - $this->view = new \OC\Files\View('/'); - - $this->util = new \OCA\Files_Encryption\Util($this->view, $this->userId); - - // remember files_trashbin state - $this->stateFilesTrashbin = \OC_App::isEnabled('files_trashbin'); - - // we don't want to tests with app files_trashbin enabled - \OC_App::disable('files_trashbin'); - } - - protected function tearDown() { - // reset app files_trashbin - if ($this->stateFilesTrashbin) { - \OC_App::enable('files_trashbin'); - } - else { - \OC_App::disable('files_trashbin'); - } - - parent::tearDown(); - } - - public static function tearDownAfterClass() { - // cleanup test user - \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_USER1); - \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_USER2); - \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_LEGACY_USER); - - //cleanup groups - \OC_Group::deleteGroup(self::TEST_ENCRYPTION_UTIL_GROUP1); - \OC_Group::deleteGroup(self::TEST_ENCRYPTION_UTIL_GROUP2); - - parent::tearDownAfterClass(); - } - - /** - * @medium - * test that paths set during User construction are correct - */ - function testKeyPaths() { - $util = new \OCA\Files_Encryption\Util($this->view, $this->userId); - - $this->assertEquals($this->publicKeyDir, $util->getPath('publicKeyDir')); - $this->assertEquals($this->encryptionDir, $util->getPath('encryptionDir')); - $this->assertEquals($this->keysPath, $util->getPath('keysPath')); - $this->assertEquals($this->publicKeyPath, $util->getPath('publicKeyPath')); - $this->assertEquals($this->privateKeyPath, $util->getPath('privateKeyPath')); - - } - - /** - * @medium - * test detection of encrypted files - */ - function testIsEncryptedPath() { - - $util = new \OCA\Files_Encryption\Util($this->view, $this->userId); - - self::loginHelper($this->userId); - - $unencryptedFile = '/tmpUnencrypted-' . $this->getUniqueID() . '.txt'; - $encryptedFile = '/tmpEncrypted-' . $this->getUniqueID() . '.txt'; - - // Disable encryption proxy to write a unencrypted file - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $this->view->file_put_contents($this->userId . '/files/' . $unencryptedFile, $this->dataShort); - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - - // write a encrypted file - $this->view->file_put_contents($this->userId . '/files/' . $encryptedFile, $this->dataShort); - - // test if both files are detected correctly - $this->assertFalse($util->isEncryptedPath($this->userId . '/files/' . $unencryptedFile)); - $this->assertTrue($util->isEncryptedPath($this->userId . '/files/' . $encryptedFile)); - - // cleanup - $this->view->unlink($this->userId . '/files/' . $unencryptedFile); - $this->view->unlink($this->userId . '/files/' . $encryptedFile); - - } - - /** - * @medium - * test setup of encryption directories - */ - function testSetupServerSide() { - $this->assertEquals(true, $this->util->setupServerSide($this->pass)); - } - - /** - * @medium - * test checking whether account is ready for encryption, - */ - function testUserIsReady() { - $this->assertEquals(true, $this->util->ready()); - } - - /** - * test checking whether account is not ready for encryption, - */ -// function testUserIsNotReady() { -// $this->view->unlink($this->publicKeyDir); -// -// $params['uid'] = $this->userId; -// $params['password'] = $this->pass; -// $this->assertFalse(OCA\Files_Encryption\Hooks::login($params)); -// -// $this->view->unlink($this->privateKeyPath); -// } - - /** - * @medium - */ - function testRecoveryEnabledForUser() { - - $util = new \OCA\Files_Encryption\Util($this->view, $this->userId); - - // Record the value so we can return it to it's original state later - $enabled = $util->recoveryEnabledForUser(); - - $this->assertTrue($util->setRecoveryForUser(!$enabled)); - - $this->assertEquals(!$enabled, $util->recoveryEnabledForUser()); - - $this->assertTrue($util->setRecoveryForUser($enabled)); - - $this->assertEquals($enabled, $util->recoveryEnabledForUser()); - - - } - - /** - * @medium - */ - function testGetUidAndFilename() { - - \OC_User::setUserId(self::TEST_ENCRYPTION_UTIL_USER1); - - $filename = '/tmp-' . $this->getUniqueID() . '.test'; - - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $this->view->file_put_contents($this->userId . '/files/' . $filename, $this->dataShort); - - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - - $util = new \OCA\Files_Encryption\Util($this->view, $this->userId); - - list($fileOwnerUid, $file) = $util->getUidAndFilename($filename); - - $this->assertEquals(self::TEST_ENCRYPTION_UTIL_USER1, $fileOwnerUid); - - $this->assertEquals($file, $filename); - - $this->view->unlink($this->userId . '/files/' . $filename); - } - - /** - * Test that data that is read by the crypto stream wrapper - */ - function testGetFileSize() { - self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); - - $filename = 'tmp-' . $this->getUniqueID(); - $externalFilename = '/' . $this->userId . '/files/' . $filename; - - // Test for 0 byte files - $problematicFileSizeData = ""; - $cryptedFile = $this->view->file_put_contents($externalFilename, $problematicFileSizeData); - $this->assertTrue(is_int($cryptedFile)); - $this->assertEquals($this->util->getFileSize($externalFilename), 0); - $decrypt = $this->view->file_get_contents($externalFilename); - $this->assertEquals($problematicFileSizeData, $decrypt); - $this->view->unlink($this->userId . '/files/' . $filename); - - // Test a file with 18377 bytes as in https://github.com/owncloud/mirall/issues/1009 - $problematicFileSizeData = str_pad("", 18377, "abc"); - $cryptedFile = $this->view->file_put_contents($externalFilename, $problematicFileSizeData); - $this->assertTrue(is_int($cryptedFile)); - $this->assertEquals($this->util->getFileSize($externalFilename), 18377); - $decrypt = $this->view->file_get_contents($externalFilename); - $this->assertEquals($problematicFileSizeData, $decrypt); - $this->view->unlink($this->userId . '/files/' . $filename); - } - - function testEncryptAll() { - - $filename = "/encryptAll" . $this->getUniqueID() . ".txt"; - $util = new \OCA\Files_Encryption\Util($this->view, $this->userId); - - // disable encryption to upload a unencrypted file - \OC_App::disable('files_encryption'); - - $this->view->file_put_contents($this->userId . '/files/' . $filename, $this->dataShort); - - $fileInfoUnencrypted = $this->view->getFileInfo($this->userId . '/files/' . $filename); - - $this->assertTrue($fileInfoUnencrypted instanceof \OC\Files\FileInfo); - - // enable file encryption again - \OC_App::enable('files_encryption'); - - // encrypt all unencrypted files - $util->encryptAll('/' . $this->userId . '/' . 'files'); - - $fileInfoEncrypted = $this->view->getFileInfo($this->userId . '/files/' . $filename); - - $this->assertTrue($fileInfoEncrypted instanceof \OC\Files\FileInfo); - - // check if mtime and etags unchanged - $this->assertEquals($fileInfoEncrypted['mtime'], $fileInfoUnencrypted['mtime']); - $this->assertSame($fileInfoEncrypted['etag'], $fileInfoUnencrypted['etag']); - - $this->view->unlink($this->userId . '/files/' . $filename); - } - - function testDecryptAll() { - - $filename = "/decryptAll" . $this->getUniqueID() . ".txt"; - $datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/'); - $userdir = $datadir . '/' . $this->userId . '/files/'; - - $this->view->file_put_contents($this->userId . '/files/' . $filename, $this->dataShort); - - $fileInfoEncrypted = $this->view->getFileInfo($this->userId . '/files/' . $filename); - - $this->assertTrue($fileInfoEncrypted instanceof \OC\Files\FileInfo); - $this->assertEquals($fileInfoEncrypted['encrypted'], 1); - - $encContent = file_get_contents($userdir . $filename); - - \OC_App::disable('files_encryption'); - - $user = \OCP\User::getUser(); - $this->logoutHelper(); - $this->loginHelper($user, false, false, false); - - $content = file_get_contents($userdir . $filename); - - //content should be encrypted - $this->assertSame($encContent, $content); - - // now we load the encryption app again - \OC_App::loadApp('files_encryption'); - - // init encryption app - $params = array('uid' => \OCP\User::getUser(), - 'password' => \OCP\User::getUser()); - - $view = new \OC\Files\View('/'); - $util = new \OCA\Files_Encryption\Util($view, \OCP\User::getUser()); - - $result = $util->initEncryption($params); - - $this->assertTrue($result instanceof \OCA\Files_Encryption\Session); - - $successful = $util->decryptAll(); - - $this->assertTrue($successful); - - $this->logoutHelper(); - $this->loginHelper($user, false, false, false); - - // file should be unencrypted and fileInfo should contain the correct values - $content = file_get_contents($userdir . $filename); - - // now we should get the plain data - $this->assertSame($this->dataShort, $content); - - $fileInfoUnencrypted = $this->view->getFileInfo($this->userId . '/files/' . $filename); - $this->assertTrue($fileInfoUnencrypted instanceof \OC\Files\FileInfo); - - // check if mtime and etags unchanged - $this->assertEquals($fileInfoEncrypted['mtime'], $fileInfoUnencrypted['mtime']); - $this->assertSame($fileInfoEncrypted['etag'], $fileInfoUnencrypted['etag']); - // file should no longer be encrypted - $this->assertEquals(0, $fileInfoUnencrypted['encrypted']); - - $backupPath = $this->getBackupPath('decryptAll'); - - // check if the keys where moved to the backup location - $this->assertTrue($this->view->is_dir($backupPath . '/keys')); - $this->assertTrue($this->view->file_exists($backupPath . '/keys/' . $filename . '/fileKey')); - $this->assertTrue($this->view->file_exists($backupPath . '/keys/' . $filename . '/' . $user . '.shareKey')); - - // cleanup - $this->view->unlink($this->userId . '/files/' . $filename); - $this->view->deleteAll($backupPath); - \OC_App::enable('files_encryption'); - - } - - private function createDummyKeysForBackupTest() { - // create some dummy key files - $encPath = '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '/files_encryption'; - $this->view->mkdir($encPath . '/keys/foo'); - $this->view->file_put_contents($encPath . '/keys/foo/fileKey', 'key'); - $this->view->file_put_contents($encPath . '/keys/foo/user1.shareKey', 'share key'); - } - - /** - * test if all keys get moved to the backup folder correctly - * - * @dataProvider dataBackupAllKeys - */ - function testBackupAllKeys($addTimestamp, $includeUserKeys) { - self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); - - $this->createDummyKeysForBackupTest(); - - $util = new \OCA\Files_Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1); - - $util->backupAllKeys('testBackupAllKeys', $addTimestamp, $includeUserKeys); - - $backupPath = $this->getBackupPath('testBackupAllKeys'); - - // check backupDir Content - $this->assertTrue($this->view->is_dir($backupPath . '/keys')); - $this->assertTrue($this->view->is_dir($backupPath . '/keys/foo')); - $this->assertTrue($this->view->file_exists($backupPath . '/keys/foo/fileKey')); - $this->assertTrue($this->view->file_exists($backupPath . '/keys/foo/user1.shareKey')); - - if ($includeUserKeys) { - $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.privateKey')); - $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.publicKey')); - } else { - $this->assertFalse($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.privateKey')); - $this->assertFalse($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.publicKey')); - } - - //cleanup - $this->view->deleteAll($backupPath); - $this->view->unlink($this->encryptionDir . '/keys/foo/fileKey'); - $this->view->unlink($this->encryptionDir . '/keys/foo/user1.shareKey'); - } - - function dataBackupAllKeys() { - return array( - array(true, true), - array(false, true), - array(true, false), - array(false, false), - ); - } - - - /** - * @dataProvider dataBackupAllKeys - */ - function testRestoreBackup($addTimestamp, $includeUserKeys) { - - $util = new \OCA\Files_Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1); - $this->createDummyKeysForBackupTest(); - - $util->backupAllKeys('restoreKeysBackupTest', $addTimestamp, $includeUserKeys); - $this->view->deleteAll($this->keysPath); - if ($includeUserKeys) { - $this->view->unlink($this->privateKeyPath); - $this->view->unlink($this->publicKeyPath); - } - - // key should be removed after backup was created - $this->assertFalse($this->view->is_dir($this->keysPath)); - if ($includeUserKeys) { - $this->assertFalse($this->view->file_exists($this->privateKeyPath)); - $this->assertFalse($this->view->file_exists($this->publicKeyPath)); - } - - $backupPath = $this->getBackupPath('restoreKeysBackupTest'); - $backupName = substr(basename($backupPath), strlen('backup.')); - - $this->assertTrue($util->restoreBackup($backupName)); - - // check if all keys are restored - $this->assertFalse($this->view->is_dir($backupPath)); - $this->assertTrue($this->view->is_dir($this->keysPath)); - $this->assertTrue($this->view->is_dir($this->keysPath . '/foo')); - $this->assertTrue($this->view->file_exists($this->keysPath . '/foo/fileKey')); - $this->assertTrue($this->view->file_exists($this->keysPath . '/foo/user1.shareKey')); - $this->assertTrue($this->view->file_exists($this->privateKeyPath)); - $this->assertTrue($this->view->file_exists($this->publicKeyPath)); - } - - function testDeleteBackup() { - $util = new \OCA\Files_Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1); - $this->createDummyKeysForBackupTest(); - - $util->backupAllKeys('testDeleteBackup', false, false); - - $this->assertTrue($this->view->is_dir($this->encryptionDir . '/backup.testDeleteBackup')); - - $util->deleteBackup('testDeleteBackup'); - - $this->assertFalse($this->view->is_dir($this->encryptionDir . '/backup.testDeleteBackup')); - } - - function testDescryptAllWithBrokenFiles() { - - $file1 = "/decryptAll1" . $this->getUniqueID() . ".txt"; - $file2 = "/decryptAll2" . $this->getUniqueID() . ".txt"; - - $util = new \OCA\Files_Encryption\Util($this->view, $this->userId); - - $this->view->file_put_contents($this->userId . '/files/' . $file1, $this->dataShort); - $this->view->file_put_contents($this->userId . '/files/' . $file2, $this->dataShort); - - $fileInfoEncrypted1 = $this->view->getFileInfo($this->userId . '/files/' . $file1); - $fileInfoEncrypted2 = $this->view->getFileInfo($this->userId . '/files/' . $file2); - - $this->assertTrue($fileInfoEncrypted1 instanceof \OC\Files\FileInfo); - $this->assertTrue($fileInfoEncrypted2 instanceof \OC\Files\FileInfo); - $this->assertEquals($fileInfoEncrypted1['encrypted'], 1); - $this->assertEquals($fileInfoEncrypted2['encrypted'], 1); - - // rename keyfile for file1 so that the decryption for file1 fails - // Expected behaviour: decryptAll() returns false, file2 gets decrypted anyway - $this->view->rename($this->userId . '/files_encryption/keys/' . $file1 . '/fileKey', - $this->userId . '/files_encryption/keys/' . $file1 . '/fileKey.moved'); - - // need to reset key cache that we don't use the cached key - $this->resetKeyCache(); - - // decrypt all encrypted files - $result = $util->decryptAll(); - - $this->assertFalse($result); - - $fileInfoUnencrypted1 = $this->view->getFileInfo($this->userId . '/files/' . $file1); - $fileInfoUnencrypted2 = $this->view->getFileInfo($this->userId . '/files/' . $file2); - - $this->assertTrue($fileInfoUnencrypted1 instanceof \OC\Files\FileInfo); - $this->assertTrue($fileInfoUnencrypted2 instanceof \OC\Files\FileInfo); - - // file1 should be still encrypted; file2 should be decrypted - $this->assertEquals(1, $fileInfoUnencrypted1['encrypted']); - $this->assertEquals(0, $fileInfoUnencrypted2['encrypted']); - - // keyfiles and share keys should still exist - $this->assertTrue($this->view->is_dir($this->userId . '/files_encryption/keys/')); - $this->assertTrue($this->view->file_exists($this->userId . '/files_encryption/keys/' . $file1 . '/fileKey.moved')); - $this->assertTrue($this->view->file_exists($this->userId . '/files_encryption/keys/' . $file1 . '/' . $this->userId . '.shareKey')); - - // rename the keyfile for file1 back - $this->view->rename($this->userId . '/files_encryption/keys/' . $file1 . '/fileKey.moved', - $this->userId . '/files_encryption/keys/' . $file1 . '/fileKey'); - - // try again to decrypt all encrypted files - $result = $util->decryptAll(); - - $this->assertTrue($result); - - $fileInfoUnencrypted1 = $this->view->getFileInfo($this->userId . '/files/' . $file1); - $fileInfoUnencrypted2 = $this->view->getFileInfo($this->userId . '/files/' . $file2); - - $this->assertTrue($fileInfoUnencrypted1 instanceof \OC\Files\FileInfo); - $this->assertTrue($fileInfoUnencrypted2 instanceof \OC\Files\FileInfo); - - // now both files should be decrypted - $this->assertEquals(0, $fileInfoUnencrypted1['encrypted']); - $this->assertEquals(0, $fileInfoUnencrypted2['encrypted']); - - // keyfiles and share keys should be deleted - $this->assertFalse($this->view->is_dir($this->userId . '/files_encryption/keys/')); - - //cleanup - $backupPath = $this->getBackupPath('decryptAll'); - $this->view->unlink($this->userId . '/files/' . $file1); - $this->view->unlink($this->userId . '/files/' . $file2); - $this->view->deleteAll($backupPath); - - } - - function getBackupPath($extension) { - $encPath = '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '/files_encryption'; - $encFolderContent = $this->view->getDirectoryContent($encPath); - - $backupPath = ''; - foreach ($encFolderContent as $c) { - $name = $c['name']; - if (substr($name, 0, strlen('backup.' . $extension)) === 'backup.' . $extension) { - $backupPath = $encPath . '/'. $c['name']; - break; - } - } - - return $backupPath; - } - - /** - * @dataProvider dataProviderFortestIsMountPointApplicableToUser - */ - function testIsMountPointApplicableToUser($mount, $expectedResult) { - self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); - $dummyClass = new DummyUtilClass($this->view, self::TEST_ENCRYPTION_UTIL_USER1); - $result = $dummyClass->testIsMountPointApplicableToUser($mount); - - $this->assertSame($expectedResult, $result); - } - - function dataProviderFortestIsMountPointApplicableToUser() { - return array( - array(array('applicable' => array('groups' => array(), 'users' => array(self::TEST_ENCRYPTION_UTIL_USER1))), true), - array(array('applicable' => array('groups' => array(), 'users' => array(self::TEST_ENCRYPTION_UTIL_USER2))), false), - array(array('applicable' => array('groups' => array(self::TEST_ENCRYPTION_UTIL_GROUP1), 'users' => array())), true), - array(array('applicable' => array('groups' => array(self::TEST_ENCRYPTION_UTIL_GROUP1), 'users' => array(self::TEST_ENCRYPTION_UTIL_USER2))), true), - array(array('applicable' => array('groups' => array(self::TEST_ENCRYPTION_UTIL_GROUP2), 'users' => array(self::TEST_ENCRYPTION_UTIL_USER2))), false), - array(array('applicable' => array('groups' => array(self::TEST_ENCRYPTION_UTIL_GROUP2), 'users' => array(self::TEST_ENCRYPTION_UTIL_USER2, 'all'))), true), - array(array('applicable' => array('groups' => array(self::TEST_ENCRYPTION_UTIL_GROUP2), 'users' => array('all'))), true), - ); - } - - /** - * Tests that filterShareReadyUsers() returns the correct list of - * users that are ready or not ready for encryption - */ - public function testFilterShareReadyUsers() { - $appConfig = \OC::$server->getAppConfig(); - - $publicShareKeyId = $appConfig->getValue('files_encryption', 'publicShareKeyId'); - $recoveryKeyId = $appConfig->getValue('files_encryption', 'recoveryKeyId'); - - $usersToTest = array( - 'readyUser', - 'notReadyUser', - 'nonExistingUser', - $publicShareKeyId, - $recoveryKeyId, - ); - self::loginHelper('readyUser', true); - self::loginHelper('notReadyUser', true); - // delete encryption dir to make it not ready - $this->view->unlink('notReadyUser/files_encryption/'); - - // login as user1 - self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); - - $result = $this->util->filterShareReadyUsers($usersToTest); - $this->assertEquals( - array('readyUser', $publicShareKeyId, $recoveryKeyId), - $result['ready'] - ); - $this->assertEquals( - array('notReadyUser', 'nonExistingUser'), - $result['unready'] - ); - \OC_User::deleteUser('readyUser'); - } - - /** - * helper function to set migration status to the right value - * to be able to test the migration path - * - * @param integer $status needed migration status for test - * @param string $user for which user the status should be set - * @return boolean - */ - private function setMigrationStatus($status, $user) { - \OC::$server->getConfig()->setUserValue($user, 'files_encryption', 'migration_status', (string)$status); - // the update will definitely be executed -> return value is always true - return true; - } - -} - -/** - * dummy class extends \OCA\Files_Encryption\Util to access protected methods for testing - */ -class DummyUtilClass extends \OCA\Files_Encryption\Util { - public function testIsMountPointApplicableToUser($mount) { - return $this->isMountPointApplicableToUser($mount); - } -} diff --git a/apps/files_encryption/tests/zeros b/apps/files_encryption/tests/zeros deleted file mode 100644 index ff982acf423..00000000000 Binary files a/apps/files_encryption/tests/zeros and /dev/null differ