Commit Graph

447 Commits

Author SHA1 Message Date
Sebastian Messmer
f433da7dc1 Remove --extpass parameter, because that encourages tool writers to do bad things like storing a password in a file and using --extpass="cat filename".
The password can now be passed in to stdin without problems, so tools should use that.
2016-02-13 10:46:05 +01:00
Sebastian Messmer
098f16a4fe Since Mac OS X doesn't support clock_gettime, implement it if running on Mac. 2016-02-13 02:46:00 +01:00
Sebastian Messmer
f749ad66f1 Fix a compiler error on Mac OS X 2016-02-13 02:19:31 +01:00
Sebastian Messmer
3ff69b6a9f Allow specifying osxfuse include directory on command line using "cmake -DCMAKE_CXX_FLAGS=-I/path/to/osxfuse/include/dir". Furthermore, add some setup instructions for installing the requirements on Mac OS X. 2016-02-13 02:07:19 +01:00
Sebastian Messmer
ff62ef1b88 Don't use libc getpass() for asking the password anymore. It is deprecated and doesn't play nice with tools that want to pass in the password on stdin. Now we just use stdin. 2016-02-12 23:18:13 +01:00
Sebastian Messmer
d05e3841bd Mountdir has correct ownership and permissions set. Fixes https://github.com/cryfs/cryfs/issues/10 2016-02-12 12:21:39 +01:00
Sebastian Messmer
cfe2a48ebc Merge branch 0.9 (pre-work for version 0.9) 2016-02-11 17:35:20 +01:00
Sebastian Messmer
fff5b4b6e9 Make CPack work with new repository layout 2016-02-11 17:34:08 +01:00
Sebastian Messmer
c6e8052d93 Merge all git repositories into one 2016-02-11 16:40:48 +01:00
Sebastian Messmer
31672e086c Fix includes after merging repositories 2016-02-11 15:19:58 +01:00
Sebastian Messmer
31d52d3c8d Merged blobstore repository 2016-02-11 14:50:18 +01:00
Sebastian Messmer
f3d614c633 Merged blockstore 2016-02-11 14:44:28 +01:00
Sebastian Messmer
4202e6be89 Merge parallelaccessstore repository 2016-02-11 14:22:18 +01:00
Sebastian Messmer
59474b10b6 Handle vendor libraries better in cmake 2016-02-11 14:01:59 +01:00
Sebastian Messmer
9088a3d366 Use lowercase for cmake function definitions and rename add_boost/enable_style_warnings/activate_cpp14 to target_add_boost/target_enable_style_warnings/target_activate_cpp14 2016-02-11 12:57:50 +01:00
Sebastian Messmer
1dcf36d38c Move fspp to its own subdirectories 2016-02-11 12:53:42 +01:00
Sebastian Messmer
92cf6fa66d Refactor directory layout to allow other modules in same repository 2016-02-11 12:04:49 +01:00
Sebastian Messmer
11e1b89e31 Define minimal needed boost version 2016-02-11 04:33:15 +01:00
Sebastian Messmer
a35e164ede Add needed packages to travis 2016-02-11 04:23:46 +01:00
Sebastian Messmer
ee702471f0 Switch to plain cmake, no biicode anymore. 2016-02-10 00:58:03 +01:00
Sebastian Messmer
d23eb08854 Refactor dir blob serialization 2016-02-09 13:47:26 +01:00
Sebastian Messmer
d540adfdfa Added assert and improved ordering of data in directory blobs 2016-02-09 13:05:16 +01:00
Sebastian Messmer
88e6164d35 Improve platform indepdendence of directory blobs 2016-02-09 12:37:30 +01:00
Sebastian Messmer
68c10afbda Adding the file access times makes CryFS 0.9 incompatible with earlier versions. This commit adds a warning telling the user when they try to mount an old file system. 2016-02-09 10:55:28 +01:00
Sebastian Messmer
b0beb6b350 Fully support file access times 2016-02-09 09:51:35 +01:00
Sebastian Messmer
452519ed0b Implement storing file access times.
Feature is not enabled yet, because this would break compatiblity with file systems from old CryFS versions (will be enabled in CryFS 0.9.0).
However, it already fixes https://github.com/cryfs/cryfs/issues/4 because it doesn't say 'operation not supported' anymore when modifying file times
2016-02-09 09:43:18 +01:00
Sebastian Messmer
029fb73218 Better error message when config file has wrong header 2016-02-09 09:14:02 +01:00
Sebastian Messmer
ddf6b00b64 Merge branch 'develop' of github.com:cryfs/cryfs into develop 2016-02-06 13:04:44 +01:00
Sebastian Messmer
3427cf71b3 Adapt to new fspp (which got the symlink fix in 8092bfef8e ) 2016-02-06 13:04:02 +01:00
Sebastian Messmer
9f94a88bef Show "this might take some time" when generating the key 2016-01-28 20:40:56 +00:00
Sebastian Messmer
c4d975260e When running tests, don't actually send http requests from version checker, but mock the http service. 2016-01-28 17:55:26 +00:00
Sebastian Messmer
80c00974e2 Use https for version checker 2016-01-28 17:55:02 +00:00
Sebastian Messmer
29065746c2 If the given base or mount directory doesn't exist, offer to create them 2016-01-25 15:01:34 +01:00
Sebastian Messmer
af4ef5d425 Offer a default configuration when creating new filesystems 2016-01-25 14:33:40 +01:00
Sebastian Messmer
33906947a8 Adapt to new Console from cpputils (we have to print the newline ourselves now, cpputils doesn't do it anymore) 2016-01-25 14:21:19 +01:00
Sebastian Messmer
e5a2cec5ea Added test case for CryConfigConsole 2016-01-25 14:03:32 +01:00
Sebastian Messmer
16bdbcc2ca Refactor CryConfigCreator (factor out CryConfigConsole). This is preparation for adding a 'use default config' question. 2016-01-17 14:57:40 +01:00
Sebastian Messmer
1d7daf68e2 When installing .deb files, it will automatically add the software source for automatic updates. When uninstalling, the software source will be removed with it. 2015-12-17 19:48:56 +01:00
Sebastian Messmer
5319859700 Adapt to new blobstore which supports blobs >4GB 2015-12-11 00:27:26 +01:00
Sebastian Messmer
0959971b93 Adapt to new fspp interface 2015-12-07 12:14:06 +01:00
Sebastian Messmer
6786508148 Make classes final if they're not meant to be derived from 2015-11-27 14:06:17 +01:00
Sebastian Messmer
7af0bf8056 ChangeLog and TODOs 2015-11-25 15:46:44 +01:00
Sebastian Messmer
529b888048 Code is compatible with gcc 4.8 2015-11-24 14:42:20 +01:00
Sebastian Messmer
7126826eeb Add a maximal timeout for version update checking 2015-11-24 08:24:37 +01:00
Sebastian Messmer
7664c3de8b TODOs 2015-11-24 08:08:27 +01:00
Sebastian Messmer
68675c6212 - Move HttpClient to cpputils
- Fix VersionChecker behaviour when the returned json is invalid
- Add test cases for VersionChecker
2015-11-24 08:08:11 +01:00
Sebastian Messmer
2796915ffe When there is a new CryFS version, ask the user to update. Furthermore, check if there is a security warning for the installed CryFS version. 2015-11-23 17:43:21 +01:00
Sebastian Messmer
5b76a11388 When creating a new filesystem, ask password twice (second time for confirmation) 2015-11-19 10:08:09 +01:00
Sebastian Messmer
a4c92848be Fix handling of relative paths and add test cases 2015-11-18 11:01:48 +01:00
Sebastian Messmer
52d3ac5efc Depend on stable version of Crypto++ 2015-11-17 20:17:30 +01:00
Sebastian Messmer
49b4a9b1c0 Allow specifying base and mount directory parameters as relative paths 2015-11-17 01:50:59 -08:00
Sebastian Messmer
3e7af232e7 Better error reporting when root directory is suddenly not accessible anymore 2015-11-16 22:05:25 -08:00
Sebastian Messmer
978e7dbc46 --unmount-idle x automatically unmounts the filesystem after x minutes without a filesystem operation. 2015-11-12 15:06:53 -08:00
Sebastian Messmer
4dab8c7426 Add a class that runs a callback after a (resettable) timeout. This will be used later for unmounting after a certain idle time 2015-11-12 13:08:43 -08:00
Sebastian Messmer
938528840b Added --unmount-idle command line option (without functionality yet)
And refactor cli (group Cli class and program_options in cli subfolder)
2015-11-12 11:43:39 -08:00
Sebastian Messmer
30ae2fc45c Added test cases 2015-11-12 10:59:38 -08:00
Sebastian Messmer
09f6b48710 Add a compatibility test ensuring that it can load config files from version 0.8.1 in future 2015-11-11 18:10:56 -08:00
Sebastian Messmer
10cbb06a4b Added test cases for CryConfigEncryptor 2015-11-11 14:33:39 -08:00
Sebastian Messmer
f90196826b Added test cases for outer config file encryption 2015-11-11 11:58:09 -08:00
Sebastian Messmer
d003b7f0c5 Added test cases for inner config file encryption 2015-11-11 11:03:05 -08:00
Sebastian Messmer
f44ae98bf9 Removed unnecessary parameter 2015-11-11 11:02:01 -08:00
Sebastian Messmer
669e71c056 Inner encryption of configuration file uses the cipher specified by the user 2015-11-11 01:19:47 -08:00
Sebastian Messmer
252a666a37 Refactor (de)serializing config files 2015-11-10 17:50:08 -08:00
Sebastian Messmer
4cedaa5bf4 Fixed failing test cases (was a fault in cpputils library and was fixed there) 2015-11-07 12:21:17 -08:00
Sebastian Messmer
0b7182f095 Make test cases faster by using SCrypt::TestSettings 2015-11-03 20:27:00 -08:00
Sebastian Messmer
eb0a27759c Show more detailed error message when given arguments are invalid 2015-11-03 13:01:51 -08:00
Sebastian Messmer
a5ff0f45d6 - Add --extpass command line option
- Make test cases faster by specifying key random generator to use pseudorandom
2015-11-03 12:22:35 -08:00
Sebastian Messmer
9aee4b1657 Added success tests 2015-11-02 12:20:10 -08:00
Sebastian Messmer
6bbdc1be3d Add sanity checks for mount directory 2015-10-30 22:01:42 +01:00
Sebastian Messmer
fdf866a562 Since fork() issue with our threads is solved, use libFuse damonization again 2015-10-30 21:40:38 +01:00
Sebastian Messmer
057113df00 - Catch exceptions in initialization
- Show unmount command after successfully mounted
2015-10-30 20:32:25 +01:00
Sebastian Messmer
bdb6de1c4a Add --cipher and --ciphers command line options 2015-10-30 19:53:15 +01:00
Sebastian Messmer
d731ecf6a6 On startup, check read/write permissions for base directory and fail if permissions missing 2015-10-30 18:28:33 +01:00
Sebastian Messmer
cdbbad8878 Remove debug output 2015-10-30 17:32:23 +01:00
Sebastian Messmer
a37c1af761 Check that base directory is not inside mount directory 2015-10-30 17:23:08 +01:00
Sebastian Messmer
b7af7ca2f2 Add a sanity check that mountdir can't be equal to rootdir 2015-10-29 20:17:52 +01:00
Sebastian Messmer
cdf0025b15 If basedir doesn't exist, immediately quit with error message. Also added test case for this behaviour. 2015-10-29 16:04:20 +01:00
Sebastian Messmer
49c2fe3902 Move Cli (command line interface) to own class and write first test case for it 2015-10-29 10:47:14 +01:00
Sebastian Messmer
dceeeecdd7 Improve console output on log creation 2015-10-28 15:27:58 +01:00
Sebastian Messmer
dd4c9cbf4b Since our threads now work well with fork(), we can remove the workarounds 2015-10-28 15:27:30 +01:00
Sebastian Messmer
bac18cfbfc Fix path bug when writing config file to rootdir 2015-10-28 13:44:39 +01:00
Sebastian Messmer
3a04c8697f Config encryption uses cipher name provided by cipher instead of storing it itself 2015-10-28 01:58:01 +01:00
Sebastian Messmer
be1acba45f Use cipher names provided by cipher 2015-10-28 01:49:33 +01:00
Sebastian Messmer
c8e6ed5d9f Fix incompatibility with gcc 4.9 2015-10-28 00:42:49 +01:00
Sebastian Messmer
0d5a7d9d10 Adapt to cpputils crypto library 2015-10-27 23:46:54 +01:00
Sebastian Messmer
340bbf842e Moved crypto classes to cpputils 2015-10-27 22:19:40 +01:00
Sebastian Messmer
d8ed751039 TODOs 2015-10-27 21:26:08 +01:00
Sebastian Messmer
bb507ce241 Add a header to the inner config encryption so we can change the inner format later without changing the outer format 2015-10-27 21:20:12 +01:00
Sebastian Messmer
0ae9bb7fca TODOs 2015-10-27 19:01:45 +01:00
Sebastian Messmer
5a73042c63 Add a padding step between inner encryption and outer encryption to hide the size of the cipher name that is added inbetween 2015-10-27 19:00:24 +01:00
Sebastian Messmer
08e4ae8a2e Config encryption: Prepend inner cipher name to the encrypted data before encrypting it with the outer cipher 2015-10-27 18:50:58 +01:00
Sebastian Messmer
d9eaac5f75 Encrypt config file twice - with an inner and an outer key 2015-10-27 17:33:31 +01:00
Sebastian Messmer
635349d636 Separate CryConfigEncryptor from InnerEncryptor. This is the first step to do two layers of encryption. 2015-10-27 15:28:11 +01:00
Sebastian Messmer
88262c3ef9 Make SCrypt config modifiable and speed up test cases by using a special test config 2015-10-27 13:28:42 +01:00
Sebastian Messmer
adad371114 Fix config loading 2015-10-26 20:15:04 +01:00
Sebastian Messmer
aceeb2644f Refactor folder structure and put classes in own files 2015-10-26 18:14:27 +01:00
Sebastian Messmer
fd184b45d2 Refactor CryConfigEncryptor: Store instance instead of static 2015-10-26 16:36:57 +01:00
Sebastian Messmer
a840bbba47 Change config file header to contain version information 2015-10-26 12:35:22 +01:00
Sebastian Messmer
4164c2353e Graceful exiting when password is wrong 2015-10-25 19:00:30 +01:00
Sebastian Messmer
daa4f0a7f3 CryConfigEncryptor more thoroughly uses Serializer/Deserializer interface 2015-10-25 17:01:28 +01:00