Commit Graph

739 Commits

Author SHA1 Message Date
Sebastian Messmer
5d77a82c7f Fix test cases 2018-12-18 21:36:13 -08:00
Sebastian Messmer
9ebd3d754c Fix test cases 2018-12-18 21:34:20 -08:00
Sebastian Messmer
d68247070f When an integrity violation occurs, gracefully unmount the file system and refuse to mount on future attempts 2018-12-10 21:20:18 -08:00
Sebastian Messmer
64150f294e Fuse offers an onMounted callback that is called when everything is ready. 2018-12-09 12:27:53 -05:00
Sebastian Messmer
449133e3da - Allow callback when fuse filesystem is mounted
- Use that callback to initialize the file system instead of initializing it up front
2018-12-03 01:57:30 -05:00
Sebastian Messmer
d761dba894 Merge branch 'feature/cleanup_keyprovider' into develop 2018-10-27 22:47:13 -07:00
Sebastian Messmer
ff142883b6 TODOs 2018-10-27 22:46:41 -07:00
Sebastian Messmer
187b9ceb53 [wip] Implement either type 2018-10-27 22:34:28 -07:00
Sebastian Messmer
596b04acce Introduce a CryPresetPasswordBasedKeyProvider for when the password is already known 2018-10-27 20:36:54 -07:00
Sebastian Messmer
74cd8abf05 Introduce CryKeyProvider to have an abstraction layer that allows plugging in non-password-based key providers 2018-10-27 09:48:57 -07:00
Sebastian Messmer
954d6662f6 Simplify: key size is only known at runtime, not a template parameter anymore 2018-10-21 22:53:53 +02:00
Sebastian Messmer
10f8adbb73 Use NiceMock to reduce the log size on Travis CI because we're close to the 4MB limit 2018-10-19 20:34:51 +02:00
Sebastian Messmer
4b26c67146 Fix clang-tidy warnings 2018-10-14 22:26:30 +02:00
Sebastian Messmer
ff62fe9e84 Fix data race in test case 2018-09-26 20:10:43 -07:00
Sebastian Messmer
9102c06356 Remove obsolete test case 2018-09-23 21:58:32 -07:00
Sebastian Messmer
5da8eac56e Remove unused parameter from statfs() 2018-09-22 14:24:31 -07:00
Sebastian Messmer
3697e9eff4 Disable FuseStatfsPathParameterTest on osx 2018-09-22 12:25:43 -07:00
Sebastian Messmer
56ffe708e2 Fix cpp-utils-test on 32bit Windows 2018-09-19 03:01:31 -07:00
Sebastian Messmer
9a7b9878f5 Change error handling in HttpClient 2018-09-16 23:37:12 -07:00
Sebastian Messmer
1dff0aca85 Don't build fspp-test on Windows because it doesn't work yet 2018-09-16 01:17:14 -07:00
Sebastian Messmer
0769039052 Fix build 2018-09-16 00:06:54 -07:00
Sebastian Messmer
a866fda3a9 Use FUSE_STAT on Dokan 2018-09-15 18:02:03 -07:00
Sebastian Messmer
347be60ba6 Fix inline 2018-09-15 17:41:39 -07:00
Sebastian Messmer
8d21e09159 Introduce fspp::num_bytes_t 2018-09-15 14:32:58 -07:00
Sebastian Messmer
b1dfd94243 Introduce fspp::uid_t, fspp::gid_t and fspp::mode_t 2018-09-14 02:34:11 -07:00
Sebastian Messmer
ac63b5af85 Add FlagsValueType 2018-09-14 01:31:38 -07:00
Sebastian Messmer
ee80327c45 Fix ValueTypeTest for Windows 2018-09-14 00:59:27 -07:00
Sebastian Messmer
63c5d20453 Decouple stat because dokan-fuse and fuse have different structs for that 2018-09-13 22:38:05 -07:00
Sebastian Messmer
d6b1a6e25d Reduce flakiness in CallAfterTimeoutTest 2018-09-13 18:41:58 -07:00
Sebastian Messmer
5ad55b1d58 - UnswappableAllocator
- EncryptionKey uses UnswappableAllocator
2018-09-11 21:51:31 -07:00
Sebastian Messmer
1f363fce62 Introduce Allocators to cpputils::Data 2018-09-11 18:49:13 -07:00
Sebastian Messmer
4afe1eb780 Decouple statvfs 2018-09-11 18:26:33 -07:00
Sebastian Messmer
121de7d7ab Remove some unneeded headers 2018-09-11 00:50:59 -07:00
Sebastian Messmer
498c9da860 Fix CI for osx 2018-09-10 13:11:00 -07:00
Sebastian Messmer
6ada5166e9 Fix CliTest regex checks in unit tests on Windows 2018-09-07 21:32:27 -07:00
Sebastian Messmer
af1ed483cf On Windows, disable a few test cases that don't work 2018-09-07 21:32:09 -07:00
Sebastian Messmer
1be1b5c26e Don't block if filesystem doesn't finish 2018-09-07 21:32:00 -07:00
Sebastian Messmer
afad6ee465 Improve CliTest running of the file system 2018-09-07 19:54:01 -07:00
Sebastian Messmer
cef6b13317 Fix relative path construction on Windows 2018-09-07 19:13:20 -07:00
Sebastian Messmer
a9e2dea97e Fix argument string ownership 2018-09-07 19:13:20 -07:00
Sebastian Messmer
d8b66d0967 - If unmounting doesn't work in test case, don't deadlock but exit with error 2018-09-07 19:13:20 -07:00
Sebastian Messmer
de3095a4d4 Fix paths for Windows tests 2018-09-07 19:13:20 -07:00
Sebastian Messmer
fafbbb8e3a Portable way to ask for password 2018-09-03 16:51:59 -07:00
Sebastian Messmer
4778c28898 Some MSVC fixes 2018-09-03 16:06:54 -07:00
Sebastian Messmer
cb96a5fc0a Portable setenv 2018-09-03 16:06:46 -07:00
Sebastian Messmer
873c51962f Make filetime test cases work on Windows 2018-09-03 02:33:03 -07:00
Sebastian Messmer
2348396ad9 constexpr fix for Windows 2018-09-03 02:29:11 -07:00
Sebastian Messmer
93ed589bf4 Fix includes for Windows 2018-09-03 01:16:29 -07:00
Sebastian Messmer
f5040d2d5a Fix Windows counter types 2018-09-03 01:11:12 -07:00
Sebastian Messmer
2d757b028d Windows compatibility for struct stat 2018-09-03 01:08:38 -07:00
Sebastian Messmer
a7ee4e5446 Fix backtrace_test on osx 2018-08-08 22:34:57 -04:00
Sebastian Messmer
847dc893c0 Fix compiler warnings 2018-08-08 22:19:20 -04:00
Sebastian Messmer
1233d44b35 Fix CI 2018-08-07 18:54:51 -07:00
Sebastian Messmer
6f175e0b9b Fix CI 2018-08-07 18:04:32 -07:00
Sebastian Messmer
acff0e5c39 fix 2018-08-01 17:13:42 -07:00
Sebastian Messmer
355da63a1d Fix top level exception handler on Windows 2018-08-01 17:13:31 -07:00
Sebastian Messmer
1dd88f0a67 Windows compatibility fixes 2018-07-08 19:47:40 -07:00
Sebastian Messmer
07ba168107 Finish IdValueType 2018-05-27 21:03:44 -07:00
Sebastian Messmer
e266fa5e98 Add test cases 2018-05-23 23:57:09 -07:00
Sebastian Messmer
0e697eb1f6 Continue implementing ValueType. New approach. 2018-05-23 00:03:32 -07:00
Sebastian Messmer
df2f1d7a2f Start implementing ValueType 2018-05-22 00:04:00 -07:00
Sebastian Messmer
04e3f0f34f Start 2018-05-21 23:11:51 -07:00
Sebastian Messmer
708cd99868 Start splitting fspp-fuse from fspp-interface 2018-05-21 08:11:43 -07:00
Sebastian Messmer
2ea77d4c26 Use boost::filesystem::path more portably 2018-05-20 19:22:46 -07:00
Sebastian Messmer
ca68102a50 Prefer repository-cryptopp to system installed one 2018-05-20 19:21:59 -07:00
Sebastian Messmer
f2831c0426 Rewrite subprocess and add test cases for it 2018-05-20 19:21:58 -07:00
Sebastian Messmer
89ee45be0b Add test case for DontEchoStdinToStdoutRAII 2018-05-20 19:21:58 -07:00
Sebastian Messmer
a5ee4d7bab Fix for older boost versions 2018-05-19 01:19:46 -07:00
Sebastian Messmer
d2beafa03e Fix AppDataDirExists test on Travis CI 2018-05-18 23:00:37 -07:00
Sebastian Messmer
b715e18a59 Fix non-windows backtrace implementation 2018-05-18 22:29:41 -07:00
Sebastian Messmer
9d872ea00c - Fix clash of our ERROR log level with the ERROR macro defined in windows
- Fix definition of log levels so msvc accepts them
2018-05-16 23:03:03 -07:00
Sebastian Messmer
ec9931e09e - Test showBacktraceOnSigsegv
- Test that failed assertions show a backtrace
2018-05-16 22:42:03 -07:00
Sebastian Messmer
3563f4687d Add testcases for backtrace 2018-05-16 22:31:43 -07:00
Sebastian Messmer
1126d7bd10 - Make get_total_memory work for windows
- Add test cases for it
2018-05-16 22:22:42 -07:00
Sebastian Messmer
61cad69671 - Fix nanoseconds in clock_gettime for Mac
- Hide clock_gettime in favor of cpputils::time::now()
- Add test cases to cpputils::time::now()
2018-05-16 22:18:45 -07:00
Sebastian Messmer
bd1dc9f747 Add test case for clock_gettime 2018-05-16 21:47:46 -07:00
Sebastian Messmer
2888ea6efd - Make homedir work on windows
- add test cases for homedir
2018-05-16 21:34:01 -07:00
Sebastian Messmer
2299867320 Reduce memory usage 2018-05-03 21:32:21 -07:00
Sebastian Messmer
f29e398e51 Rename --no-integrity-checks to --allow-integrity-violations 2018-04-29 13:41:21 -07:00
Sebastian Messmer
d7a41089ba Add environment variable to specify local storage directory 2018-04-21 22:04:21 -07:00
Sebastian Messmer
fc71242e25 Fix Travis CI build 2018-02-17 18:54:22 -08:00
Sebastian Messmer
621864b50c Fix test cases 2018-02-07 23:08:01 -08:00
Sebastian Messmer
02976659d0 Merge from develop 2018-02-03 09:56:49 -08:00
Sebastian Messmer
a9556425dc Only migrate file system if storage format changed 2018-02-03 09:47:04 -08:00
Sebastian Messmer
400a5b5397 fix race condition in CallAfterTimeoutTest 2018-02-02 12:34:45 -08:00
Sebastian Messmer
58fc26002b Exit codes for integrity errors 2018-02-01 18:09:28 -08:00
Sebastian Messmer
f90b7ad778 Merge from develop 2018-02-02 00:21:51 +00:00
Sebastian Messmer
5948f63fc8 When CryFS fails to load a file system, the process stops with a helpful error code, which can be used by GUI tools to show detailed messages. 2018-02-02 00:08:01 +00:00
Sebastian Messmer
6db124383b Merge branch 'develop' into next 2018-02-01 11:25:04 -08:00
Sebastian Messmer
5463c14872 Remove --version test case because it doesn't work 2018-02-01 11:24:55 -08:00
Sebastian Messmer
05f3726ec3 Merge from develop 2018-02-01 11:21:26 -08:00
Sebastian Messmer
5fc0b7cae8 Add --version option that shows the CryFS version and exits. 2018-02-01 10:21:47 -08:00
Sebastian Messmer
124d9ffe04 Disable mars448 test cases if the used crypto++ library version doesn't support it 2018-02-01 09:48:08 -08:00
Sebastian Messmer
67afdd4baa Add test cases for --allow-filesystem-upgrade 2018-02-01 09:45:31 -08:00
Sebastian Messmer
11c6f7fa98 Fix test cases 2018-02-01 02:33:33 -08:00
Sebastian Messmer
7287f1ca4d Fix some tsan warnings 2018-01-15 01:58:48 +00:00
Sebastian Messmer
f439bf9d0f Remove c style casts and unaligned memory accesses 2017-12-03 19:01:41 +00:00
Sebastian Messmer
cc7b38b3c1 - run-clang-tidy.sh also runs on test cases.
- fix clang-tidy warnings in test cases
2017-12-01 15:01:49 +00:00
Sebastian Messmer
006d8b541a Remove unused either class 2017-12-01 15:01:24 +00:00
Sebastian Messmer
e318b4879b Fix CI build 2017-11-05 16:36:11 +00:00
Sebastian Messmer
19e3433035 Fix CI build 2017-11-04 19:03:04 +00:00
Sebastian Messmer
76e7f7da72 Introduce clang-tidy and fix corresponding warnings 2017-10-27 04:02:51 +01:00
Sebastian Messmer
a3e26c7480 Fix test case compatibility with older compilers 2017-10-08 16:23:44 +01:00
Sebastian Messmer
97c6bccc39 Fix test case compatibility with older compilers 2017-10-08 16:14:40 +01:00
Sebastian Messmer
600854572c Disable network tests by default, because they can fail depending on the network setup 2017-10-08 06:54:31 +01:00
Sebastian Messmer
0af087c120 Fix clang warning 2017-10-02 08:01:38 +01:00
Sebastian Messmer
0a7fce6701 Improve CryConfigLoaderTest 2017-09-30 22:44:24 +01:00
Sebastian Messmer
04341f3f7d Add test cases that make sure that CryFS notices if an attacker replaces the whole file system 2017-09-30 22:42:34 +01:00
Sebastian Messmer
be8a1efd35 Improve test cases 2017-09-30 22:24:33 +01:00
Sebastian Messmer
7e01e84d35 Fix accidental change from last commit 2017-09-30 21:35:02 +01:00
Sebastian Messmer
85759961ef Don't keep update check connection open after update check is finished 2017-09-30 18:53:03 +01:00
Sebastian Messmer
bd34a04d0c Fix test cases 2017-09-30 09:30:31 +01:00
Sebastian Messmer
be9f7a4c3d Don't pollute users local state dir when running test cases 2017-09-30 09:18:46 +01:00
Sebastian Messmer
011c6d26ce Don't pollute users local state dir when running test cases 2017-09-30 09:03:19 +01:00
Sebastian Messmer
7a5b23db13 Remember hashed filesystem key in local state so attacker can't replace it 2017-09-30 08:49:24 +01:00
Sebastian Messmer
9fc8b257a0 Fix CI 2017-09-28 21:15:51 -07:00
Sebastian Messmer
9cc3697e1b Fix CI build 2017-09-28 15:13:03 -07:00
Sebastian Messmer
49719e3e66 Use config file instead of dir for basedir metadata 2017-09-28 08:19:30 +01:00
Sebastian Messmer
aace4c2f13 Check that filesystem id didn't change since we loaded the basedir the last time 2017-09-28 07:41:08 +01:00
Sebastian Messmer
26b3b366c9 Use local state file instead of myClientId file 2017-09-23 20:17:05 +01:00
Sebastian Messmer
9fdefaa4e0 Remove BlockStoreWithRandomKeys 2017-09-18 20:42:07 +01:00
Sebastian Messmer
5458af7c52 Rename blockstore::Key -> blockstore::BlockId 2017-09-17 02:07:27 +01:00
Sebastian Messmer
10e11f67e2 Make blockstore::Key more typesafe 2017-09-17 00:10:53 +01:00
Sebastian Messmer
f7c089ba47 Fix clang 5.0 compiler warnings 2017-09-16 17:45:15 +01:00
Sebastian Messmer
5299be5dda Wire through the missingBlockIsIntegrityViolation setting 2017-09-16 16:49:33 +01:00
Sebastian Messmer
b6ce7c3ae4 Allow disabling integrity checks on command line 2017-09-16 16:18:53 +01:00
Sebastian Messmer
ab0a83917f Only run compatibility unit tests in compatibility mode 2017-09-16 01:23:40 +01:00
Sebastian Messmer
f6b6875bb2 Rename VersionCountingBlockStore -> IntegrityBlockStore 2017-09-16 00:18:58 +01:00
Sebastian Messmer
00d098952b Storing block ID is job of VersionCountingBlockStore, not EncryptedBlockStore. 2017-09-16 00:09:15 +01:00
Sebastian Messmer
0ec081750e Fix test cases 2017-09-11 14:37:06 +01:00
Sebastian Messmer
9516d4facc Further compatibility fixes for GCC 4.8 2017-09-10 14:27:14 +01:00
Sebastian Messmer
7e56c46bb0 CryFS tells the operating system to not swap the encryption key to the disk (note: this is best-effort and cannot be guaranteed. Hibernation, for example, will still write the encryption key to the disk) 2017-09-05 00:43:43 +01:00
Sebastian Messmer
06e8fc15d4 Fix test case build 2017-09-05 00:38:24 +01:00
Sebastian Messmer
bc46bc88e9 Fix some issues with fspp-test on Mac OS X 2017-08-25 00:14:16 +01:00
Sebastian Messmer
f951f41877 Fix cryfs-cli-test on Mac OS X 2017-08-24 23:43:35 +01:00
Sebastian Messmer
679b14a4d8 * Allow mounting using system mount tool and /etc/fstab (e.g. mount -t fuse.cryfs basedir mountdir)
* Pass fuse options directly to cryfs (i.e. 'cryfs basedir mountdir -o allow_other' instead of 'cryfs basedir mountdir -- -o allow_other')
2017-08-23 09:56:03 +01:00
Sebastian Messmer
ffc0b5195c - Fix CachingBlockStore2_Specific test cases to actually test CachingBlockStore2
- Remove old CachingBlockStore
2017-08-22 00:03:04 +01:00
Sebastian Messmer
509bf6cc26 Fix CachingBlockStore2 and add test case for it 2017-08-21 23:09:43 +01:00
Sebastian Messmer
4add7f3d80 Start implementing new cache 2017-08-21 22:44:35 +01:00
Sebastian Messmer
a45c0bf29a Fix merge conflict 2017-08-20 01:12:28 +01:00
Sebastian Messmer
ff34049787 Merge branch 'next' into newblockstore 2017-08-19 11:54:01 +01:00
Sebastian Messmer
ade23f9b86 Merge branch 'develop' into next 2017-08-19 11:53:22 +01:00
Mouse
7abed14d63 Make compatible with the current Crypto++ master (#163)
* Make compatible with the current Crypto++ master

* Add auto-config and build script. Not important, just a time-saver.

* Address compatibility with Crypto++ 6.0 release, while maintaining compatibility
with the older Crypto++ releases.

* Polish comments in cryptopp_byte.h. Forgot to include it to RandomGeneratorThread - fixed.

* Late at night - forgot to fix the .cpp files that used ::byte...

* Renamed auto-config-and-run script

* Added comments/description, and commented out "make check" that fails anyway

* Changed the include guard to match the rest of the .h files

* Delete build script

* Update ChangeLog.txt

* Update ChangeLog.txt
2017-08-16 03:00:46 +01:00
Sebastian Messmer
4a602ce7a5 Remove old blockstore implementations 2017-07-20 19:32:42 -07:00
Sebastian Messmer
acf01ec4ff Actually wire up CryDevice to use new block stores 2017-07-18 14:49:51 -07:00
Sebastian Messmer
428290fda5 Extend BlockStore2 and write a LowToHighLevelBlockStore as wrapper from BlockStore to BlockStore2 2017-07-07 16:18:09 -05:00
Sebastian Messmer
13be2908d0 Add unit tests to BlockStore2Test 2017-07-07 17:50:45 +02:00
Sebastian Messmer
f22a9b2f0a Merge branch 'next' into newblockstore 2017-07-07 15:48:24 +02:00
Sebastian Messmer
317088e449 Rename unique_ref::isValid to is_valid to comply with naming scheme of other functions 2017-04-10 14:16:30 -07:00
Sebastian Messmer
1b80d7e99d Improve unique_ref tests 2017-04-06 11:10:57 +01:00