migrate therinaldos.com data
Build & Deploy to DigitalOcean Space / build (push) Failing after 2m38s

This commit is contained in:
2024-05-05 15:50:45 -04:00
commit ef1ff240d4
23182 changed files with 3801898 additions and 0 deletions
@@ -0,0 +1,50 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Björn Schießle <bjoern@schiessle.org>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Clark Tomlinson <fallen013@gmail.com>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @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 <http://www.gnu.org/licenses/>
*
*/
namespace OCP\Encryption\Exceptions;
use OCP\HintException;
/**
* Class GenericEncryptionException
*
* @since 8.1.0
*/
class GenericEncryptionException extends HintException {
/**
* @param string $message
* @param string $hint
* @param int $code
* @param \Exception|null $previous
* @since 8.1.0
*/
public function __construct($message = '', $hint = '', $code = 0, \Exception $previous = null) {
if (empty($message)) {
$message = 'Unspecified encryption exception';
}
parent::__construct($message, $hint, $code, $previous);
}
}
@@ -0,0 +1,194 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Bjoern Schiessle <bjoern@schiessle.org>
* @author Björn Schießle <bjoern@schiessle.org>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @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 <http://www.gnu.org/licenses/>
*
*/
namespace OCP\Encryption;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Interface IEncryptionModule
*
* @since 8.1.0
*/
interface IEncryptionModule {
/**
* @return string defining the technical unique id
* @since 8.1.0
*/
public function getId();
/**
* In comparison to getKey() this function returns a human readable (maybe translated) name
*
* @return string
* @since 8.1.0
*/
public function getDisplayName();
/**
* start receiving chunks from a file. This is the place where you can
* perform some initial step before starting encrypting/decrypting the
* chunks
*
* @param string $path to the file
* @param string $user who read/write the file (null for public access)
* @param string $mode php stream open mode
* @param array $header contains the header data read from the file
* @param array $accessList who has access to the file contains the key 'users' and 'public'
*
* @return array $header contain data as key-value pairs which should be
* written to the header, in case of a write operation
* or if no additional data is needed return a empty array
* @since 8.1.0
*/
public function begin($path, $user, $mode, array $header, array $accessList);
/**
* last chunk received. This is the place where you can perform some final
* operation and return some remaining data if something is left in your
* buffer.
*
* @param string $path to the file
* @param string $position id of the last block (looks like "<Number>end")
*
* @return string remained data which should be written to the file in case
* of a write operation
*
* @since 8.1.0
* @since 9.0.0 parameter $position added
*/
public function end($path, $position);
/**
* encrypt data
*
* @param string $data you want to encrypt
* @param string $position position of the block we want to encrypt (starts with '0')
*
* @return mixed encrypted data
*
* @since 8.1.0
* @since 9.0.0 parameter $position added
*/
public function encrypt($data, $position);
/**
* decrypt data
*
* @param string $data you want to decrypt
* @param int|string $position position of the block we want to decrypt
*
* @return mixed decrypted data
*
* @since 8.1.0
* @since 9.0.0 parameter $position added
*/
public function decrypt($data, $position);
/**
* update encrypted file, e.g. give additional users access to the file
*
* @param string $path path to the file which should be updated
* @param string $uid of the user who performs the operation
* @param array $accessList who has access to the file contains the key 'users' and 'public'
* @return boolean
* @since 8.1.0
*/
public function update($path, $uid, array $accessList);
/**
* should the file be encrypted or not
*
* @param string $path
* @return boolean
* @since 8.1.0
*/
public function shouldEncrypt($path);
/**
* get size of the unencrypted payload per block.
* ownCloud read/write files with a block size of 8192 byte
*
* @param bool $signed
* @return int
* @since 8.1.0 optional parameter $signed was added in 9.0.0
*/
public function getUnencryptedBlockSize($signed = false);
/**
* check if the encryption module is able to read the file,
* e.g. if all encryption keys exists
*
* @param string $path
* @param string $uid user for whom we want to check if he can read the file
* @return boolean
* @since 8.1.0
*/
public function isReadable($path, $uid);
/**
* Initial encryption of all files
*
* @param InputInterface $input
* @param OutputInterface $output write some status information to the terminal during encryption
* @since 8.2.0
*/
public function encryptAll(InputInterface $input, OutputInterface $output);
/**
* prepare encryption module to decrypt all files
*
* @param InputInterface $input
* @param OutputInterface $output write some status information to the terminal during encryption
* @param $user (optional) for which the files should be decrypted, default = all users
* @return bool return false on failure or if it isn't supported by the module
* @since 8.2.0
*/
public function prepareDecryptAll(InputInterface $input, OutputInterface $output, $user = '');
/**
* Check if the module is ready to be used by that specific user.
* In case a module is not ready - because e.g. key pairs have not been generated
* upon login this method can return false before any operation starts and might
* cause issues during operations.
*
* @param string $user
* @return boolean
* @since 9.1.0
*/
public function isReadyForUser($user);
/**
* Does the encryption module needs a detailed list of users with access to the file?
* For example if the encryption module uses per-user encryption keys and needs to know
* the users with access to the file to encrypt/decrypt it.
*
* @since 13.0.0
* @return bool
*/
public function needDetailedAccessList();
}
@@ -0,0 +1,40 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Björn Schießle <bjoern@schiessle.org>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @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 <http://www.gnu.org/licenses/>
*
*/
namespace OCP\Encryption;
/**
* Interface IFile
*
* @since 8.1.0
*/
interface IFile {
/**
* get list of users with access to the file
*
* @param string $path to the file
* @return array
* @since 8.1.0
*/
public function getAccessList($path);
}
@@ -0,0 +1,98 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Björn Schießle <bjoern@schiessle.org>
* @author Joas Schilling <coding@schilljs.com>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Roeland Jago Douma <roeland@famdouma.nl>
*
* @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 <http://www.gnu.org/licenses/>
*
*/
namespace OCP\Encryption;
use OC\Encryption\Exceptions\ModuleAlreadyExistsException;
use OC\Encryption\Exceptions\ModuleDoesNotExistsException;
/**
* This class provides access to files encryption apps.
*
* @since 8.1.0
*/
interface IManager {
/**
* Check if encryption is available (at least one encryption module needs to be enabled)
*
* @return bool true if enabled, false if not
* @since 8.1.0
*/
public function isEnabled();
/**
* Registers an callback function which must return an encryption module instance
*
* @param string $id
* @param string $displayName
* @param callable $callback
* @throws ModuleAlreadyExistsException
* @since 8.1.0
*/
public function registerEncryptionModule($id, $displayName, callable $callback);
/**
* Unregisters an encryption module
*
* @param string $moduleId
* @since 8.1.0
*/
public function unregisterEncryptionModule($moduleId);
/**
* get a list of all encryption modules
*
* @return array [id => ['id' => $id, 'displayName' => $displayName, 'callback' => callback]]
* @since 8.1.0
*/
public function getEncryptionModules();
/**
* get a specific encryption module
*
* @param string $moduleId Empty to get the default module
* @return IEncryptionModule
* @throws ModuleDoesNotExistsException
* @since 8.1.0
*/
public function getEncryptionModule($moduleId = '');
/**
* get default encryption module Id
*
* @return string
* @since 8.1.0
*/
public function getDefaultEncryptionModuleId();
/**
* set default encryption module Id
*
* @param string $moduleId
* @return string
* @since 8.1.0
*/
public function setDefaultEncryptionModule($moduleId);
}
@@ -0,0 +1,181 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Bjoern Schiessle <bjoern@schiessle.org>
* @author Björn Schießle <bjoern@schiessle.org>
* @author Joas Schilling <coding@schilljs.com>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @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 <http://www.gnu.org/licenses/>
*
*/
namespace OCP\Encryption\Keys;
/**
* Interface IStorage
*
* @since 8.1.0
*/
interface IStorage {
/**
* get user specific key
*
* @param string $uid ID if the user for whom we want the key
* @param string $keyId id of the key
* @param string $encryptionModuleId
*
* @return mixed key
* @since 8.1.0
*/
public function getUserKey($uid, $keyId, $encryptionModuleId);
/**
* get file specific key
*
* @param string $path path to file
* @param string $keyId id of the key
* @param string $encryptionModuleId
*
* @return mixed key
* @since 8.1.0
*/
public function getFileKey($path, $keyId, $encryptionModuleId);
/**
* get system-wide encryption keys not related to a specific user,
* e.g something like a key for public link shares
*
* @param string $keyId id of the key
* @param string $encryptionModuleId
*
* @return mixed key
* @since 8.1.0
*/
public function getSystemUserKey($keyId, $encryptionModuleId);
/**
* set user specific key
*
* @param string $uid ID if the user for whom we want the key
* @param string $keyId id of the key
* @param mixed $key
* @param string $encryptionModuleId
* @since 8.1.0
*/
public function setUserKey($uid, $keyId, $key, $encryptionModuleId);
/**
* set file specific key
*
* @param string $path path to file
* @param string $keyId id of the key
* @param mixed $key
* @param string $encryptionModuleId
* @since 8.1.0
*/
public function setFileKey($path, $keyId, $key, $encryptionModuleId);
/**
* set system-wide encryption keys not related to a specific user,
* e.g something like a key for public link shares
*
* @param string $keyId id of the key
* @param mixed $key
* @param string $encryptionModuleId
*
* @return mixed key
* @since 8.1.0
*/
public function setSystemUserKey($keyId, $key, $encryptionModuleId);
/**
* delete user specific key
*
* @param string $uid ID if the user for whom we want to delete the key
* @param string $keyId id of the key
* @param string $encryptionModuleId
*
* @return boolean False when the key could not be deleted
* @since 8.1.0
*/
public function deleteUserKey($uid, $keyId, $encryptionModuleId);
/**
* delete file specific key
*
* @param string $path path to file
* @param string $keyId id of the key
* @param string $encryptionModuleId
*
* @return boolean False when the key could not be deleted
* @since 8.1.0
*/
public function deleteFileKey($path, $keyId, $encryptionModuleId);
/**
* delete all file keys for a given file
*
* @param string $path to the file
*
* @return boolean False when the keys could not be deleted
* @since 8.1.0
*/
public function deleteAllFileKeys($path);
/**
* delete system-wide encryption keys not related to a specific user,
* e.g something like a key for public link shares
*
* @param string $keyId id of the key
* @param string $encryptionModuleId
*
* @return boolean False when the key could not be deleted
* @since 8.1.0
*/
public function deleteSystemUserKey($keyId, $encryptionModuleId);
/**
* copy keys if a file was renamed
*
* @param string $source
* @param string $target
* @return boolean
* @since 8.1.0
*/
public function renameKeys($source, $target);
/**
* move keys if a file was renamed
*
* @param string $source
* @param string $target
* @return boolean
* @since 8.1.0
*/
public function copyKeys($source, $target);
/**
* backup keys of a given encryption module
*
* @param string $encryptionModuleId
* @param string $purpose
* @param string $uid
* @return bool
* @since 12.0.0
*/
public function backupUserKeys($encryptionModuleId, $purpose, $uid);
}