Commit Graph

225 Commits

Author SHA1 Message Date
alex-z
09f316dcfc E2EE cut extra zeroes from derypted byte array.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-03-17 16:04:43 +01:00
alex-z
b6ba1fe0d6 Implement Secure filedrop link share. Move data from 'filedrop' to 'files' when syncing E2EE folders.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-03-02 19:29:11 +01:00
Matthieu Gallien
a8a5dfe6c6 skip e2e encrypted files with empty filename in metadata
we cannot decrypt a file without a name

for now we will ignore them

we should probably do much more for the user but I fail to see how to
generate errors from e2ee module

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-02-20 09:50:34 +01:00
Claudio Cambra
446bb29155 Avoid trying to delete keychain encryption data if there is no encryption data configured
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-02-14 20:22:51 +01:00
Claudio Cambra
2c17305864 Add sensitiveDataRemaining convenience method to clientsideencryption
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-02-14 20:22:51 +01:00
Claudio Cambra
e7c978551d Make sure to return in checkAllSensitiveDataDeleted
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-02-14 20:22:51 +01:00
Claudio Cambra
4ded5e1b38 Don't early return in sensitive data deletion for clientsideencryption if the entries were never stored in keychain
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-02-14 20:22:51 +01:00
alex-z
bd9eb0c89f Always unlock E2EE folders, even when network failure or crash.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-01-30 16:01:19 +01:00
Claudio Cambra
cc6bdc9bd5
Add ability to remove local encryption keys through settings
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-01-24 17:00:14 +01:00
Claudio Cambra
689dee6a16
Properly handle sensitive data deletion in ClientSideEncryption
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-01-24 17:00:14 +01:00
alex-z
260ba0be46 Fix security vulnerability when receiving empty metadataKeys from the server.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-01-18 11:41:55 +01:00
Claudio Cambra
31876926ac Only request mnemonic when user explicitly wants to enable E2EE
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2022-12-09 12:12:37 +01:00
Valdnet
e2ff8715f4 l10n: Correct spelling
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-12-01 15:33:15 +01:00
allexzander
9ab89daedd E2EE. Do not generate keypair without user request.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2022-11-01 09:18:28 +01:00
Matthieu Gallien
b9d4e7045e fix review comments from @allexzander
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-10-24 10:25:41 +02:00
Matthieu Gallien
7ffbd95636 fix more sonarcloud issues
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-10-24 10:25:41 +02:00
Matthieu Gallien
5e81ab821e fix more issues reported by sonarcloud
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-10-24 10:25:41 +02:00
Matthieu Gallien
cd30d3645e fix review comments from sonarcloud static analyzis
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-10-24 10:25:41 +02:00
Matthieu Gallien
8ea75f4967 address review comments from @allexzander
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-10-24 10:25:41 +02:00
Matthieu Gallien
1ec7774e2f validate certificate for E2EE against private key
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-10-24 10:25:41 +02:00
Matthieu Gallien
ecc588c27a avoid possibly crashing static_cast
ran
run-clang-tidy-14.py -header-filter='.*' -checks='-*,cppcoreguidelines-pro-type-static-cast-downcast' -fix

this can prevent casting to a type that is unrelated to the real type
and later cause a crash because you go into undefined behavior domain

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-10-03 10:23:24 +02:00
Valdnet
5117b05ef8
i18n: Spelling unification
Spelling unification in Transifex.

Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-08-05 11:30:33 +02:00
Matthieu Gallien
fe7a62bc77 remove variables set but never read
will fix a clang compilation error

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-08-02 16:28:50 +02:00
Valdnet
5ad0dc004a i18n: Fix for "end-to-end"
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-06-28 08:55:54 +02:00
Claudio Cambra
b7c2e16aa9 Make client language gender-neutral and more clear
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-06-24 14:36:36 +02:00
Felix Weilbach
d6e60cd8d4 Don't log encryption data in release mode
We deliver our builds to users with debug logging enabled to have an
easier time finding problems. However, logging all the encryption data
in this loop is too much and should not be done in release mode.

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-09-27 19:50:38 +00:00
Felix Weilbach
fb1b3481d1 Fix warnings
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-09-17 13:32:26 +00:00
Dmytro Korchynskyi
608fc5fb3a Fixed warnings by using static_cast
Signed-off-by: Dmytro Korchynskyi <kdl.dima@gmail.com>
2021-09-13 13:05:41 +03:00
Felix Weilbach
8a8d488454 Add dialog to set user status
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-09-09 11:18:22 +02:00
allexzander
ba73b6d914 VFS + E2EE. Improved data alignment and unit tests for StreamingDecryptor. Refactoring and renaming for readability.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-08-20 12:57:22 +00:00
allexzander
2c78925acb VFS + E2EE VFS implicit hydration of E2EE files.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-08-20 12:57:22 +00:00
Felix Weilbach
acf6cc0527 Remove unused functions and variables
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-08-11 20:20:39 +00:00
Matthieu Gallien
2bc72592a0 fix review comments
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-07-01 14:40:25 +02:00
Matthieu Gallien
698d5f19ba download server public key and check user certificate against it
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-07-01 14:07:27 +02:00
allexzander
bf39f053c4 Fix review comments.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-06-01 13:51:02 +00:00
allexzander
a80c58f367 Bugfix. Crash when printing OpenSSL decryption errors with no e2ee mnemonic.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-06-01 13:51:02 +00:00
Matthieu Gallien
7fb09a8163 check e2ee public key against private one
should ensure we have matching private/public keys

Signed-off-by: Matthieu Gallien <matthieu_gallien@yahoo.fr>
2021-05-27 07:26:48 +00:00
Kevin Ottens
d20fc1a6ce Remove unused method
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-26 11:20:13 +00:00
Kevin Ottens
4168c0d082 Avoid keeping Account alive via a shared ptr in ClientSideEncryption
This account object was really only used during the initialization phase
or for forgetting the sensitive data. So let's receive it as parameter
there and pass it on from job to job as needed.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-26 11:20:13 +00:00
allexzander
4ed7feab2b Implement nested items removal when removing root encrypted folder.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-01-11 21:12:58 +02:00
Kevin Ottens
b2533e6451
Remove encrypt status job fetching from ClientSideEncryption
This is now unused.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-15 10:59:23 +01:00
Kevin Ottens
580b36fe20
Remove unused methods on ClientSideEncryption
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-15 10:59:23 +01:00
Kevin Ottens
3427dadaeb
Get rid of FindQt5Keychain.cmake
QtKeychain provides Qt5KeychainConfig.cmake and friends nowadays, so no
need to have a less reliable and outdated find module on our end.

Also this shows that we were including keychain.h in the wrong way and
were not using the link target, so both got fixed as well.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-11-02 13:19:48 +01:00
Kevin Ottens
10cb4170c7
Don't use depth infinity anymore to get the folders e2ee status
This way we avoid the expensive SQL query on the server at the price of
more round-trips since we're doing the recursive traversal by hand now.

Also it turns out this depth was used for all the other propfind calls
during sync when we want fresher information regarding a folder. This
was very inefficient in all cases and won't happen anymore.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-21 10:00:59 +02:00
Kevin Ottens
b5fdbefb0e
Make sure jobs don't outlive ClientSideEncryption
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-21 10:00:58 +02:00
Kevin Ottens
399b97442e
Factor out the logic to start a new e2ee status job
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-21 10:00:58 +02:00
Kevin Ottens
cbc40b5a15
Mention the folder we listed in the debug logs
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-21 10:00:58 +02:00
Kevin Ottens
8e3ca71763
Change the way we store the job result
If there's more than one job we need to unite the maps not simply overwrite
them.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-21 10:00:58 +02:00
Kevin Ottens
9aeb7046d2
Start managing a list of GetFolderEncryptStatusJob
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-21 10:00:58 +02:00
Kevin Ottens
80cc196f6f Enable bugprone-narrowing-conversions clang-tidy check
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-09-01 06:37:03 +00:00