Commit Graph

729 Commits

Author SHA1 Message Date
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
Sebastian Messmer 636ed437aa Improve unique_ref tests 2017-04-05 20:48:00 +01:00
Sebastian Messmer 32da878f8f Extend unique_ref tests to custom deleters 2017-04-04 10:57:03 +01:00
Sebastian Messmer ed9f224f19 Further unique_ref improvements 2017-04-03 19:08:41 +01:00
Sebastian Messmer 2fb61e7c71 Further improve unique_ref 2017-04-03 15:43:27 +01:00
Sebastian Messmer 9ada10db4d Improve unique_ref 2017-04-03 14:43:32 +01:00
Sebastian Messmer dbf54b9563 Add test cases for BlockStore2 and fix existing BlockStore2 implementations 2017-02-21 22:27:46 +00:00
Sebastian Messmer cab1c71cac Merge from develop 2017-02-04 19:18:00 +00:00
Sebastian Messmer 9a304fc52b Upgrade spdlog to 0.11.0 2017-02-04 19:03:20 +00:00
Sebastian Messmer 42765c6be6 Merge from develop 2017-01-21 20:24:09 +00:00
Sebastian Messmer e37d84a3d6 fspp::Dir, fspp::File and fspp::Symlink don't inherit from fspp::Node anymore. This allows file systems to return a generic fspp::Node instead of a concrete subclass when the operation doesn't need to know what type of node it is. 2017-01-21 19:16:35 +00:00
Sebastian Messmer f0f4499200 Fix test cases 2016-09-25 20:05:38 +02:00
Sebastian Messmer 58d6a454d7 Merge branch 'develop' into next 2016-09-25 11:41:33 +02:00
Sebastian Messmer 54fb6fbd89 Fix test cases 2016-09-25 11:41:21 +02:00
Sebastian Messmer 5ff51cb358 Merge branch 'develop' into next 2016-09-25 03:01:42 +02:00
Sebastian Messmer 8ae2dee7fc Fix test cases 2016-09-25 03:01:29 +02:00
Sebastian Messmer e009040264 Merge from develop 2016-09-25 02:53:35 +02:00
Sebastian Messmer 443298844e Fix test cases 2016-09-25 02:50:28 +02:00
Sebastian Messmer bcf9d3c55d Merge branch 'develop' into next 2016-09-24 20:48:47 +02:00
Sebastian Messmer f79b80cc56 Fix test case 2016-09-24 20:47:53 +02:00
Sebastian Messmer b027f8c007 Merge from develop 2016-09-24 20:43:54 +02:00
Sebastian Meßmer d00151af37 Disable Mars448 test cases when Mars448 is not available and fix Travis CI. (#92) 2016-09-24 19:09:30 +02:00
Sebastian Messmer 378e259eee Fix assert_release_test 2016-09-24 17:05:45 +02:00
Sebastian Messmer 11a85ed29f Allow building with -DCRYFS_UPDATE_CHECKS=off, which will create an executable with disabled update checks (the alternative to disable them in the environment also still works). 2016-09-24 13:16:26 +02:00
Sebastian Messmer 116a90be6d Fix compiler warnings 2016-09-24 11:41:19 +02:00
Sebastian Messmer 32f06f288a Fix tree traversal and add test case for it 2016-09-07 22:25:18 +02:00
Sebastian Messmer 904e3dd7a1 Merge 2016-09-07 22:07:56 +02:00
Sebastian Messmer ea349cf79b Fix traversal bug and add test case for it 2016-09-07 19:02:41 +02:00
Sebastian Messmer f4b1a7eced Fix assert test cases 2016-07-22 14:10:21 +02:00
Sebastian Messmer a4ce49aef4 Fix unique_ref test cases 2016-07-22 14:07:06 +02:00
Sebastian Messmer bbdd8a548b Special case treatment for traversals until exactly the last leaf has to load the last leaf to grow it. Before this commit, we just always loaded the last traversed leaf and checked its size. Now we only do so if it's the right border leaf. This saves us loading some leaves. 2016-07-17 10:16:09 +02:00
Sebastian Messmer eab7cb1df4 Implement BlockStore::overwrite(). This is the last step in ensuring that the write() call doen't have to load leaves if they're only overwritten anyhow. 2016-07-16 11:42:06 +02:00
Sebastian Messmer d80b95514e Traversal doesn't load leaves, but returns the key. This way, the write() call can (after a future commit) write to full leaves without loading them beforehand. 2016-07-15 20:12:24 +02:00
Sebastian Messmer 582917c1f5 Improve code decreasing tree depth 2016-07-15 16:23:00 +02:00
Sebastian Messmer b1b90b8c3d Further reduce number of nodes loaded when deleting a tree and write test cases for it 2016-07-15 15:42:34 +02:00
Sebastian Messmer 6fc62a58fa Removed unneeded include 2016-07-15 12:51:29 +02:00
Sebastian Messmer c428d5642a Minimize number of Block::write() calls when creating new nodes in a traversal. Also add test cases for it. 2016-07-15 12:48:20 +02:00
Sebastian Messmer d626349802 Finish MockBlockStore to also collect other performance metrics, and implement the standard block store tests for it. 2016-07-15 10:23:09 +02:00
Sebastian Messmer 622416bc4d Add test cases for traverse performance 2016-07-15 01:03:41 +02:00
Sebastian Messmer 4e689f2411 Add test case ensuring that leaves aren't loaded on delete 2016-07-14 23:38:17 +02:00
Sebastian Messmer 41146282ca Add test cases for tree traversal 2016-07-14 11:41:49 +02:00
Sebastian Messmer 9e9369b9ed Performance optimization: When removing or shrinking a tree, we don't load/read leaves anymore. Loading inner nodes is enough to get all block IDs and then we can delete the leaves from their IDs without loading them. 2016-07-13 11:27:31 +02:00
Sebastian Messmer 7a68757599 Remove unneeded subtrees when shrinking tree 2016-07-13 07:08:53 +02:00
Sebastian Messmer e7268744c6 Fix compiler warning 2016-07-13 00:23:29 +02:00
Sebastian Messmer 508766d2f2 Fix traversal and add test cases 2016-07-13 00:22:35 +02:00
Sebastian Messmer 845b0b5239 Use LeafTraversor for resizing blobs 2016-07-12 20:36:12 +02:00
Sebastian Messmer 582c9c1a4c Fix traversal 2016-07-12 01:04:33 +02:00
Sebastian Messmer 98b85ea8b6 Started rewriting traversal 2016-07-10 22:57:39 +02:00
Sebastian Messmer 2bc3b641aa Allow Data::FillWithZeroes on rvalue 2016-07-10 22:43:07 +02:00
Sebastian Messmer 30a1a3617e Fix compiler warning in test case 2016-07-10 22:15:48 +02:00
Sebastian Messmer e85019e95b Cache value of DataTree.numLeaves(). This should make read()/write() faster. 2016-07-05 23:56:44 -07:00
Sebastian Messmer 2f8e8d8157 Add test case for DataTree::numLeaves after resize 2016-07-05 23:53:13 -07:00
Sebastian Messmer 3a447a7110 Add a test case to VersionCompareTest 2016-06-28 15:24:18 -07:00
Sebastian Messmer 9e1d466eee Merge branch 'develop' into next 2016-06-28 01:38:12 -07:00
Sebastian Messmer 967b04929d Fix compiling test cases on older gcc versions 2016-06-28 01:37:08 -07:00
Sebastian Messmer f706e46868 Fix compiling test cases on older gcc versions 2016-06-27 22:57:31 -07:00
Sebastian Messmer 0f9aba1fc4 Fix compilation of test cases for old gcc 2016-06-27 22:39:33 -07:00
Sebastian Messmer 397de9372f Each blob stores a parent pointer (i.e. the ID of the directory that contains this blob). This stores the directory structure in a conflict-proof way and can be used to resolve such conflicts. 2016-06-27 18:22:13 -07:00
Sebastian Messmer a7f13ad7c1 When creating a file system, the user can choose whether to choose missing blocks as integrity violations. 2016-06-26 23:24:32 -07:00
Sebastian Messmer 2451a8c46f Add --missing-block-is-integrity-violation option. The option doesn't have an effect yet though. 2016-06-26 22:16:44 -07:00
Sebastian Messmer 7bf84b1948 Add some test cases for the consistency of the generated myClientId. 2016-06-26 22:15:52 -07:00
Sebastian Messmer be8dffb24d MyClientId is generated outside of CryDevice to give the CryConfigCreator access to it. 2016-06-26 22:15:52 -07:00
Sebastian Messmer b838046246 Add a 'exclusive client' option to the config file 2016-06-26 22:15:52 -07:00
Sebastian Messmer 514dbcb6c7 ClientId is not loaded/generated inside of KnownBlockVersions, but in CryDevice. This way, CryDevice also has access to the ClientID. This is later needed to recognize whether we're in a single-client or in a multi-client setting. 2016-06-26 22:15:52 -07:00
Sebastian Messmer f066b45954 VersionCountingBlockStore::forEachBlock() has an integrity check checking that all expected blocks are still existing. 2016-06-26 22:15:52 -07:00
Sebastian Messmer 491b277cee In case of an integrity violation, tell the user how they can reset integrity data. 2016-06-26 22:15:52 -07:00
Sebastian Messmer 839a511c4d When an integrity violation is detected, any further access to the file system is blocked. This ensures that the user notices the integrity violation. 2016-06-26 22:15:52 -07:00
Sebastian Messmer 2284571127 Add test cases to KnownBlockVersionsTest 2016-06-26 22:15:52 -07:00
Sebastian Messmer c84a230afd VersionCountingBlockStore is initialized with a flag, saying whether missing blocks are integrity errors. This flag is meant to be activated in a single-client scenario to have this additional integrity check. 2016-06-26 22:15:52 -07:00
Sebastian Messmer e02021ecdc Throw an IntegrityViolationError exception instead of just logging integrity violations. This makes sure the user notices. 2016-06-26 22:15:52 -07:00
Sebastian Messmer 32001d0af3 Write another integrity test case 2016-06-26 22:15:52 -07:00
Sebastian Messmer 473e9cc8bb Fix compiler errors 2016-06-26 22:15:52 -07:00
Sebastian Messmer 1a72d3c226 Deleting a block doesn't set the version number to MAX_UINT64, but just increases it by one. This makes sure, that if (in case of a synchronization conflict) the block is reintroduced by another client, this is accepted. 2016-06-26 22:15:52 -07:00
Sebastian Messmer 5534b56ce3 When increasing the version number, don't only look at the version number in the block, but also at the last version number given to it by the current client. Ensure, the new version number is higher than both. 2016-06-26 22:15:52 -07:00
Sebastian Messmer 577c697856 When a client deletes a block, it will never again accept it as a valid block. 2016-06-26 22:15:52 -07:00
Sebastian Messmer e7ac9bec57 Implement BlockStore::forEachBlock 2016-06-26 22:15:52 -07:00
Sebastian Messmer 4d1f7a46b9 * Prevent rollback to the "newest" version of a client when this version was superseded by a version from a different client.
* Use mutex/locks to secure access to KnownBlockVersions
2016-06-26 22:15:52 -07:00
Sebastian Messmer ea3de7360c * Block versions don't have to be globally nondecreasing, but only per client id. This solves potential synchronization conflicts in a multi-client setting.
* Use cpputils::Serializer and cpputils::Deserializer instead of std::ifstream for storing/loading the block version list
2016-06-26 22:15:52 -07:00
Sebastian Messmer 389273a24f Test cases use a fake home directory for their configuration, so they don't clutter the actual home directory. 2016-06-26 22:15:52 -07:00
Sebastian Messmer 13411c4e59 Integrity data from KnownBlockVersions is persisted to a file 2016-06-26 22:15:52 -07:00
Sebastian Messmer d7f547dd47 Implement a VersionCountingBlockStore that checks that version numbers are nondecreasing. Currently, the block store is not used yet and the state is not stored over different runs of CryFS. This comes with future commits. 2016-06-26 22:15:52 -07:00
Sebastian Messmer da6390646e Add test cases for command line parser when options are not given. 2016-06-26 22:15:43 -07:00
Sebastian Messmer 9358c10adf Finish test cases for Block::resize() 2016-06-23 21:30:09 -07:00
Sebastian Messmer acedbbd0c4 Fix EncryptedBlock::resize() and add test cases for it 2016-06-23 21:20:36 -07:00
Sebastian Messmer e4501d51e5 Each file system gets a unique ID. This ID will later be used to store local configuration of a client for that file system. 2016-06-20 16:14:07 -07:00
Sebastian Messmer 354f72443e Adapt test cases to new behavior from commit 2642507344 2016-06-07 12:52:06 -07:00
Sebastian Messmer 1bb38f39b4 * Fix FuseTest
* Refactor Fuse: shorter functions, and factor out common functionality of adding a fuse option into own method
2016-06-04 00:45:49 -07:00
Sebastian Messmer 40c64a879c Hide fuse quirks inside the Fuse class.
fuse_main needs the program arguments as char ** instead of const char ** or (even better) vector<string>.
With this commit, we hide that inside the Fuse class. Everything outside handles these arguments as vector<string> and passes it as such to the Fuse class.
2016-05-09 16:07:02 -07:00
Sebastian Messmer 9a0b0a0c36 Ask before migrating an old CryFS file system to a new version. 2016-05-03 20:34:30 -07:00
Sebastian Messmer 9ed7bd0b41 Ciphertext blocks are split into subdirectories (before, all were on top level) to reduce number of files per directory. Some unix tools don't work well with directories with too many entries. 2016-04-29 12:21:02 -07:00
Sebastian Messmer 811c163bfa Fix rename() when overwriting an existing file: (a) Keep the invariant that the list of directory entries is sorted and (b) delete the blob of the overwritten file 2016-04-25 17:42:17 -07:00
Sebastian Messmer 97bd758eb8 Fix test case on 32bit platform (caused by double inaccuracy) 2016-04-02 10:13:28 +02:00
Sebastian Messmer 4069358b31 Fix VersionCompare for stable versions vs tag versions 2016-03-29 11:07:00 +08:00
Sebastian Messmer 078ab78c5a Removed unnecessary workaround 2016-03-26 23:42:07 +08:00
Sebastian Messmer b9ac810414 - The version field in the config file is updated when the file system is opened with a newer CryFS version (i.e. it is migrated to the newer version).
- We introduced a CreatedWithVersion field instead which gets the semantics the version field had before (i.e. which version of CryFS was the file system originally created with)
- Move VersionCompare to gitversion package
2016-03-27 00:09:07 +08:00
Sebastian Messmer 18d05d165e Use --blocksize instead of --blocksize-bytes, so we can (later) allow users to write "--blocksize 2M" 2016-03-24 06:45:41 +00:00
Sebastian Messmer 1c0199e147 When the user specifies a block size for the file system, this is taken as the physical block size, not virtual block size. 2016-03-16 19:30:26 +00:00
Sebastian Messmer 037b59634e Implemented BlockStore::blockSizeFromPhysicalBlockSize. This will be used to let the user configure physical block size instead of virtual block size. 2016-03-16 18:56:06 +00:00
Sebastian Messmer 526b749d1d Add a command line option for blocksize 2016-03-04 23:12:41 +01:00
Sebastian Messmer 5579270108 Handle fallback version "0+unknown" correctly 2016-03-02 14:39:30 +01:00
Sebastian Messmer b7b7d47a8d Add test cases for the version number of dirty release versions 2016-03-02 13:57:40 +01:00
Sebastian Messmer 5753e4f71c Switch to new git version number recognition 2016-03-02 13:53:37 +01:00
Sebastian Messmer 3254220987 Filesystems have a blocksizeBytes configuration option 2016-03-01 17:45:48 +01:00
Sebastian Messmer e48188f470 Restructure project to allow factoring out a library 2016-02-23 21:07:23 +01:00
Sebastian Messmer d5a0b725fe Refactor interface for key derivation functions. This allows easily adding new (password based) key derivation functions. 2016-02-22 02:38:06 +01:00
Sebastian Messmer d95cc33a58 You can disable the automatic update check by setting CRYFS_NO_UPDATE_CHECK=true in your environment. 2016-02-21 22:15:27 +01:00
Sebastian Messmer 9c83d3b2a4 If CRYFS_FRONTEND=noninteractive is set in the environment, assume we're used by a tool and:
- Don't ask for config. Use default settings for everything that is not specified as command line parameter.
- Don't ask for password confirmation. Password only has to be passed in once to stdin.
2016-02-21 01:36:14 +01:00
Sebastian Messmer 346baf8e9b Only show update check warning if version on server is actually newer 2016-02-20 18:23:46 +01:00
Sebastian Messmer bf92588491 Fix parallelaccessstore-test dependencies 2016-02-17 19:39:34 +01:00
Sebastian Messmer 3bd43506c2 Fix test cases 2016-02-15 18:47:45 +01:00
Sebastian Messmer 2347782f6a Fix test cases for Release builds: The -O3 optimization step seems to cause segfaults on implicit integer overflows, so make the wanted overflows explicit in FakeAuthenticatedCipher. 2016-02-15 05:00:30 +01:00