aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Encryption/IManager.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Encryption/IManager.php')
-rw-r--r--lib/public/Encryption/IManager.php81
1 files changed, 81 insertions, 0 deletions
diff --git a/lib/public/Encryption/IManager.php b/lib/public/Encryption/IManager.php
new file mode 100644
index 00000000000..27cceab29df
--- /dev/null
+++ b/lib/public/Encryption/IManager.php
@@ -0,0 +1,81 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+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);
+}