Commit Graph

427 Commits

Author SHA1 Message Date
Sebastian Messmer
6227764858 Make classes final if they're not meant to be derived from 2015-11-27 14:05:48 +01:00
Sebastian Messmer
347e3584ee Make CallAfterTimeoutTest less flaky 2015-11-26 16:40:45 +01:00
Sebastian Messmer
ee89bb7ffb Add larger margins to CallAfterTimeoutTest 2015-11-25 22:43:13 +01:00
Sebastian Messmer
38d24bd689 Compatibility with 32bit systems 2015-11-25 16:36:57 +01:00
Sebastian Messmer
83cac1e32d Compatibility with 32bit systems 2015-11-25 15:39:52 +01:00
Sebastian Messmer
529b888048 Code is compatible with gcc 4.8 2015-11-24 14:42:20 +01:00
Sebastian Messmer
fb733929d8 Code is compatible with gcc 4.8 2015-11-24 14:39:41 +01:00
Sebastian Messmer
c646bb848d Code is compatible with GCC 4.8 2015-11-24 14:33:17 +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
feb806b392 Add HttpClient 2015-11-24 07:47:29 +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
90ea7be899 Make timing test cases more lenient 2015-11-12 15:39:52 -08:00
Sebastian Messmer
1e52e78251 Fix compiler error in test cases 2015-11-12 15:31:11 -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
9793b0e870 Added test cases for CryConfigEncryptorFactory 2015-11-11 17:10:02 -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
923cd40acf Add a test case that loading a filesystem doesn't modify the config file 2015-11-11 11:22:46 -08:00
Sebastian Messmer
d003b7f0c5 Added test cases for inner config file encryption 2015-11-11 11:03:05 -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
0b7182f095 Make test cases faster by using SCrypt::TestSettings 2015-11-03 20:27:00 -08:00
Sebastian Messmer
5575509594 New way to configure SCrypt algorithm 2015-11-03 20:13:23 -08:00
Sebastian Messmer
2f5d28440e Hide output of fusermount in test cases 2015-11-03 13:10:56 -08:00
Sebastian Messmer
eeb92debe6 Make test cases non-interacative by using --extpass option 2015-11-03 13:02:04 -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
8b585c39fe Renamed daemon folder to process and added Subprocess class to it 2015-11-03 12:20:15 -08:00
Sebastian Messmer
9aee4b1657 Added success tests 2015-11-02 12:20:10 -08:00
Sebastian Messmer
4d6970837e Speedup test cases by using scrypt test config 2015-10-31 17:23:14 +01:00
Sebastian Messmer
d25d51f195 Fixed some issues in the not-yet-used success tests 2015-10-30 22:24:18 +01: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
030adc4b89 TODOs 2015-10-30 20:14:23 +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
e46fb04c58 Removed debug output from test cases 2015-10-30 17:24:44 +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
c572e7f353 Add a test configuration running cryfs in foreground 2015-10-29 20:00:59 +01:00
Sebastian Messmer
f42eefbc6b Refactor CliTest_WrongEnvironment into a parametrized test 2015-10-29 19:55:26 +01:00
Sebastian Messmer
a358ae859a Refactor Cli test cases 2015-10-29 19:35:22 +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
dd4c9cbf4b Since our threads now work well with fork(), we can remove the workarounds 2015-10-28 15:27:30 +01:00
Sebastian Messmer
c4dfd55c39 Because LoopThread now works fine with fork(), we don't have to specify this a DeathTest 2015-10-28 15:20:55 +01:00
Sebastian Messmer
3e01c56ad4 Add Cipher::NAME to CipherConcept 2015-10-28 01:49:12 +01:00
Sebastian Messmer
926d1ce7a4 Allow Cipher::NAME (e.g. AES256_GCM::NAME) 2015-10-28 01:41:38 +01:00
Sebastian Messmer
0d5a7d9d10 Adapt to cpputils crypto library 2015-10-27 23:46:54 +01:00
Sebastian Messmer
22a3c90d54 Moved ciphers to cpputils 2015-10-27 23:27:40 +01:00
Sebastian Messmer
c50371d583 Add symmetric ciphers to crypto lib 2015-10-27 23:19:20 +01:00
Sebastian Messmer
1f86f83ca1 Fix test cases 2015-10-27 23:19:11 +01:00
Sebastian Messmer
340bbf842e Moved crypto classes to cpputils 2015-10-27 22:19:40 +01:00
Sebastian Messmer
7b269a1184 Added a crypto library with scrypt key derivation function and random padding 2015-10-27 22:19:06 +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
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
248f0b0d61 FixedSizeData::take/drop() 2015-10-26 12:15:11 +01:00
Sebastian Messmer
90ecee252e Fix DeathTest 2015-10-25 19:13:33 +01:00
Sebastian Messmer
4164c2353e Graceful exiting when password is wrong 2015-10-25 19:00:30 +01:00
Sebastian Messmer
25db4064b7 Use EXPECT_EXIT instead of EXPECT_DEATH 2015-10-25 18:42:49 +01:00
Sebastian Messmer
daa4f0a7f3 CryConfigEncryptor more thoroughly uses Serializer/Deserializer interface 2015-10-25 17:01:28 +01:00
Sebastian Messmer
cde1a3b7b9 Refactor CryConfigEncryptor 2015-10-25 11:33:30 +01:00
Sebastian Messmer
868e12183a Fix Usage line when called with --help and fix test cases 2015-10-24 20:02:43 +02:00
Sebastian Messmer
61ca163339 If a configuration file is not specified on command line, it will be put into the base directory 2015-10-24 19:56:05 +02:00
Sebastian Messmer
371303ae6a Config file is AES256_GCM encrypted, the config file key is generated with scrypt 2015-10-24 19:35:37 +02:00
Sebastian Messmer
7988cc406d Added serialization/deserialization of DerivedKeyConfig 2015-10-24 12:25:49 +02:00
Sebastian Messmer
8741853eef Added key derivation function scrypt 2015-10-24 01:57:17 +02:00
Sebastian Messmer
20b0034ab1 - Refactor main()
- Added CryConfigLoaderTest
2015-10-23 12:16:23 +02:00
Sebastian Messmer
39c62ae185 Added test case for CryConfigFile 2015-10-23 00:04:03 +02:00
Sebastian Messmer
c936fca16a Added test cases for CryConfigCreator 2015-10-22 18:48:14 +02:00
Sebastian Messmer
9bf83a6fe7 Adapted to new key creation interface 2015-10-22 18:48:04 +02:00
Sebastian Messmer
caaf528031 Refactor key creation 2015-10-22 18:19:59 +02:00
Sebastian Messmer
62549eeae6 Adapt to new cpputils::Random interface 2015-10-22 17:41:43 +02:00
Sebastian Messmer
ca5edb48db Refactor random library 2015-10-22 17:36:03 +02:00
Sebastian Messmer
9b1152348e Added test cases for CryConfig 2015-10-21 17:08:15 +02:00
Sebastian Messmer
d8e0465954 Added test cases for CryCipher 2015-10-19 14:22:01 +02:00
Sebastian Meßmer
d629e14533 Add include tests 2015-10-18 01:09:49 +02:00
Sebastian Meßmer
a3f557ef63 Fix warnings from -Weffc++ 2015-10-17 21:17:38 +02:00
Sebastian Meßmer
a4ce9f1c97 Fix warnings from -Weffc++ 2015-10-17 21:10:26 +02:00
Sebastian Meßmer
0c8b3e69a8 Disabled failing test 2015-10-17 20:37:57 +02:00
Sebastian Meßmer
97fce00391 Fixed warnings from -Weffc++ 2015-10-17 20:35:17 +02:00
Sebastian Meßmer
8b429bac9a Fix warnings from -Weffc++ 2015-10-17 20:15:20 +02:00
Sebastian Meßmer
490936d29d Fix test cases 2015-10-17 19:38:24 +02:00
Sebastian Meßmer
afc0f909b3 Use logging instead of cout/cerr 2015-10-17 17:23:35 +02:00
Sebastian Meßmer
05f9723295 Default logger logs to stderr, not stdout 2015-10-17 16:49:58 +02:00
Sebastian Meßmer
08c09e4af8 Add a fork test case for logging 2015-10-17 16:42:56 +02:00
Sebastian Meßmer
9f9b4fc342 Add test cases for logging 2015-10-17 15:49:54 +02:00
Sebastian Meßmer
7f7e27d6a3 Removed debug output 2015-10-17 03:28:05 +02:00
Sebastian Meßmer
bb90bb19ba Fix death tests in multithreading context 2015-10-16 04:06:00 +02:00
Sebastian Meßmer
39eaff4533 Unify (and fix) include guards 2015-10-15 13:10:20 +02:00
Sebastian Meßmer
821550e62f Unify (and fix) include guards 2015-10-15 13:09:21 +02:00
Sebastian Meßmer
5f9c2c0611 Unify (and fix) include guards 2015-10-15 13:06:51 +02:00
Sebastian Meßmer
c9663acd85 Unify (and fix) include guards 2015-10-15 13:04:57 +02:00
Sebastian Meßmer
02d89fa721 Unify (and fix) include guards 2015-10-15 12:58:16 +02:00
Sebastian Meßmer
7103b3ab07 Fix test cases 2015-10-15 05:26:05 +02:00
Sebastian Messmer
210c2c2811 Fix compiler error in test cases 2015-10-08 18:05:09 +02:00
Sebastian Messmer
2a938730e7 Test cases print stack trace on sigsegv 2015-10-05 16:56:53 +02:00
Sebastian Messmer
cc2f93af92 Test cases print stack trace on sigsegv 2015-10-05 16:54:41 +02:00
Sebastian Messmer
d47020e781 Test cases print stack trace on sigsegv 2015-10-05 16:52:49 +02:00
Sebastian Messmer
58f7024919 Test cases print stack trace on sigsegv 2015-10-05 16:52:06 +02:00
Sebastian Messmer
78dbe6ea24 Test cases print stack trace on sigsegv 2015-10-05 16:51:49 +02:00
Sebastian Messmer
e78cd1db91 Demangle backtrace 2015-10-05 14:58:16 +02:00
Sebastian Messmer
6dec27253c Fix assert test case 2015-10-03 01:30:42 +02:00
Sebastian Messmer
3fed6f13cb Removed testcases for constexpr 2015-10-03 01:01:48 +02:00
Sebastian Messmer
84330b1100 Cache has better parallelity - we can push()/pop() while it is flushing and flushing is actually parallel 2015-10-01 13:51:01 +02:00
Sebastian Messmer
90471ea6a3 Fixed Cache race condition and added test for it 2015-10-01 01:20:40 +02:00
Sebastian Messmer
e07ddaa289 Fix traversing bug and add test case for it 2015-09-30 15:33:09 +02:00
Sebastian Messmer
52bb855627 EncryptedBlockStore crashed when a modified block was removed. Fixed crash and added test case. 2015-09-29 18:51:59 +02:00
Sebastian Messmer
dfb030e51b Config file is also configurable with an option 2015-09-29 14:39:10 +02:00
Sebastian Messmer
27d3ffc472 MountDir and BaseDir are configureable via command line 2015-09-29 14:29:10 +02:00
Sebastian Messmer
819e48b446 Allow outputting const_string to std::ostream 2015-09-18 22:08:56 +02:00
Sebastian Messmer
12f1e7983b Use messmer/gitversion instead of own version parser code 2015-09-18 21:16:42 +02:00
Sebastian Messmer
fc7316f06c Show number of commits and git id in version number if it is a dev version 2015-09-18 17:34:56 +02:00
Sebastian Messmer
4cf1237bb8 Moved constexpr string manipulations to cpputils::const_string 2015-09-18 17:09:04 +02:00
Sebastian Messmer
3573a6fa74 Added const_string class (constexpr string manipulations) 2015-09-18 17:08:26 +02:00
Sebastian Messmer
3fd5cb7afc Show version information on console and warn if it is a nonstable or dev version 2015-09-17 14:12:51 +02:00
Sebastian Messmer
8db80d5ebf Refactor directory structure 2015-09-12 20:16:13 +02:00
Sebastian Messmer
67f0f39b50 Added Console class 2015-09-12 20:07:44 +02:00
Sebastian Messmer
117930fad2 Print a newline around user interactions 2015-09-04 16:09:37 +02:00
Sebastian Messmer
a9a5a5d04d Console class supports askYesNo(question) 2015-09-04 16:00:41 +02:00
Sebastian Messmer
aea84d9ef5 Added more ciphers 2015-08-31 23:04:56 +02:00
Sebastian Messmer
e96bb17e11 Removed unnecessary workaround 2015-07-29 12:07:25 +02:00
Sebastian Messmer
5607a51594 Added testcase for Console.print() 2015-07-26 13:13:36 +02:00
Sebastian Messmer
fd11436fb9 Test cases don't need user interaction anymore 2015-07-26 13:09:55 +02:00
Sebastian Messmer
69a413bf4b Fix EitherTest 2015-07-25 15:17:27 +02:00
Sebastian Messmer
50503d9ce0 Renamed Either to either 2015-07-24 20:08:03 +02:00
Sebastian Messmer
d9cfa55b91 Use ASSERT from cpputils instead of fspp_assert 2015-07-22 13:48:53 +02:00
Sebastian Messmer
106f18b496 Use the new assert that doesn't crash the program in a release build 2015-07-22 13:44:04 +02:00
Sebastian Messmer
fd93e4c199 Use the new assert that doesn't crash the program in a release build 2015-07-22 13:42:07 +02:00
Sebastian Messmer
cce24dd64b Implemented ASSERT macro 2015-07-22 13:39:38 +02:00
Sebastian Messmer
7dcb29d515 Implemented fspp_assert() 2015-07-21 19:45:44 +02:00
Sebastian Messmer
881c19c262 Fix missing usings 2015-07-21 18:31:28 +02:00
Sebastian Messmer
e5647ace48 Remove unneccessary using statements 2015-07-21 18:22:55 +02:00
Sebastian Messmer
492caeb418 Migrate from unique_ptr to unique_ref 2015-07-21 18:22:03 +02:00
Sebastian Messmer
37bdbd907a Finished migrating to unique_ref instead of unique_ptr 2015-07-21 18:19:34 +02:00
Sebastian Messmer
e64255a16e Removed last unique_ptr uses, all uses unique_ref now 2015-07-21 15:24:49 +02:00
Sebastian Messmer
b5d9f07f7a Implement cpputils::destruct(unique_ref) 2015-07-21 15:23:21 +02:00
Sebastian Messmer
e9c461e328 optional_ownership_ptr works with unique_ref 2015-07-21 15:18:14 +02:00
Sebastian Messmer
a923165360 Adapted to new blockstore interface (using unique_ref instead of unique_ptr) 2015-07-21 15:00:57 +02:00
Sebastian Messmer
7c407c4b69 Switched whole blockstore interface to unique_ref instead of unique_ptr 2015-07-21 14:50:52 +02:00
Sebastian Messmer
7fc4115129 Adapt to new blockstore (Blockstore::tryCreate returns optional<unique_ref<Block>> instead of unique_ptr<Block>) 2015-07-20 19:10:46 +02:00
Sebastian Messmer
a945e4f0fc Changed Blockstore::tryCreate() to return optional<unique_ref<Block>> instead of unique_ptr<Block> 2015-07-20 18:57:48 +02:00
Sebastian Messmer
337d2c055b Implemented Console class to interact with the user 2015-07-01 14:32:26 +02:00
Sebastian Messmer
6442512877 Allow dereferencing rvalues in unique_ref 2015-06-28 17:34:23 +02:00
Sebastian Messmer
72cb9fa038 When calling left()/right()/left_opt()/right_opt() on a rvalue reference, it performs a move and returns a rvalue reference 2015-06-28 17:25:13 +02:00
Sebastian Messmer
c5822b97f4 Use optional::value() instead of optional::get() 2015-06-28 17:05:06 +02:00