nextcloud / nextcloud/ios

"Server E2EE version 1.2, not compatible" plus "serious internal error in end-to-end encryption"

Open
#2,809 39 comments 4 reactions 1 assignee View on GitHub

@marinofaggiana is already working on this.

Since Feb 26, 2024.

bug
Dominant language
Swift
Stars
2.5k
Forks
1k
Avg merge
2d 18h
Merged PRs (30d)
13

Description

Steps to reproduce
  1. See steps at https://github.com/nextcloud/desktop/issues/5918#issuecomment-1962958510
  2. Create a new folder in an E2EE folder (using the Windows client)
  3. Open NC iOS app and open a E2EE folder
Expected behaviour

Folder content is shown, including the plain text name of the new created folder.

Actual behaviour

Error message is shown. Newly created folder is not shown in plain text.

Screenshots

Accessing E2EE folder with a newly created sub folder:
grafik

Going to an older subfolder which contains another newly created sub folder:
grafik

Status of E2EE on iOS:
grafik

Logs

When only accessing E2EE folder initially there was once in the server log:

[no app in context] Fehler: OCA\EndToEndEncryption\Exceptions\MissingMetaDataException: Intermediate meta-data file missing at <<closure>>

0. /var/www/nextcloud/apps/end_to_end_encryption/lib/Controller/LockingController.php line 158
   OCA\EndToEndEncryption\MetaDataStorage->saveIntermediateFile()
1. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 230
   OCA\EndToEndEncryption\Controller\LockingController->unlockFolder()
2. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 137
   OC\AppFramework\Http\Dispatcher->executeController()
4. /var/www/nextcloud/lib/private/AppFramework/App.php line 183
   OC\AppFramework\Http\Dispatcher->dispatch()
5. /var/www/nextcloud/lib/private/Route/Router.php line 315
   OC\AppFramework\App::main()
6. /var/www/nextcloud/ocs/v1.php line 65
   OC\Route\Router->match()
7. /var/www/nextcloud/ocs/v2.php line 23
   require_once("/var/www/nextcloud/ocs/v1.php")

DELETE /ocs/v2.php/apps/end_to_end_encryption/api/v1/lock/1038380?e2e-token=r6rXXXXYevR5h8yeXXXXVG2YlrVXXXXx24xPttVXXXXbDph8UXXXXuXuMyXXXXcu
from xxx.xxx.xxx.xxx by Username at 2024-02-25T15:27:41+01:00

(few parts masked with xxx | XXX)

Now when creating a new E2EE folder on the iOS app, after it synced to a Windows endpoint, trying to delete that folder on the Windows endpoint, desktop client shows an error and server log contains:

[webdav] Fehler: OCA\DAV\Connector\Sabre\Exception\Forbidden: Write access to end-to-end encrypted folder requires token - no token sent at <<closure>>

0. /var/www/nextcloud/apps/end_to_end_encryption/lib/Connector/Sabre/LockPlugin.php line 143
   OCA\EndToEndEncryption\Connector\Sabre\LockPlugin->verifyTokenOnWriteAccess()
1. /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
   OCA\EndToEndEncryption\Connector\Sabre\LockPlugin->checkLock()
2. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 456
   Sabre\DAV\Server->emit()
3. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 253
   Sabre\DAV\Server->invokeMethod()
4. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 321
   Sabre\DAV\Server->start()
5. /var/www/nextcloud/apps/dav/lib/Server.php line 365
   Sabre\DAV\Server->exec()
6. /var/www/nextcloud/apps/dav/appinfo/v2/remote.php line 35
   OCA\DAV\Server->exec()
8. /var/www/nextcloud/remote.php line 172
   require_once("/var/www/nextcl ... p")

DELETE /remote.php/dav/files/Username/Test
from XXX.XXX.XXX.XXX by Username at 2024-02-25T15:52:06+01:00

If now content is added to a (with iOS app) newly created E2EE folder, it will never be synced to a Windows endpoint (trying forever) - nothing in server logs for this:
grafik

grafik

Reasoning or why should it be changed/implemented?

There's obviously a serious E2EE issue - again!
So move this to whereever you think: iOS, desktop, end_to_end_encryption.

I think it all started with https://github.com/nextcloud/desktop/issues/5564 back then - BUT I had a rather working setup (except for https://github.com/nextcloud/desktop/issues/5918 on Windows endpoints/the desktop client).

Environment data

iOS version: 16.7.5

Nextcloud iOS app version: 5.1.0.7

Server operating system: Raspberry Pi OS

Web server: nginx

Database: MariaDB

PHP version: 8.3

Nextcloud version: 27.1.5


Seriously: how can I start with E2EE from scratch? I only and every see issues with it, despite the fact I need it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.