Commit Graph

285 Commits

Author SHA1 Message Date
Matthieu Gallien
f57ebbd063 fix(csr): sets a version on CSR requests for end-to-end encryption
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-07-29 15:37:26 +02:00
Matthieu Gallien
738683c9e8 fix(csr/e2ee): disable broken code when generating a CSR for encryption
the call to X509_REQ_set_version is always failing
we will skip it

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-07-29 15:37:26 +02:00
Matthieu Gallien
520a866776 fix(clazy): fix clazy reported issues with the existing code
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-07-29 15:37:26 +02:00
Matthieu Gallien
b0910a8c14 fix(encryption): properly get private key when decoding data
will stop failing to decode using private/publy key pair when
downloading encrypted content (i.e. symetric keys are encrypted using
asymetric encryption)

we improperly use a certificate hash to find the key while the private
key is the current one of the user downloading the files

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-07-29 15:37:26 +02:00
Matthieu Gallien
5248ac1117 fix(logs): makes encryption logs more useful
errors should use warning level

not so useful logs should not be info loevel or should not exists

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-07-29 15:37:26 +02:00
Rello
1ec8fe63ac Change qCDebug error logs to qCWarning 2025-06-05 09:24:32 +02:00
Andy Scherzinger
130668c3b9
docs(reuse): Migrate to SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-04-29 09:00:19 +02:00
Matthieu Gallien
853f9b7a0c
use a better and shorter title for input dialog for PIN code
we have to make sure the title is short and easy to understand

if it is too long, it will be truncated giving a bad experience for the
user

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-03-18 11:46:36 +01:00
rakekniven
2f77e015c8 chore(i18n): Remove blank
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-02-17 07:58:54 +01:00
Matthieu Gallien
a4dfef2daf remove duplicated code in ClientSideEncryption class
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-02-07 09:12:29 +01:00
Matthieu Gallien
335ea176b4 fixes for software end-to-end encryption issues
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-02-07 09:12:29 +01:00
Matthieu Gallien
b8f87134ed fix setting up encryption with software based certificate storage
some data need to be converted to or from base64

some data should not be converted

clear one such place where a conversion to base64 was too much

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-02-07 09:12:29 +01:00
Matthieu Gallien
f42c944e6a partial fix for broken automated tests
will use different validation method for hardware stored certificates
and pure software certificates emited by the nextcloud server

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-02-07 09:12:29 +01:00
Matthieu Gallien
2a52ec33b0 add support to use PKCS#11 harware token to store certifice for e2ee
Close #5685

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-02-07 09:12:29 +01:00
Matthieu Gallien
fb0b89f5fa
fix wrong if condition
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-01-27 18:56:48 +01:00
Matthieu Gallien
6cc7a9955f switch client side encryption to use sha256 hash algorithm
Close #5989

only support sha1 for depreceted read-only usage

use sha256 for new encrypted write operations

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-01-23 10:47:16 +01:00
Matthieu Gallien
a8021a2dff
use modern non deprecated hash algorithm and parameters
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-12-12 10:02:51 +01:00
Matthieu Gallien
1533670e77 add NextcloudSslCertificate to wrap QSslCertificate in QHash
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-04-26 09:05:12 +02:00
Matthieu Gallien
44f6d514ff only try to include qt6-keychain header and not the qt5 version
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-04-26 09:05:12 +02:00
Claudio Cambra
79a150baf4 Fix qtkeychain imports with Qt6
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-26 09:05:12 +02:00
Matthieu Gallien
4e643166af ensure we ignore deprecated warnings from openssl in unity builds
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-03-27 10:34:22 +01:00
Matthieu Gallien
87522bf24c suppress deprecated warnings from openssl
is needed to avoid failing builds due to warnings

unclear when we will tackle the work of removing the use of deprectaed
APIs

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-02-06 08:45:33 +01:00
alex-z
af612525c4 End-to-End Encryption V2. Implemented sharing between users. Automatic migration from 1.0 to 2.0(only for flat folders). Improved secure filedrop.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2024-01-29 16:13:25 +01:00
alex-z
50d168759f Added error reporting for E2EE issues.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-12-11 18:03:57 +01:00
Matthieu Gallien
242135d9d9 remove deprecated openssl 3.0 warnings
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-10-16 22:00:00 +02:00
Matthieu Gallien
10cac0f46f fix review comments
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
0b3d67437a improve logs of e2ee such that errors are easy to see
removed some internal debug logs that should not be needed

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
1712f98b3c make sure to pass shared pointer by const ref when possible
avoid unnecessary copies of shared pointers

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
af1162804a make sure we clean only what is needed if e2ee is disabled
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
b9761a23fe tidy code
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
ad34de1622 make sure e2ee init is either fully done or not at all
make sure that we have only two cases:
1) keys are stored on the server and the client
2) keys are stored on the server and not yet on the client

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
bef5d1a893 if keys are not on server, also delete local keys
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
c8e5ac7b5f fix upload of private key when initializing the end-to-end encryption
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
3a0e0f2097 can now generate the CSR again if the first try to upload failed
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
50234c5859 try to resend the public key if it is not on server but on local storage
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
d3b583d967 improvement to be able to retry the e2ee init steps
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
17484cd69f finish local save of keys and upload them to server
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
1b7c16e8ff solve memory mismanagement of object life time
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
1cb632234c e2ee init rework
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Matthieu Gallien
15f3e2acae backup private key early
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-30 15:32:03 +02:00
Dimitri Papadopoulos
9d830e94f9 Fix typos found by codespell
Signed-off-by: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
2023-06-21 08:47:13 +02:00
alex-z
90e3a37a20 E2EE. Fix freeze on metadata checksum validation.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-05-08 11:29:16 +02:00
Matthieu Gallien
a852eda937 in case server has no private key, let e2ee init fail
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-04-07 16:08:23 +02:00
alex-z
31c3aee447 Fix unit tests SecureFileDrop
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-04-05 12:21:28 +02:00
Matthieu Gallien
c9cf248e5d
fix compilation
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-04-04 18:01:26 +02:00
Matthieu Gallien
b0c69481f2
try different permutation to try to recover the broken checksum
will only accept a checksum that can be computed from proper data

should still be safe

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-04-04 17:41:17 +02:00
Matthieu Gallien
a76d9fe46d sort encrypted files by their id to compute checksum
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-04-04 15:06:05 +02:00
Matthieu Gallien
5b1238ddb1
compilation fixes for windows
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-03-31 18:06:10 +02:00
Matthieu Gallien
6bf4570b99
compatibility with final file drop implementation
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-03-31 17:18:29 +02:00
Matthieu Gallien
8659df2266
prevent downgrading e2ee metadata format after initial migration
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-03-31 17:18:29 +02:00