diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index 96f06b154f82f98bb94e129b65afc5b2ab6150a9..c26119b6c2efb5c5ac071cb50cd96ce0d9b5b42c 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -497,7 +497,8 @@ class Hooks {
 
 			// handle share-keys
 			$localKeyPath = $view->getLocalFile($baseDir . 'share-keys/' . $params['oldpath']);
-			$matches = glob(preg_quote($localKeyPath) . '*.shareKey');
+			$escapedPath = preg_replace('/(\*|\?|\[)/', '[$1]', $localKeyPath);
+			$matches = glob($escapedPath . '*.shareKey');
 			foreach ($matches as $src) {
 				$dst = \OC\Files\Filesystem::normalizePath(str_replace($params['oldpath'], $params['newpath'], $src));
 
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php
index 8de1d413642578abcd8cf98c226059850d992b42..da2ee380e89bc780cb9b57c37e838dbfcf559d52 100755
--- a/apps/files_encryption/lib/keymanager.php
+++ b/apps/files_encryption/lib/keymanager.php
@@ -488,7 +488,8 @@ class Keymanager {
 			$view->unlink($baseDir . $filePath);
 		} else {
 			$localKeyPath = $view->getLocalFile($baseDir . $filePath);
-			$matches = glob(preg_quote($localKeyPath) . '*.shareKey');
+			$escapedPath = preg_replace('/(\*|\?|\[)/', '[$1]', $localKeyPath);
+			$matches = glob($escapedPath . '*.shareKey');
 			foreach ($matches as $ma) {
 				$result = unlink($ma);
 				if (!$result) {
@@ -547,7 +548,10 @@ class Keymanager {
 	 */
 	private static function recursiveDelShareKeys($dir, $userIds) {
 		foreach ($userIds as $userId) {
-			$matches = glob(preg_quote($dir) . '/*' . preg_quote('.' . $userId . '.shareKey'));
+			$extension = '.' . $userId . '.shareKey';
+			$escapedDir = preg_replace('/(\*|\?|\[)/', '[$1]', $dir);
+			$escapedExtension = preg_replace('/(\*|\?|\[)/', '[$1]', $extension);
+			$matches = glob($escapedDir . '/*' . $escapedExtension);
 		}
 		/** @var $matches array */
 		foreach ($matches as $ma) {
@@ -556,7 +560,7 @@ class Keymanager {
 					'Could not delete shareKey; does not exist: "' . $ma . '"', \OCP\Util::ERROR);
 			}
 		}
-		$subdirs = $directories = glob(preg_quote($dir) . '/*', GLOB_ONLYDIR);
+		$subdirs = $directories = glob($escapedDir . '/*', GLOB_ONLYDIR);
 		foreach ($subdirs as $subdir) {
 			self::recursiveDelShareKeys($subdir, $userIds);
 		}