summaryrefslogtreecommitdiffstats
path: root/lib/public/Encryption/Keys
diff options
context:
space:
mode:
authorRoeland Douma <rullzer@users.noreply.github.com>2016-05-17 23:08:43 +0200
committerThomas Müller <DeepDiver1975@users.noreply.github.com>2016-05-17 23:08:43 +0200
commitd5506b605fb774b5935365a6dea1ef57e9c61475 (patch)
treec28e8ffe5b6d71507b1ceaf503f3bb5657098287 /lib/public/Encryption/Keys
parentde5b7609f96e166b96b7380e62d32ac51d85d50f (diff)
downloadnextcloud-server-d5506b605fb774b5935365a6dea1ef57e9c61475.tar.gz
nextcloud-server-d5506b605fb774b5935365a6dea1ef57e9c61475.zip
Move \OCP\Encryption to PSR-4 (#24680)
Diffstat (limited to 'lib/public/Encryption/Keys')
-rw-r--r--lib/public/Encryption/Keys/IStorage.php172
1 files changed, 172 insertions, 0 deletions
diff --git a/lib/public/Encryption/Keys/IStorage.php b/lib/public/Encryption/Keys/IStorage.php
new file mode 100644
index 00000000000..cfac4ba58f7
--- /dev/null
+++ b/lib/public/Encryption/Keys/IStorage.php
@@ -0,0 +1,172 @@
+<?php
+/**
+ * @author Björn Schießle <schiessle@owncloud.com>
+ * @author Joas Schilling <nickvergessen@owncloud.com>
+ * @author Morris Jobke <hey@morrisjobke.de>
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ *
+ * @copyright Copyright (c) 2016, 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 <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCP\Encryption\Keys;
+
+/**
+ * Interface IStorage
+ *
+ * @package OCP\Encryption\Keys
+ * @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);
+
+}