Commit Graph

270 Commits

Author SHA1 Message Date
plumbeo
1258caeab7 Save encrypted files in binary format
Default to the more space-efficient binary encoding for newly encrypted files
instead of the traditional base64 encoding, eliminating the 33% overhead.

The new option 'encryption.use_legacy_encoding' allows to force the legacy
encoding format if needed. Files encoded in the old format remain readable.

Based on https://github.com/owncloud/encryption/pull/224 and
https://github.com/owncloud/core/pull/38249 by karakayasemi.

Signed-off-by: plumbeo <plumbeo@users.noreply.github.com>
2022-05-04 17:38:25 +02:00
Carl Schwan
aeecb72e96 Fix a few psalm issues and moved back to psalm/phar 4.18
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-12 20:03:06 +01:00
Côme Chilliet
37f8f7a5a1 Fix tests on PHP 8.1 for encryption, files_sharing, files_version,
files_trashbin and theming apps

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-16 09:43:29 +01:00
Vincent Petry
60e44077b7 Fix encrypted version to 0 when finding unencrypted file
Whenever the command is run and a "legacy cipher" seems to be detected
when the legacy option is disabled, it's highly likely that the file is
actually unencrypted but the database contains a encrypted version
higher than 0 for some reason.

The command now detects this case and automatically sets the encrypted
version to 0 so that the file can be read again.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-26 10:44:49 +02:00
J0WI
91051d9207 Generate strong, human readable OTP
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2021-07-08 15:11:33 +02:00
Gary Kim
b78f3a57d1 Migrate HintException to OCP
Signed-off-by: Gary Kim <gary@garykim.dev>
2021-06-30 15:28:02 -04:00
Julius Härtl
75f7287b5e Merge pull request #27638 from nextcloud/enh/noid/fix-encrypted-version 2021-06-30 14:17:38 +02:00
Vincent Petry
d3eeecba54 Prevent running FixEncryptedVersion without master key
Return an error when running occ encryption:fix-encrypted-version
when master key encryption is not enabled.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-29 20:44:07 +02:00
Vincent Petry
101c65a949 Fix FixEncryptedVersionTest test
Fixed setup to use EncryptionTrait like other existing tests.
Fix expectations to not rely on side effects from previous test cases.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-29 14:39:51 +02:00
Vincent Petry
6170912ace Fix warnings in FixEncryptedVersion command
Fixed code warnings

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-29 14:39:51 +02:00
Vincent Petry
4e9241c706 Detect disabled signature check when reparing
When running occ encryption:fix-encrypted-version, detect whether the
setting 'encryption_skip_signature_check' is set and abort if it is,
because the repair cannot detect version mismatch errors with it
enabled.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-29 14:39:51 +02:00
Vincent Petry
a6dc81d419 Downstream encryption:fix-encrypted-version
For fixing "Bad signature" errors.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-29 14:39:51 +02:00
J0WI
c694b9d52b Remember current cipher
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2021-06-29 13:41:22 +02:00
blizzz
c6d5653a85 Merge pull request #26323 from J0WI/crypt-const
Use constant for supported formats
2021-06-23 11:17:05 +02:00
John Molakvoæ (skjnldsv)
215aef3cbd Update php licenses
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +02:00
Valdnet
b9d00a96b3 l10n: Unify spelling
Spelling unification in Nextcloud applications.
2021-05-20 09:22:07 +02:00
Roeland Jago Douma
7c30d1aa2d Merge pull request #26219 from nextcloud/relative-path-null
getRelativePath can return null
2021-03-30 21:10:05 +02:00
J0WI
e617361250 Use constant for supported formats
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2021-03-26 19:24:04 +01:00
J0WI
21494a5b7b Drop OpenSSL 0.9.8 workaround
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2021-03-26 19:23:10 +01:00
Robin Appelman
8a92229485 getStorage can also return null
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 14:56:40 +01:00
dependabot-preview[bot]
eb502c02ff Bump nextcloud/coding-standard from 0.3.0 to 0.5.0
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard) from 0.3.0 to 0.5.0.
- [Release notes](https://github.com/nextcloud/coding-standard/releases)
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/coding-standard/compare/v0.3.0...v0.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-18 13:31:24 +01:00
Roeland Jago Douma
918af40f05 Harden EncryptAll check for empty email
Reported by psalm
For #25641

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-15 22:28:28 +01:00
Morris Jobke
24d436cb60 Remove unneeded casts that were found by Psalm
In preparation of the update of Psalm from 4.2.1 to 4.3.1+ (see https://github.com/nextcloud/server/pull/24521)

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-01-11 13:14:41 +01:00
Christoph Wurst
d89a75be0b Update all license headers for Nextcloud 21
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-16 18:48:22 +01:00
Roeland Jago Douma
b3037dee6a FIXME use default RC4 method
* We should pick better default method!

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-07 15:44:04 +01:00
Roeland Jago Douma
98eede7f68 Fix encryption test
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-12-07 15:44:04 +01:00
Morris Jobke
dc5f17f561 Merge pull request #24288 from nextcloud/techdebt/noid/encryption-setup-dependency-cleanup
Remove unused dependencies in encryption app setup
2020-11-23 20:43:42 +01:00
Morris Jobke
c832e6180b Remove unused dependencies in encryption app setup
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-23 16:20:00 +01:00
Morris Jobke
efe644137d [encryption] Remove dependency fetching inside the constructor and move them to method call parameters
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-22 22:35:02 +01:00
Morris Jobke
858c7f4032 Auto-wire remaining encryption app services that depend on View
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-22 22:22:16 +01:00
Morris Jobke
5be18215fb Auto-wire as much as possible in the encryption app
Also cleans up only non-classname services in the server container

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-20 23:13:22 +01:00
essys
fdcfc4edce Update ScanLegacyFormat.php
Fixed a small typo on line 99.
2020-11-20 10:16:35 +01:00
Morris Jobke
42a033bbc4 Change to full class names for the encryption app DI in preparation of auto-wiring
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-11-11 21:30:45 +01:00
Christoph Wurst
b2de9a6f9e The encryption decrypt position can be int or string
The public API said string, internally we treated it as int. In reality
both are used. Let's reflect that in the documented argument type.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-13 10:51:22 +02:00
Christoph Wurst
8033655a5a Migrate encryption to the PSR container
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-07 15:34:06 +02:00
Christoph Wurst
d9015a8c94 Format code to a single space around binary operators
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-05 20:25:24 +02:00
Christoph Wurst
2a054e6c04 Update the license headers for Nextcloud 20
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-08-24 14:54:25 +02:00
Morris Jobke
da584462d1 Merge pull request #22018 from nextcloud/bugfix/noid/harden-key-generation
Harden SSE key generation
2020-08-19 20:42:34 +02:00
Morris Jobke
5a064ec28b Fix typo in error message
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-08-19 20:42:27 +02:00
Roeland Jago Douma
2bbb848c31 Add legacy scanning command
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-08-19 15:45:45 +02:00
Roeland Jago Douma
8928bbe969 Make legacy cipher opt in
* Systems that upgrade have this enabled by default
* New systems disable it
* We'll have to add some wargning in the setup checks if this is enabled

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-08-19 15:45:45 +02:00
Daniel Kesselberg
6f8147b18f Fix some MissingDocblockType or InvalidDocblock warnings.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-08-14 15:10:48 +02:00
Julius Härtl
36cfdd320b Harden key generation
There might be cases where multiple requests trigger the key generation
at the same time and the instance ends up with a non-fitting
public/private key pair. Therefore the whole key generation should be
locked. Other than that this makes sure that user key generation return
values are properly validated.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-08-14 07:58:40 +02:00
Roeland Jago Douma
9975b80d41 SSE enhancement
Do not blind concatenate ints. Lets add a _ between them. So that we can
distrinquis them properly

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-08-11 19:26:41 +02:00
Julius Härtl
fc1596fada Encryption is ready if master key is enabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-07-21 09:16:43 +02:00
Joas Schilling
d7c0b9cced Also always return in app commands
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-06-26 15:12:11 +02:00
Christoph Wurst
cb057829f7 Update license headers for 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-29 11:57:22 +02:00
Christoph Wurst
734c62bee0 Format code according to PSR2
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:56:50 +02:00
Christoph Wurst
28f8eb5dba Add visibility to all constants
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:54:27 +02:00
Christoph Wurst
caff1023ea Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +02:00