Commit graph

578 commits

Author SHA1 Message Date
Vincent Petry
5de5c317c1 Merge pull request #5967 from owncloud/encryption-extstorage-fixsizereset
Fix for extstorage + encryption where unencrypted size is not kept
2013-11-20 09:04:37 -08:00
Vincent Petry
fe44024868 Fix for extstorage + encryption where unencrypted size is not kept
Fix for external storage with encryption where the unencrypted size is
first written in the DB, then set back to zero, causing performance
issue because the file needs to be reopened every time to find out the
unencrypted size (and potentially needs a full redownload)
2013-11-20 16:22:55 +01:00
Bjoern Schiessle
f3e2a63712 check if it is a cached file or a version to resolve the correct path to the file key 2013-11-20 12:34:23 +01:00
Bjoern Schiessle
0c24c7c420 only check if the key file exists to decide if it is an encrypted file or not.
This solves problems with external storage which doesn't support fseek
2013-11-20 11:02:22 +01:00
Bjoern Schiessle
b823505bd1 make sure that the owners home is mounted correctly 2013-11-19 18:28:51 +01:00
Vincent Petry
d306f5c4cf Merge pull request #5908 from owncloud/fix_errorpage_call
[encryption] fix redirectToErrorPage() call
2013-11-18 05:17:28 -08:00
Bjoern Schiessle
82f30d37ca call error page with session as parameter 2013-11-17 13:23:07 +01:00
Björn Schießle
3ad546002f Merge pull request #5833 from owncloud/encryption_fixes
[encryption] preserve timestamps and etags during encryption/decryption
2013-11-15 08:47:22 -08:00
Bjoern Schiessle
faa08da944 instead of writing etmp files we write the dummy file to data/user/cache to avoid that etmp files show up in the users files list 2013-11-14 17:32:21 +01:00
Bjoern Schiessle
222fa88eec Merge branch 'master' into encryption_fixes 2013-11-13 12:11:12 +01:00
Vincent Petry
3fa651f2b1 Merge pull request #5447 from owncloud/fixing-5117-master
No data corruption duriing parallel upload
2013-11-13 02:59:34 -08:00
Bjoern Schiessle
dd0ebcede2 fixPartialFilePath() is now stripPartialFileExtension() 2013-11-12 18:48:31 +01:00
Bjoern Schiessle
77429c28fd rename fixPartialFilePath() to stripPartialFileExtension(), this name describes better what the method actually does 2013-11-12 16:48:24 +01:00
Bjoern Schiessle
e2fb8d7128 only update file cache if the file is already indexed to avoid that we create a incomplete file cache entry 2013-11-12 15:55:59 +01:00
Bjoern Schiessle
894856ce01 make sure that we keep the correct timestamp and etag after encryoption/decryption 2013-11-12 15:51:51 +01:00
Bjoern Schiessle
9f10f15fd4 fixing tests for the new part file handling 2013-11-12 10:24:10 +01:00
Bjoern Schiessle
802213f7ec let encryption app detect transfer id in path and handle it correctly 2013-11-11 17:47:59 +01:00
Vincent Petry
e246e2b669 Fixed encryption migration when entry is missing in DB
When resetting the DB and some users still have encrypted files, the
migration state isn't read properly becaue the migration entries are
missing. This causes the wrong file size to be returned.

This fix inserts the missing migration entry when this condition is met.

Fixes #5541
2013-10-25 15:38:35 +02:00
Markus Goetz
af58360434 files_encryption: Fix getFileSize()
For certain file sizes, we rounded to the wrong chunk number
and the returned bogus results. This should fix
https://github.com/owncloud/mirall/issues/1009

Conflicts:
	apps/files_encryption/tests/util.php
2013-10-23 16:28:43 +02:00
Bjoern Schiessle
eb348b776c set the init status to "NOT_INITIALIZED" if the encryption app gets enabled 2013-10-22 16:15:24 +02:00
Björn Schießle
9f8d52ee44 Merge pull request #5329 from owncloud/enc_fix_unencrypted_size
try to fix unencrypted file size if it doesn't look plausible
2013-10-16 02:25:28 -07:00
Bjoern Schiessle
6bfd8bdf63 revert last changes 2013-10-16 11:24:56 +02:00
Bjoern Schiessle
0811d2e304 added another test, if unencrypted size and encrypted size are equal we can also assume that something is wrong 2013-10-15 17:52:06 +02:00
Bjoern Schiessle
d3af7a9aa4 check if we are writing to user/files, otherwise skip encryption 2013-10-14 17:13:14 +02:00
Bjoern Schiessle
58196304b8 fix array key 2013-10-14 16:43:18 +02:00
Bjoern Schiessle
4151fd3ed9 try to fix unencrypted file size if it doesn't look plausible 2013-10-14 16:34:14 +02:00
Bjoern Schiessle
39d710e737 block file access if share keys are missing 2013-10-11 14:20:46 +02:00
Bjoern Schiessle
909af2b62e don't cache if the encryption is enabled, this can lead to problems during unit testing 2013-10-10 15:02:52 +02:00
Bjoern Schiessle
38e5da05af only encrypt file to users with encryption keys 2013-10-09 15:56:21 +02:00
Björn Schießle
2cdf54b77d Merge pull request #4877 from owncloud/ocs_share_api
OCS Share API
2013-10-04 07:10:21 -07:00
Bjoern Schiessle
4d79e7e673 Merge branch 'master' into encryption_improved_error_messages_4617 2013-09-30 15:08:53 +02:00
Bjoern Schiessle
62b8c36a40 check if encryption app is enabled before trying to calculate file size 2013-09-26 16:27:14 +02:00
Bjoern Schiessle
0b98427536 fix check if app is enabled 2013-09-25 19:23:07 +02:00
Bjoern Schiessle
71bbb2ea8b check if key exists before reading it 2013-09-25 17:44:05 +02:00
Bjoern Schiessle
f6e8a388a9 Merge branch 'master' into encryption_improved_error_messages_4617
Conflicts:
	settings/ajax/changepassword.php
2013-09-23 10:39:12 +02:00
Björn Schießle
e0f18ec72b Merge pull request #4708 from owncloud/encryption_fixes
make sure that initial encryption also starts for a fresh installation
2013-09-18 01:33:52 -07:00
Bjoern Schiessle
82cbbb8ab8 Merge branch 'master' into encryption_improved_error_messages_4617
Conflicts:
	apps/files/index.php
2013-09-16 10:42:37 +02:00
Thomas Müller
d5ddbfb045 Merge pull request #4719 from owncloud/port_4701_master
Always check variable type before using readdir to avoid surprises
2013-09-12 15:44:20 -07:00
Bjoern Schiessle
b2dde14dbc coding style fixes 2013-09-06 16:07:18 +02:00
Bjoern Schiessle
93f4dec798 fix part file handling and real size calculation, this should also solve #4581
Conflicts:
	apps/files_encryption/lib/stream.php
2013-09-06 16:06:34 +02:00
Bjoern Schiessle
f6830e7462 check shares for the real file and not for the .part file 2013-09-06 16:05:11 +02:00
Bjoern Schiessle
404e36323a first check if a extension exists before comparing it 2013-09-06 16:05:03 +02:00
Bjoern Schiessle
597a3cf1ad handle part files correctly 2013-09-06 16:04:56 +02:00
Bjoern Schiessle
1558cb860c remove test code 2013-09-06 13:16:48 +02:00
Bjoern Schiessle
fb462e83cc no longer enforce log out, but provide useful errors/warnings instead 2013-09-06 12:27:40 +02:00
Arthur Schiwon
c01675de5d more is_resource checks before readdir 2013-09-05 11:58:57 +02:00
Bjoern Schiessle
3d49631b8d make sure that initial encryption also starts for a fresh installation 2013-09-03 13:24:30 +02:00
ringmaster
39f4538e0f This function doesn't cache anymore. Adjusted PHPDoc to suit. 2013-09-02 09:59:01 -04:00
ringmaster
df7bfa4bf0 Don't cache the pkey, skip generation if the keyfile exists 2013-09-02 09:59:00 -04:00
Owen Winkler
9a263a500a Employ config option for OpenSSL config file, if provided.
This should help make OpenSSL configuration on Windows servers easier by allowing the openssl.cnf file to be set directly in the ownCloud config, rather than in SetEnv commands that don't exist and are hard to replicate in IIS.
2013-09-02 09:59:00 -04:00
Owen Winkler
fb34f49913 Start a branch for easier OpenSSL configuration. 2013-09-02 09:58:19 -04:00
Bjoern Schiessle
5e508f1ccb improved documentation of the methods 2013-09-02 11:34:28 +02:00
Bjoern Schiessle
bab63c22ee encryption error messages, distinguish between a re-enabled encryption app and a password change from outside 2013-09-02 11:26:11 +02:00
Bjoern Schiessle
d7dca966a2 improved error messaging, initial commit 2013-08-30 10:17:50 +02:00
Thomas Müller
582b33bdf1 Merge pull request #4537 from owncloud/no-realpath
Do not use realpath() on includes.
2013-08-22 01:50:31 -07:00
Andreas Fischer
83afb46205 Use __DIR__ instead of dirname(__FILE__).
This is possible because we require PHP 5.3 or higher.
2013-08-21 11:01:24 +02:00
Andreas Fischer
9753e44ac2 Do not use realpath() on includes.
If the file does not exist, realpath() returns false and "include false;"
produces "Failed opening '' for inclusion" which is a useless error message.

'include' works just fine with symlinks, "./" and "../".
2013-08-21 10:52:22 +02:00
Björn Schießle
9be836814c Merge pull request #4239 from owncloud/decrypt_files_again
Enable user to decrypt files again after encryption app was disabled
2013-08-18 09:51:48 -07:00
Bjoern Schiessle
1be11bb03d don't change the etags if a file gets encrypted/decrypted to avoid that the sync client downloads all files again 2013-08-18 11:21:01 +02:00
kondou
9e8a6b704d Add _many_ newlines at the end of files 2013-08-18 11:06:59 +02:00
Bjoern Schiessle
cabe92ef12 Merge branch 'master' into decrypt_files_again
Conflicts:
	apps/files_encryption/tests/keymanager.php
2013-08-17 13:15:22 +02:00
Björn Schießle
d3e2f31ada Merge pull request #4352 from owncloud/encryption_clean_up
crypt.php clean up
2013-08-17 04:10:15 -07:00
Bjoern Schiessle
7adfc27caf remove whitespaces and some leftover code from testing 2013-08-15 13:13:16 +02:00
Bjoern Schiessle
7b1067c2a0 change decryptUnknownKeyfile() to decryptKeyfile(), we always use openssl_seal 2013-08-12 16:19:08 +02:00
Bjoern Schiessle
0bab8935c9 preserve mtime if file gets encrypted/decrypted 2013-08-12 14:30:43 +02:00
Bjoern Schiessle
b982868c14 fix array declaration 2013-08-12 13:59:49 +02:00
Bjoern Schiessle
44d201a526 Merge branch 'encryption_clean_up' of github.com:owncloud/core into encryption_clean_up 2013-08-09 15:57:07 +02:00
Bjoern Schiessle
5ba8d38b7f remove old comments, TODos, etc. 2013-08-09 15:55:17 +02:00
Thomas Müller
c458e785a1 fixing typos and PHPDoc 2013-08-08 15:08:58 +02:00
Bjoern Schiessle
512f98cac9 remove todo item 2013-08-08 13:38:15 +02:00
Bjoern Schiessle
b39d2d1938 more error messages which might be useful for the user to debug his server config 2013-08-08 08:39:11 +02:00
Bjoern Schiessle
7aeb0068be also write error message to the log 2013-08-08 08:38:52 +02:00
Bjoern Schiessle
cfbdad9cdb catch broken server config and disable encryption app. 2013-08-08 08:38:37 +02:00
Bjoern Schiessle
97e910e087 make methods private which are not used from outside 2013-08-08 08:37:39 +02:00
Bjoern Schiessle
23e9721644 use OC\Files\View to read encrypted file, so that it also works with external storages 2013-07-31 16:35:14 +02:00
Bjoern Schiessle
2549322763 we need to use the path relative to data/ 2013-07-30 18:17:33 +02:00
Bjoern Schiessle
a212c98125 handle error if we can't handle the given path 2013-07-30 15:27:59 +02:00
Bjoern Schiessle
a6ced6b53f remove unused method, the right one is in util.php 2013-07-30 14:28:24 +02:00
Bjoern Schiessle
3640c99462 encrypt/decrypt file versions 2013-07-30 12:19:04 +02:00
Bjoern Schiessle
ba18452eda only write keyfiles if it was a new file, otherwise nothing changed 2013-07-30 10:43:16 +02:00
Bjoern Schiessle
223d3c91d6 use path relative to data/ 2013-07-30 10:14:17 +02:00
Bjoern Schiessle
a7a7ef2b3a improved error handling 2013-07-30 09:48:30 +02:00
Bjoern Schiessle
b6fa0e4eef working decrypt files method 2013-07-29 17:06:05 +02:00
Björn Schießle
e15e394fcc add ajax call to decrypt all files
Conflicts:
	apps/files_encryption/lib/crypt.php
2013-07-29 13:39:05 +02:00
Björn Schießle
2c8e5ec84f user interface to allow user to decrypt all his files once the encryption app was disabled
Conflicts:
	settings/templates/personal.php
2013-07-29 13:36:06 +02:00
Björn Schießle
87063918f2 remove wrong closing bracket 2013-07-05 16:05:05 +02:00
Björn Schießle
9575c2f37c added helper function to escape glob pattern
Conflicts:

	apps/files_encryption/lib/helper.php
2013-07-05 16:03:20 +02:00
Björn Schießle
15cb8e4efd only check for external mount points if the external storage app is enabled 2013-07-05 16:00:34 +02:00
Björn Schießle
f9c337dd21 only escape glob pattern 2013-07-05 16:00:17 +02:00
Björn Schießle
93730a090b del share keys from correct location 2013-07-05 16:00:08 +02:00
Björn Schießle
af2cd6f541 always return normalized path 2013-07-05 15:59:57 +02:00
Björn Schießle
3043dbfb95 delete file keys from the correct location 2013-07-05 15:59:46 +02:00
Björn Schießle
eb2587a08f move isSystemWideMountPoint() to util.php 2013-07-05 15:59:29 +02:00
Björn Schießle
f2de4cb342 some performance improvements, check for system wide mounts only once while writing share keys 2013-07-05 15:59:19 +02:00
Björn Schießle
2e56f0e2f8 fix path to OC_Mount_Config 2013-07-05 15:59:06 +02:00
Björn Schießle
3e4dcafa89 handle system wide mount points 2013-07-05 15:58:55 +02:00
VicDeo
f67fc78531 Merge pull request #3899 from owncloud/encryption_check_php_version
check php version, the encryption app needs php >= 5.3.3
2013-07-04 06:53:17 -07:00
Björn Schießle
4c1820a2a1 Merge pull request #3858 from owncloud/more_ssl_error_messages
add openssl_error_string() output to the owncloud.log
2013-07-02 07:58:22 -07:00
Björn Schießle
4d4484fac1 Merge pull request #3870 from owncloud/reset_migration_status
introduce pre-disable-app hook and first usage in files_encryption
2013-07-02 07:26:48 -07:00
Thomas Müller
a7f2563990 typo 2013-07-01 21:12:21 +02:00
Björn Schießle
d5c4854708 cast result to bool 2013-07-01 17:18:16 +02:00
Björn Schießle
16a719173f add correct php version 2013-07-01 12:23:26 +02:00
Björn Schießle
adcee5b695 check php version, the encryption app needs php >= 5.3.3 2013-07-01 12:16:36 +02:00
Björn Schießle
2e6ebe1ab4 fix function documentation 2013-06-27 14:14:25 +02:00
Björn Schießle
c4aef89278 introduce pre-disable-app hook and use it for the encryption app to reset migration status if the app was disabled 2013-06-27 14:09:22 +02:00
Björn Schießle
5a20c8b66f add openssl_error_string() output to the owncloud.log 2013-06-26 15:51:22 +02:00
Jörn Friedrich Dreyer
c79f7f4f3c fix numRows usage in files_encryption 2013-06-24 16:29:59 +02:00
Björn Schießle
fe61230cc1 always have a defined return value 2013-06-19 16:55:31 +02:00
Björn Schießle
e2e370f199 some more error messages 2013-06-19 15:58:34 +02:00
Björn Schießle
83d98e2d8b add some more error messages, in case something went wrong 2013-06-19 15:52:33 +02:00
Florin Peter
8566881758 fix for path_hash not unique as reported at #3641 2013-06-13 20:52:34 +02:00
Florin Peter
35da408222 fix memory problems as reported at #3620 2013-06-13 20:51:22 +02:00
Björn Schießle
7cfb0dc406 Merge branch 'master' into files_encryption_check_private_key
Conflicts:
	apps/files_encryption/appinfo/app.php
	apps/files_encryption/lib/util.php
2013-06-13 13:17:35 +02:00
Björn Schießle
bc2862fcb9 Merge branch 'master' into files_encryption_upgrade_fix 2013-06-13 12:53:29 +02:00
Björn Schießle
77944cf7b8 fix typo in var name 2013-06-13 10:11:23 +02:00
Björn Schießle
27fcdb3af5 Merge branch 'master' into files_encryption_upgrade_fix
Conflicts:
	apps/files_encryption/tests/crypt.php
2013-06-12 20:53:45 +02:00
Björn Schießle
c78a90fd54 use number of manipulated rows as idicator if it was possible to enter the migration mode 2013-06-12 12:21:11 +02:00
Björn Schießle
20ddd6e1c7 Merge branch 'master' into files_encryption_check_private_key
Conflicts:
	apps/files_encryption/tests/crypt.php
2013-06-11 15:19:02 +02:00
Björn Schießle
3ec6b19cdf use constants for different migration status 2013-06-11 13:07:39 +02:00
Björn Schießle
5fafd55108 make sure that only one process can enter the migration mode 2013-06-11 12:03:50 +02:00
Morris Jobke
1da112750e Merge pull request #3647 from owncloud/missing_backticks
add missing backticks all over the place
2013-06-10 05:15:07 -07:00
Björn Schießle
13017ce9e1 Merge branch 'master' into files_encryption_check_private_key
Conflicts:
	settings/ajax/changepassword.php
2013-06-10 12:12:07 +02:00
Jörn Friedrich Dreyer
124f34422c add missing backticks all over the place 2013-06-10 09:53:29 +02:00
Björn Schießle
d7a9852f7b use pre_setPassword hook to update the encryption keys if the back-end doesn't support password change; improved output to let the admin know what happened 2013-06-06 13:32:02 +02:00
Florin Peter
14ac4fab05 better handling for http post 2013-06-04 00:41:47 +02:00
Florin Peter
ef97481a0d changed redirect handling 2013-06-03 23:41:57 +02:00
Florin Peter
dc8bcf0688 reformat code 2013-06-03 18:42:13 +02:00
Björn Schießle
471d2b732c introduce decryptPrivateKey() method which also checks if the result is a valid private key to avoid additional checks on various places 2013-06-03 14:19:31 +02:00
Florin Peter
46e5e9bd73 cleanup unused method legacyKeyRecryptKeyfile 2013-05-31 22:49:32 +02:00
Florin Peter
a134ffcf2c code optimized and cleaned up unused vars 2013-05-31 16:52:33 +02:00
Florin Peter
e9d1ea712c allow the user to login but do not allow upload and show error message on the web 2013-05-31 15:57:18 +02:00
Florin Peter
2e3bfdb12c check if the decrypted private key is valid on login and on read/write files 2013-05-31 13:58:58 +02:00
Florin Peter
1bfe975938 Merge branch 'master' into files_encryption_upgrade_fix
Conflicts:
	apps/files_encryption/lib/util.php
2013-05-31 12:58:12 +02:00
Florin Peter
96ef926161 normalize path to prevent following split to fail 2013-05-31 01:57:32 +02:00
Florin Peter
8e324aad38 fix re-encrypt legacy files 2013-05-31 01:36:49 +02:00
Florin Peter
986e9dd362 use legacyDecrypt to decrypt key file like the previous files_encryption 2013-05-31 01:35:48 +02:00
Florin Peter
eaa4f92275 added our own file extension .part will not work here if we use file_get_contents so we used our own extension '.etmp' 2013-05-30 22:07:36 +02:00
Florin Peter
8c17f26226 fixed problems with file_get_contents and file_put_contents this problem was related to text editor with big text files 2013-05-30 01:13:22 +02:00
Florin Peter
313631edf6 Merge branch 'master' into file_encryption_external_storage_fixes
Conflicts:
	apps/files_encryption/hooks/hooks.php
2013-05-30 00:45:29 +02:00
Florin Peter
1202ab9995 Merge branch 'master' into file_encryption_external_storage_fixes 2013-05-29 19:19:40 +02:00
Florin Peter
d265264542 fix for share folder on external storage 2013-05-29 19:11:39 +02:00
Björn Schießle
b44192f366 check list of users with access to the file from the bottom to the top. This way we avoid calling getFileInfo() on every dir, which creates a lot of overhead, especially for external storages 2013-05-29 13:10:26 +02:00
Florin Peter
efd629462e changes after review 2013-05-29 12:23:33 +02:00
Florin Peter
c398fc59ad Merge branch 'master' into remove_unused_vars
Conflicts:
	apps/files_encryption/hooks/hooks.php
	apps/files_encryption/lib/proxy.php
	apps/files_encryption/lib/session.php
	apps/files_encryption/lib/stream.php
2013-05-29 09:21:00 +02:00
Florin Peter
71a532fc4d fixed if fopen returns false typically on external storage 2013-05-28 20:50:14 +02:00
Florin Peter
4b4b447e2a fixed missing convert to new session handler 2013-05-28 17:06:37 +02:00
Florin Peter
6ae7bde788 fixed encryption session namespace to avoid problems 2013-05-28 17:04:35 +02:00
Robin Appelman
cc0cf93136 merge master into sessionclass 2013-05-28 14:55:42 +02:00
Florin Peter
09b54ccb2b Merge branch 'master' into remove_unused_vars
Conflicts:
	apps/files_encryption/lib/session.php
	apps/files_encryption/lib/util.php
2013-05-28 11:00:49 +02:00
Florin Peter
0041711fe3 fix for undefined index 2013-05-28 09:36:14 +02:00