Commit Graph

366 Commits

Author SHA1 Message Date
Björn Schießle aa3eb6bb5b don't handle public share keys in lib/public/share.php but in apps/files_encryption/lib/util.php instead 2013-05-13 17:40:57 +02:00
Björn Schießle 517efdf952 don't create a recovery user, only generate recovery key similar to the public link share key 2013-05-13 17:26:21 +02:00
Björn Schießle d1e2e47592 generate random key name for share key to avoid name conflicts 2013-05-13 15:15:35 +02:00
Björn Schießle a6ef25ba08 use preShare hook only to check if all pub keys are available and the postShare hook to finaly update the shareKeys if the file was shared successfully 2013-05-13 14:28:45 +02:00
Florin Peter e88595638c fix for webdav 2013-05-11 00:23:30 +02:00
Florin Peter e25aa78caf added helper class and moved hook registration to it 2013-05-09 19:36:18 +02:00
Sam Tuke 163fe64016 Fixes to code formatting and indentation 2013-05-09 18:24:07 +02:00
Sam Tuke 92e28839ff Improvements to code formatting & indentation 2013-05-09 18:16:59 +02:00
Sam Tuke 3003dd46d1 Implemented initial recoveryAdmin functionality in crypto file proxy 2013-05-09 18:09:20 +02:00
Sam Tuke 101e037529 Fixed bugs with pre_share hook usage
Made sure new user being shared to is added to array of sharing users
2013-05-09 14:43:06 +02:00
Sam Tuke 28866de44b Added pre_share hook
Switched it for post_share hook in encryption hooks
Stop a file from being shared if the encryption procedure fails for any users
2013-05-08 16:22:08 +02:00
Florin Peter 8b54553872 fix for wrong file infos 2013-05-07 13:42:49 +02:00
Florin Peter a9649713d3 fix empty path 2013-05-07 13:42:08 +02:00
Florin Peter fe6d12ddec fix file info put on stream 2013-05-06 21:15:25 +02:00
Florin Peter 5610429a02 handling for re-share and re-unshare should work now 2013-05-05 23:41:42 +02:00
Sam Tuke c8946ea608 Added support for user-specified password for adminRecovery account in admin settings page
Made encryptAll() (file migration for unencrypted + legacy encrypted files) run only on first login for each user (status stored in DB)
Made recoveryAdmin user member of 'admin' user group automatically
Set recoveryadmin settings to only display on user settings if enabled by an admin
Updated encryption db xml schema
2013-05-04 16:14:38 +02:00
Florin Peter 9605d14a17 fixed re-share problems 2013-05-04 03:37:22 +02:00
Sam Tuke ba29147e34 Fixed recoveryadmin settings in user and admin settings pages (js, templates, ajax)
Renamed recovery methods in Util{} for clarity
Added note about bug causing slow page load and redundant keypair generation
recoveryAdmin functionality not yet complete
2013-05-01 19:21:01 +02:00
Florin Peter d3db4ee103 fixed re-share problems 2013-05-01 11:04:40 +02:00
Florin Peter fbbc76f281 fix for sharing files 2013-04-30 20:44:42 +02:00
Florin Peter 27ce7845b4 fixed tests, now tests should work via autotest.sh
files_encryption app is now enabled in enable_all.php
2013-04-30 01:35:46 +02:00
Florin Peter 4a63faf64b speed improvement 2013-04-29 01:43:59 +02:00
Florin Peter f9760f6521 improved file size 2013-04-27 23:34:25 +02:00
Florin Peter 7f1f0464a8 added self healing if file get remove from file cache 2013-04-27 23:02:42 +02:00
Florin Peter 770aebfb9e check if file exists before fixing file size 2013-04-27 20:22:38 +02:00
Florin Peter ba080e0d2e removed preRename and moved postRename to hooks.php
added postWrite and postTouch to fix file size and sharing keys
2013-04-27 20:21:46 +02:00
Florin Peter 05523b76c0 fix reusing keys
fix webdav part files
2013-04-27 20:18:57 +02:00
Florin Peter 813641e6e8 improved file size
created new method fixFileSize in Util so it can be used with files_trashbin
2013-04-27 00:05:20 +02:00
Florin Peter d017bbb065 fix share for renamed or moved files 2013-04-25 23:24:07 +02:00
Florin Peter 8ee7959092 implement postRename
@samtuke no need anymore for fixPartialFilePath this is now handled by rename
share-keys are now handled properly
webdav .part files are handled properly
2013-04-25 22:49:47 +02:00
Florin Peter 328dea93c7 webdav fix for file chunking
upload with big files should now work
@samtuke and @schiesbn we need a solution for the cache files created by webdav
2013-04-25 20:23:54 +02:00
Florin Peter fac288a4ad added unencrypted file size to file cache
improved file size calculation and speeds
2013-04-25 15:20:06 +02:00
Florin Peter 170d09203f fixed file_proxy handling 2013-04-25 14:56:11 +02:00
Florin Peter f8819f54c2 Merge branch 'files_encryption' of https://github.com/owncloud/core into files_encryption 2013-04-23 19:09:01 +02:00
Florin Peter baa6fd639f improved file size handling 2013-04-23 19:08:52 +02:00
Sam Tuke b7d8da87d0 Development snapshot
working on stream handling (large files) in Util->encryptAll()
2013-04-23 18:41:01 +02:00
Sam Tuke c6bfc7315b Stream writing improved: working with dolphin + kate, gedit & nautilus give errors, suspect those issues are clientside
.part file paths fixed in stream{}
2013-04-23 17:36:35 +02:00
Sam Tuke a1d241783e Updated buglist 2013-04-23 14:12:28 +02:00
Florin Peter 8ab9433fdf fix wrong file path in proxy 2013-04-22 18:54:23 +02:00
Florin Peter 2827004634 Merge branch 'files_encryption' of https://github.com/owncloud/core into files_encryption 2013-04-22 18:51:11 +02:00
Florin Peter 37c7205941 fix wrong file path in util 2013-04-22 18:50:59 +02:00
Björn Schießle a4364a93d0 delete all share keys if a file gets deleted 2013-04-22 15:29:58 +02:00
Björn Schießle b5cb5dab51 fix encryption to owncloud user for public link shares 2013-04-22 14:30:10 +02:00
Björn Schießle b57478fa27 fix comment, remove unused variable 2013-04-22 14:14:28 +02:00
Björn Schießle 1705938848 removed some leftover code; use already existing var for path to users file folder 2013-04-22 12:32:38 +02:00
Florin Peter eade87dc79 Merge branch 'files_encryption' of https://github.com/owncloud/core into files_encryption 2013-04-22 12:32:35 +02:00
Florin Peter f6ac34afea improved handling for getSharingUsersArray 2013-04-22 12:25:55 +02:00
Björn Schießle 8a46e809f0 remove util::getPaths(), this function was broken and is replaced my util::getAllFiles(). When unsharing a folder only remove the share key for sub files if the user really no longer have access to the file. Can happen that a sub-file/-folder is shared to a group the user is a member of or explicitly once more to the same user 2013-04-22 12:22:07 +02:00
Björn Schießle 8790ceba25 Merge branch 'files_encryption' of github.com:owncloud/core into files_encryption 2013-04-22 11:59:26 +02:00
Björn Schießle a2ba3c8a43 fix sharing of folders. First we need to collect all files. Than we need to find all users with access to the file because this can vary from file to file and than we can encrypt it for all recipients 2013-04-22 11:58:39 +02:00
Florin Peter 6b47da10be improved rename and file size support
fix missing user_id on write
2013-04-22 04:40:49 +02:00
FlorinPeter 9a0b73070c Merge pull request #2992 from FlorinPeter/files_encryption
fix for trashbin
2013-04-20 05:35:29 -07:00
Björn Schießle 12785b93f1 make sure that all share keys get deleted if a file/folder gets unshared from a user/group 2013-04-19 13:17:08 +02:00
Florin Peter 0e1970438b fixed incorrect filesize, download via web is now possible
fixed broken file-info
2013-04-18 22:34:22 +02:00
Björn Schießle 2bd338c49f getUsersSharingFile() no longer needed, use getSharingUsersArray() instead; fix filterShareReadyUsers() to return the correct results 2013-04-18 20:02:27 +02:00
Björn Schießle 935d039860 necessary changes in util.php after the changes in \OCP\Share::getUsersSharingFile() (fe58e4b1a6) 2013-04-18 17:53:59 +02:00
Björn Schießle 39c717b24c some fixes to the keymanager class to identify the file owner and the owner path correctly. 2013-04-18 17:52:27 +02:00
Björn Schießle 1df36e0c88 rename $shareFilePath to $path to avoid confusions, it is not about paths to share files but about general path to files stored in ownCloud 2013-04-18 16:39:00 +02:00
Björn Schießle 40905c8941 fix file sharing, sharing files works now; moved the identification of file owner and the owner path in the keymanager functions so that other functions doesn't have to deal with it 2013-04-18 16:34:23 +02:00
Björn Schießle 7892fddcb9 remove ToDo, every time the file key gets encrypted new share keys are generated and a new encrypted filekey. We always need to use the latest share-keys and encrypted keyfiles 2013-04-18 15:44:57 +02:00
Björn Schießle bd3024242f always save key file, the key doesn't change but the encrypted keyfile change always the same way like the share-keys change 2013-04-18 15:42:28 +02:00
Björn Schießle a646a1169f return filename relative to users file dir and not relative to data dir 2013-04-18 13:41:21 +02:00
Florin Peter 2434739d69 fix for trashbin 2013-04-18 02:03:03 +02:00
Sam Tuke 6dd8c79461 Development snapshot
Working on stream{} write
2013-04-17 17:20:37 +02:00
Sam Tuke f89a3604aa Working on stream{} writing
Development snapshot
2013-04-16 18:29:22 +02:00
Sam Tuke 770dcbf663 Fixed stream{} reading of encrypted files (stream_read()) 2013-04-16 14:53:54 +02:00
Sam Tuke b4dd6ae36c Merge pull request #2885 from FlorinPeter/files_encryption
fix performance issues
2013-04-16 04:25:59 -07:00
Sam Tuke f378a7f572 Fixed proxy class handing of read / write files
Various work on other classes
2013-04-16 13:22:16 +02:00
Björn Schießle 854b920787 fix some more paths 2013-04-12 15:18:19 +02:00
Björn Schießle 02d1f86a53 fix some confusion about paths relative to the files dir and to the data dir 2013-04-12 14:30:02 +02:00
Björn Schießle f87229ddaf fix stream wrapper to make initial encryption work 2013-04-12 14:13:38 +02:00
Florin Peter 8f0bbdc5cb fix performance issues 2013-04-11 22:55:48 +02:00
Björn Schießle c3a284569b make sure that public-keys dir exists 2013-04-10 16:46:02 +02:00
Björn Schießle fff979a590 add $view as parameter for getFileKey() call 2013-04-10 15:14:44 +02:00
Björn Schießle 98de385b8a add $view as parameter for session constructor 2013-04-10 15:08:28 +02:00
Sam Tuke 400cf5beb3 Fixed naming bug of public owncloud key dir, which caused new keypair to be generated on each pageload 2013-04-09 19:11:38 +02:00
Sam Tuke 14451bdaf0 Development snapshot;
Fixed errors from Hooks::login();
Work on enable/disable recoveryAdmin for lost passwords in settings page (template, ajax, js);
Work on fixing sharing files to users (still broken);
2013-03-29 21:11:29 +01:00
Sam Tuke ff6f52d5ec Merge branch 'master' into files_encryption
Conflicts:
	apps/files_encryption/hooks/hooks.php
	apps/files_encryption/lib/crypt.php
	apps/files_encryption/lib/keymanager.php
2013-03-28 18:39:12 +01:00
Björn Schießle e717f7150e check for dir in deleteFileKey() and delShareKey(), to always handle all share keys and file keys on delete 2013-03-26 16:52:58 +01:00
Björn Schießle 73157133e8 reuse function provided in util.php 2013-03-26 16:22:26 +01:00
Björn Schießle 6beeb2466f also delete share keys if a different user than the owner deletes a shared file 2013-03-26 16:17:26 +01:00
Björn Schießle b1d620300e delete share keys if file gets deleted 2013-03-26 14:22:18 +01:00
Björn Schießle 5f233ee814 get the correct paths and owner to access shared files 2013-03-26 12:40:31 +01:00
Björn Schießle a65d741a3f move getUidAndFilename() tu util.php 2013-03-26 12:39:55 +01:00
Björn Schießle 890f0142a2 get shared keys from new location 2013-03-26 12:24:04 +01:00
Björn Schießle 5995b6996b always call stripUserFilesPath(), we need to keep the Shared/ to find the correct owner of the file later 2013-03-26 12:23:28 +01:00
Björn Schießle f10be4ea17 new file structure for share keys; sub-folder need to be generated each by one (we don't have a recursive mkdir) 2013-03-26 11:58:54 +01:00
Sam Tuke fd4e59b748 Added method for setting user keyfile recovery preference
Fixed method for checking if keyfile recovery is enabled for a user
Added unit test for above 2 methods
Made proxy{} always use sharing
Made proxy{} work regardless of sharing API enabled or not
Implemented proxy-based sharing to admin if user keyfile recovery is enabled
2013-03-20 19:26:59 +01:00
Sam Tuke c89fd49870 Improved folder creation code
Created stub method for checking user pwd recovery preference from db
Added pwd recovery column to db
Added comments
2013-03-19 19:53:15 +01:00
Sam Tuke c1f1fbda08 Fixed stream wrapper bugs
Switched encryptAll() to use stream-based instead of file-at-a-time encryption
Development snapshot
2013-03-09 19:18:34 +01:00
Tom Needham 370f202251 Rebase to current master 2013-03-05 00:25:56 +00:00
Björn Schießle f2b86d0227 make sure that $this->userId is initialized before using it as a parameter 2013-03-04 17:58:56 +01:00
Björn Schießle e65e6a12f1 define key size in constructor, otherwise the key size will depend on the servers openssl conf 2013-03-04 15:33:38 +01:00
Sam Tuke 0bc7d3bcf8 Added notes where to reuse old keys instead of generating new ones 2013-02-27 18:50:57 +00:00
Sam Tuke 953319a2c3 Made proxy class reuse existing keyfiles not gen new ones;
Added notes about reusing shareKeys
2013-02-27 18:46:44 +00:00
Sam Tuke 69bc42f920 Deleting encrypted files with missing keyfiles/shareKeys now succeeds 2013-02-27 16:15:03 +00:00
Sam Tuke 14eae441eb Unsharing a single file now works 2013-02-27 15:31:23 +00:00
Sam Tuke aae9b0b1bf Started work on post unshare hook
Development snapshot
2013-02-26 18:33:31 +00:00
Sam Tuke 4550ae6a69 Shared encrypted files now readable by both sharer and sharee 2013-02-26 18:11:29 +00:00
Björn Schießle ca1b94d890 make sure that home folders are mounted correctly before write/read keyfile 2013-02-25 12:29:07 +01:00
Björn Schießle 31c434b795 the default should be to encrypt all files if the user/admin doesn't specify a blacklist explicitely 2013-02-22 16:08:08 +01:00
Björn Schießle 40efeb9187 isSharedFile() doesn't detect all shares, just use getUsersSharingFile() directly either you get a list of users or not 2013-02-22 16:02:27 +01:00
Sam Tuke 2d267501a1 Development snapshot
Added comments
Added methods
2013-02-20 19:18:00 +00:00
Sam Tuke 1b880f2f96 Moved dependencies out of Crypt methods (encKeyfileToMultipleUsers)(DI)
Fixed bug preventing sharing with users other than 'ownCloud'
Added comments
Moved functionality into filterShareReadyUsers()
Other changes
2013-02-19 19:16:50 +00:00
Sam Tuke 14ae373dfe Fixed wrong array key reference 2013-02-19 17:42:37 +00:00
Björn Schießle fd629983fa remove debug output 2013-02-19 17:10:32 +01:00
Björn Schießle 8c35bbcba7 remove debug output, fix typo in file names 2013-02-14 16:33:57 +01:00
Bart Visscher cd35d257bb Fix NoSpaceAfterComma and SpaceBeforeComma 2013-02-14 08:36:26 +01:00
Björn Schießle 5005195db0 create keypair for ownCloud with empty passphrase, will be used for public link shares 2013-02-13 17:57:45 +01:00
Björn Schießle 9356f9a6bf add post_unshareALll hook, update recursively all keyfiles if a folder was shared/unshared 2013-02-13 17:23:27 +01:00
Björn Schießle 4952dfe956 add post_unshare hook, also add public link shares to the list of user with access to a file 2013-02-13 14:56:39 +01:00
Björn Schießle a692264fa4 add option to keep duplicates in the list of users with access to a file, e.g. for the unshare operation we need to know if access was granted more than once, for example as group share and as individual share 2013-02-12 17:00:33 +01:00
Björn Schießle d1bbb30385 also find users with access to the file if a folder above the actual file was already shared 2013-02-12 16:48:04 +01:00
Björn Schießle 1e5d03da80 use right location of the file is the source and not the target it is shared to 2013-02-12 12:45:54 +01:00
Björn Schießle 8eef919a75 take group shares into account if we retrieve the list a all recipients 2013-02-12 12:08:34 +01:00
Björn Schießle 3e3cee98c8 - moved the enrcyption of the filekey ifg file gets shared from the post shared hook to
Crypt::encKeyfileToMultipleUsers() because this can be reused if files get unshared
- switch from preUnshare hook to postUnshare hook because afterward we can simply get the
  updated list of users with access to the file and call Crypt::encKeyfileToMultipleUsers()
2013-02-11 13:28:37 +01:00
Björn Schießle 2787aafae6 added some TODOs 2013-02-11 12:12:21 +01:00
Sam Tuke 92f06243be Implementing sharing support
New file-specific methods in lib/public/share
Changes to how keyfiles are stored
2013-02-11 10:21:23 +00:00
Tom Needham f141f8b523 Add further capabilities to /cloud/capabilitites api call 2013-02-10 14:42:23 +01:00
Sam Tuke b3e59ca1e3 Work on post_share hook for files_encryption
New method in OCP\Share{}:: getUsersSharingFile()
Development shapshot
2013-02-09 18:39:32 +00:00
Sam Tuke 1aba986d9f Fixed bug causing nested file read over webdav to fail 2013-02-09 12:42:18 +00:00
Sam Tuke b95bc663af Merge branch 'master' into files_encryption-style-fixes
Conflicts:
	apps/files_encryption/lib/crypt.php
	apps/files_encryption/lib/util.php
2013-02-09 11:52:11 +00:00
Thomas Müller 7f58e27495 cleanup - more to come after 2013-02-09 18:01:38 +01:00
Sam Tuke 954a627483 Added comment 2013-02-06 18:24:35 +00:00
Sam Tuke 6870add18f Development snapshot 2013-02-06 15:08:36 +00:00
Sam Tuke 16a5ace434 Fixed bug causing encrypted files to be doubly encrypted at login
Added comments and docblocks
2013-02-06 14:30:40 +00:00
Sam Tuke 3b9e2f1bab Merge branch 'master' into files_encryption-style-fixes
Conflicts:
	apps/files_encryption/lib/crypt.php
	apps/files_encryption/lib/keymanager.php
2013-02-05 18:43:55 +00:00
Sam Tuke 20b1d12cbf Fixed comment typo, wrapped return value conditional on var assignment in session{} 2013-02-05 17:28:26 +00:00
Sam Tuke 680c5b3dad Removed debugging output 2013-02-05 16:11:50 +00:00
Sam Tuke a1f200c1e5 Cleaned up path formatting with new method stripUserFilesPath() 2013-02-05 15:59:28 +00:00
Sam Tuke 53248a9b60 Recryption of legacy encrypted files now working on login 2013-02-05 15:35:29 +00:00
Sam Tuke 927d4c98a1 Fixed todos: undefined vars and unreachable code 2013-02-05 13:12:34 +00:00
Sam Tuke 0677d56ee2 Added debugging output relating to recrypting legacy files 2013-02-01 19:31:15 +00:00
Sam Tuke 06847f609b Improved support for detecting and recrypting legacy files. Bugs remain. 2013-01-31 19:40:51 +00:00
Sam Tuke c6b3bdd5a0 Fixed compatibility with filecache rewrite merge 2013-01-31 17:51:46 +00:00
Sam Tuke 2183f77527 Fixed incompatibilities with filecache rewrite merge 2013-01-31 16:49:07 +00:00
Sam Tuke c7b1bdf00e Fixed handling of keyfile subdir creation
Improved keyfile subdir deletion (1 bug remains here)
2013-01-30 18:52:02 +00:00
Sam Tuke 61b23ce6cc Working on support for deleting directories (removing all keyfiles) 2013-01-30 17:25:17 +00:00
Thomas Mueller 8ded07dd5c first style fixes - @samtuke: I added some TODO regarding undefined variables and unreachable code - please review 2013-01-30 17:49:05 +01:00
Sam Tuke c1f20fe37a Made encyrption keyfiles be deleted when their parents are
Made encryption keyfiles be renamed when their parents are
Fixed bugs with encryptAll() execution on login
2013-01-29 19:54:40 +00:00
Sam Tuke 094213e231 Fixed many coding guidelines issues
Continued work on upgrade path via login hook listener
New spec file with notes
2013-01-24 18:37:34 +00:00
Sam Tuke 59ca312263 Work on util: findFiles() and encryptAll(); both close to working
Ecnryption unit tests are failing, recursion in filecache{}
2013-01-23 19:24:26 +00:00
Sam Tuke d95fc4e1e3 Adding sharing support: added new method in Keymanager setShareKey()
Added notes in proxy{} and stream{} pointing to share support
2013-01-14 19:07:28 +00:00
Sam Tuke e9f3c5feea Added creation of dir for shared file env encryption keys
Added comment to use multiKeyEncrypt
2013-01-14 15:39:04 +00:00
Sam Tuke 3fbf362ba2 Removed debugging comments 2013-01-14 12:36:46 +00:00
Sam Tuke fed74eda1c Removed old and unnecessary comments 2013-01-10 18:48:40 +00:00
Sam Tuke 2e30641caa Removed misleading crypto gen comment 2013-01-10 18:19:37 +00:00
Sam Tuke 015787fbb3 All in-use unit tests now passing after merge 2013-01-06 18:38:35 +00:00
Sam Tuke 2d98afa1ea Removed debugging line 2013-01-06 14:06:22 +00:00
Sam Tuke b024db9f98 Made Keymanager::getFileKey() dependencies explicit, fixed client code and tests accordingly 2013-01-06 13:56:45 +00:00