Commit Graph

247 Commits

Author SHA1 Message Date
Bjoern Schiessle a9e22c5f1c
make file cache updates more robust
only update the encrypted version after the write operation is finished and the stream is closed

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-07-31 12:24:38 +02:00
Arthur Schiwon 38a90130ce
move log constants to ILogger
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2018-04-26 10:45:52 +02:00
Bjoern Schiessle 8042e6b8fb
this was a migration step to ownCloud 8.0 to restructure the encryption folder which is no longer needed
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-03-02 10:09:52 +01:00
Morris Jobke 236086c457
Merge pull request #8335 from nextcloud/remove-unused-import
Remove unused import statements
2018-02-14 22:23:07 +01:00
Morris Jobke d3d045dd5c
Remove unused import statements
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-14 16:55:43 +01:00
Morris Jobke e2974f1133
Simplify return statement
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-13 21:55:24 +01:00
Morris Jobke a661f043e1
Remove unneeded semicolon and parentheses
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 23:46:40 +01:00
Joas Schilling c2b1bd92d6
Merge pull request #8063 from nextcloud/inline-value
Return value immediately instead of assigning to a one-time variable
2018-01-26 10:15:39 +01:00
Morris Jobke 0a56d2185e
Return value immediately instead of assigning to a one-time variable
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 00:02:03 +01:00
Morris Jobke 464f024fa9
Use stripos instead of strpos(strtolower(), 'something')
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-25 22:59:50 +01:00
Morris Jobke 2a38605545
Properly log the full exception instead of only the message
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-23 10:57:21 +01:00
Morris Jobke 0eebff152a
Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Morris Jobke b1f77aca4e Merge pull request #6919 from nextcloud/di-appmanager-encryption-migration
Use DI for IAppManager to encryption migration
2017-10-24 16:33:03 +02:00
Morris Jobke 99934134dc
Use DI for IAppManager to encryption migration
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-10-24 15:52:00 +02:00
Morris Jobke 5987099d2a
Remove unneeded check if app is enabled
App code will not be executable if the app is not enabled, because the autoloader refuses to load that class.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-10-23 23:47:06 +02:00
Kenneth Newwood 7092c50e7c print generated encryption key passwords directly after generating the keys so that errors during the encryption do not lead to a potentially massive data loss
Signed-off-by: Kenneth Newwood <kenneth@newwood.name>
2017-09-11 12:52:25 +02:00
Joas Schilling 0ebdf871e0 Fix comparisons in encryption app
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-08-01 13:54:07 +02:00
Bjoern Schiessle 473824fa06
make sure that we always have a owner
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-07-20 11:40:17 +02:00
Bjoern Schiessle 20a6b22db6
Add recovery key on public upload
In order to decide if a recovery key needs to be added we always
need to check the files owner settings and not the settings of
the currently logged in user.

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-07-20 11:40:14 +02:00
Bjoern Schiessle d668e17769
since the default for the master key changed we need to write the setting explicitely to the database if we migrate from a older version
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-07-06 11:47:11 +02:00
Bjoern Schiessle 66debbe18e
add occ command to disable the master key again
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-07-06 11:47:11 +02:00
Bjoern Schiessle 5f75468aa4
improve status messages
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-07-06 11:47:11 +02:00
Bjoern Schiessle 28a7e72868
after the master key was loaded we are ready to go, no re-login needed
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-07-06 11:47:10 +02:00
Bjoern Schiessle da51ec38f4
only collect detailed access list if it is really needed
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-07-06 11:33:08 +02:00
Bjoern Schiessle 9c5ba2f12c
make master key the new default
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-07-06 11:33:03 +02:00
Arthur Schiwon 793de6a8d0
move encryption to security (and behind two factor things)
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-06-27 12:21:18 +02:00
Arthur Schiwon da53162656
We're on 13 now…
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-06-26 11:03:41 +02:00
Arthur Schiwon 39ca06e6b9
fix setting up encryption section
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-06-23 13:38:33 +02:00
Arthur Schiwon b7ce492c59
adapt encryption
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-06-23 12:38:05 +02:00
Morris Jobke 1729e4471f
Update comments to Nextcloud
* based on PR by @Ardinis
* see #4311

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-04-11 23:16:27 -05:00
Vincent Petry 6b9ef15803
Use master key for public links as well 2017-03-24 14:55:42 +01:00
Vincent Petry 43c081bdc9
Fix public link for master key
In public link mode there is no session, so the code should use the
public key instead.
2017-03-24 14:55:12 +01:00
Matthew Setter d7c9e2b841
Updated UI messages relating to the encryption functionality
The reason for updating these messages, is that grammatically they're
not quite correct. They showed a combination of:

- Related phrases, which could be either separated or joined better
- Related sentences, but which should be expressed as separate ones

They were also missing full-stops to end the them.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-22 18:06:55 -06:00
Bjoern Schiessle 9ce32d9941
always throw a encryption exception
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-03-14 12:11:28 +01:00
Bjoern Schiessle fcda3a20f4
create new encryption keys on password reset and backup the old one
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-01-10 17:04:32 +01:00
Bjoern Schiessle 8a401ee156
check if session is initialized
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2016-11-23 12:20:43 +01:00
Maxence Lange 558a934842 init Session/privateKeys on Master Key
I can't find another way to init the session ...
2016-11-22 13:19:42 -01:00
Thomas Müller 8628d57b2c
Move console command registration to info.xml for encryption as well as files_external
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-12 08:04:15 +02:00
Joas Schilling 5e5e5b77d5
Fix encryption app 2016-09-12 16:48:11 +02:00
Arthur Schiwon 14ddf9d923
rename IAdmin to ISettings, the interface is not bound to a specific settings scope 2016-08-11 14:48:21 +02:00
Arthur Schiwon f3b15a9ab9
fixes, improvements, and another app:
* setupSettings now also triggered on enable
* fixes detection of present admin section or settings in the DB
* add update routine in such cases
* encryption app migrated
2016-08-11 01:41:18 +02:00
Joas Schilling 352e8b3c79
More casing 2016-08-08 16:45:40 +02:00
Joas Schilling 0215b004da
Update with robin 2016-07-21 18:13:58 +02:00
Joas Schilling 813f0a0f40
Fix apps/ 2016-07-21 18:13:57 +02:00
Morris Jobke e7e0dc608b
fix strings 2016-06-20 13:13:37 +02:00
Lukas Reschke aba539703c
Update license headers 2016-05-26 19:57:24 +02:00
Björn Schießle 0f728b4cd1
don't fail on "bad signature" during login. Most likely this happens because
the login password changed at the user back-end (e.g ldap). Such failures will
be handled after login correctly by allowing the user to adjust the passwords
2016-05-25 11:39:44 +02:00
Joas Schilling 4a3311f430 Move Encryption app to PSR-4 (#24524)
* Move Encryption to PSR-4

* Move encryption tests to PSR-4

* Fix the tests
2016-05-12 09:42:19 +02:00
Bjoern Schiessle d86f8ba5f8
if we don't have a encrypted file key we can return a empty string right away 2016-04-26 11:06:55 +02:00
Bjoern Schiessle 088ffd05d7
don't create a private-/public-key pair for each user if the master key is enabled 2016-04-26 11:06:55 +02:00
Vincent Petry b50d3255fb Merge pull request #22791 from owncloud/enc_master_key_improvements
Enc master key improvements
2016-04-21 11:48:26 +02:00
Thomas Müller 50e20e531e
Introduce isReadyForUser and verify in file transfer ownership - fixes #23786 2016-04-15 15:07:40 +02:00
Bjoern Schiessle 89223379ad replaceUserKeys() actually deletes the users keys -> update method name and doc-block 2016-03-18 11:06:14 +01:00
Bjoern Schiessle 5e267589d4 only create and update user specific key if no master key is enabled 2016-03-18 11:06:14 +01:00
Thomas Müller f3f08cf910 Merge pull request #23192 from owncloud/make-ancient-users-happy-with-totally-untested-stuff
Fallback for crappy ancient distributions
2016-03-16 21:56:36 +01:00
Bjoern Schiessle 9de4a8338e allow group shares, even if not all public keys are available 2016-03-15 11:33:19 +01:00
Lukas Reschke 3a5f58c9b0 Fallback for crappy ancient distributions
Fixes https://github.com/owncloud/core/issues/23181
2016-03-12 23:11:31 +01:00
Lukas Reschke c353d51810 Remove Scrutinizer Auto Fixer 2016-03-01 17:48:23 +01:00
Lukas Reschke 933f60e314 Update author information
Probably nice for the people that contributed to 9.0 to see themselves in the AUTHORS file :)
2016-03-01 17:25:15 +01:00
Bjoern Schiessle 95ea2ccb53 make decrypt all work with the master key 2016-02-29 14:54:32 +01:00
Bjoern Schiessle 9dc759b4dc remember signature version and only set it on update to make sure that other
apps like files_versions still get the old signature version
2016-02-10 13:27:32 +01:00
Bjoern Schiessle 43ed86313c use the version of the original file if we write the part file to have a proper version if we move the file over to the original location 2016-02-10 11:08:03 +01:00
Vincent Petry 45c78476f5 Use cache update instead of put for encryption version
Saves a call to fetch the file id which didn't even work for a reason.

This fix properly sets the version in the database.
2016-02-09 23:43:28 +01:00
Lukas Reschke 6724f76573 Use cache and add tests 2016-02-09 23:43:27 +01:00
Bjoern Schiessle 377d7fb8a8 don't decrease ->version for part files but only a local variable, otherwise it can happen that we decrease it twice and end up with the wrong value 2016-02-09 23:43:27 +01:00
Bjoern Schiessle 966eb4b084 realPath should contain the path to the file we want to read, e.g. the version and not the original file 2016-02-09 23:43:27 +01:00
Lukas Reschke 5ccb9dfa7e Use database for keeping track of the version 2016-02-09 23:43:27 +01:00
Lukas Reschke 3badf5caf5 Use number of chunk for HMAC as well
Prevents switching single blocks within the encrypted file.
2016-02-09 23:43:26 +01:00
Lukas Reschke b5824f024a Keep track of file version
This way it is not possible anymore for an external storage admin to put up old versions of the file.
2016-02-09 23:43:26 +01:00
Lukas Reschke d5c1596887 Clarify documentation 2016-02-09 23:43:26 +01:00
Lukas Reschke 3b62459c41 Use hash with appended "a" of the original password for the authentication 2016-02-09 23:43:26 +01:00
Björn Schießle 9bb97c714b fixing unit tests 2016-02-09 23:43:26 +01:00
Lukas Reschke b9ff16498b Use random_bytes instead OpenSSL 2016-02-09 23:43:26 +01:00
Björn Schießle 61dd191253 meta data are at the end of the file 2016-02-09 23:43:25 +01:00
Björn Schießle e7ff84df5c always use default cipher for write operations, no matter how the file was encrypted before 2016-02-09 23:43:25 +01:00
Björn Schießle cf3a8f274f make it backward compatible to work with signed and un-signed files 2016-02-09 23:43:25 +01:00
Björn Schießle 40a5ba72fc sign all encrypted blocks and check signature on decrypt 2016-02-09 23:43:25 +01:00
Lukas Reschke db8f267647 Add note about the addPadding function 2016-02-09 23:43:25 +01:00
Lukas Reschke 59ebad0b53 Use an actual 16 byte long IV
The previous IV was actually 12 byte extended to 16 byte using base64. As the encrypted file should be fine with containing binary data as well we can simply remove the encoding like that here.
2016-02-09 23:43:24 +01:00
Lukas Reschke d25b8dacb3 Use AES-256-CTR as default
CTR is recommended over CFB mode.
2016-02-09 23:43:24 +01:00
Thomas Müller e0aa6e01ab Merge pull request #21612 from owncloud/fix_21598
fix public link sharing if the master key is enabled
2016-01-13 10:34:48 +01:00
Thomas Müller 682821c71e Happy new year! 2016-01-12 15:02:18 +01:00
Roeland Jago Douma 876fb83ddc getMediumStrengthGenerator is deprecated and does not do anything anymore 2016-01-11 20:06:30 +01:00
Björn Schießle 46f6c289ca only use master key ID if a user is logged in. Otherwise keep the public link share key 2016-01-11 13:09:06 +01:00
Lukas Reschke 0654d37da8 Remove undefined variable 2016-01-07 21:30:44 +01:00
Lukas Reschke 00a01a8de2 Fix PHPDoc + Add handling for error cases
Makes static code analyzers happier.
2016-01-07 21:30:44 +01:00
Lukas Reschke f3360d51c6 Use PHP polyfills 2015-12-11 08:47:36 +01:00
Thomas Müller eebe2b9c23 User IUser::getEMailAddress() all over the place 2015-12-02 21:25:05 +01:00
Scrutinizer Auto-Fixer be4c3a8b56 Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2015-11-27 15:32:44 +00:00
Robin Appelman b025f07fb7 Make Cache\Updater per storage 2015-11-25 14:16:00 +01:00
Phil Davis 46261b5ff1 Correct the description of function setEncryptHomeStorage 2015-11-03 22:47:55 +05:45
Bjoern Schiessle 5fad45b230 make encryption configurable for home storage 2015-10-27 14:24:20 +01:00
Lukas Reschke 8f09d5b67c Update license headers 2015-10-26 14:04:01 +01:00
Joas Schilling e0a56317fa Fix "Call to a member function getUID() on boolean" in Crypt 2015-10-22 11:46:37 +02:00
Morris Jobke b945d71384 update licence headers via script 2015-10-05 21:15:52 +02:00
Bjoern Schiessle bf82015254 add some output to explain the pre-conditions for decrypt-all 2015-10-05 12:41:05 +02:00
Bjoern Schiessle 90f1e3dc94 no need to list users if all users already had a key-pair 2015-09-24 12:47:46 +02:00
Bjoern Schiessle daf5d1ff2e fix small typo 2015-09-21 16:48:15 +02:00
Bjoern Schiessle 9bd4f2d41e occ script to disable encryption and to decrypt all files again 2015-09-15 22:39:44 +02:00
Lukas Reschke 7953cc9494 Function does return void
This function does return void and not a bool.
2015-09-15 14:02:10 +02:00