Sebastian Messmer
95d9dc1557
Removed unnecessary cmake command
2018-05-21 08:11:43 -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
0x4D616E75
1a2036749c
Remove usage of old behavior from cmake 2.8 policy ( #217 )
...
* fix linking of fuse in cryfs-cli, linking of cpp-utils in cryfs tests and remove cmake policy to use behaviors of cmake 2.8 instead of 3.0
* setting link dependencies in cryfs project to public, remove transitive dependencies from cryfs-cli project and cryfs test project
* set gtest and gmock link dependencies from private to public in googletest project
2018-05-20 15:13:49 -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
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
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
b0077e7a81
Don't error when trying to change owner/group of root dir, instead just ignore it
2018-04-18 00:24:41 -07:00
Sebastian Messmer
0f1345e64b
Don't error when trying to change root dir timestamp, instead just ignore it
2018-04-04 21:21:21 -07:00
Sebastian Messmer
fc71242e25
Fix Travis CI build
2018-02-17 18:54:22 -08:00
Sebastian Messmer
8221e76f3a
Fix migration for loading 0.9.x file systems
2018-02-03 21:33:07 -08:00
Sebastian Messmer
4de805ae41
Update filesystem format version
2018-02-03 10:12:26 -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
652b505eef
Add --allow-replaced-filesystem option to disable filesystem id checks
2018-02-03 08:33:59 -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
05f3726ec3
Merge from develop
2018-02-01 11:21:26 -08:00
Sebastian Messmer
8da4f4d362
Add --allow-filesystem-upgrade option which will upgrade old file systems without asking the user. This will be especially helpful for GUI tools.
2018-02-01 02:04:59 -08:00
Sebastian Messmer
f439bf9d0f
Remove c style casts and unaligned memory accesses
2017-12-03 19:01:41 +00:00
Sebastian Messmer
5fe3cada4c
Enable some more clang-tidy checks and fix warnings
2017-10-29 16:35:10 +00:00
Sebastian Messmer
e38af1001d
Remove unused using statements
2017-10-29 15:47:46 +00:00
Sebastian Messmer
76e7f7da72
Introduce clang-tidy and fix corresponding warnings
2017-10-27 04:02:51 +01:00
Sebastian Messmer
d5075ec09e
Fix
2017-10-02 04:14:19 +01:00
Sebastian Messmer
3787777967
Optimize std::move use
2017-10-01 09:04:29 +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
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
556d9cf452
New default block size: 16KB
2017-09-19 11:20:28 +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
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
666d24e7b8
Fix no-compatibility mode
2017-09-16 00:52:23 +01:00
Sebastian Messmer
f6b6875bb2
Rename VersionCountingBlockStore -> IntegrityBlockStore
2017-09-16 00:18:58 +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
3aa8b74fd9
Fix fsstat on osx
2017-08-31 23:40:25 +01:00
Sebastian Messmer
fc21b0882a
Fix relatime performance
2017-08-24 08:19:16 +01:00
Sebastian Messmer
5fb4098c8b
Implement relatime behavior for performance
2017-08-23 20:32:36 +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
9d298bad6c
Switch to new caching block store
2017-08-21 23:11:45 +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
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
9ada10db4d
Improve unique_ref
2017-04-03 14:43:32 +01:00
Sebastian Messmer
d84e65ad76
Merge from develop
2017-02-18 13:22:43 +00:00
Sebastian Messmer
19bfe97d52
du reports correct space usage
2017-02-18 13:21:54 +00:00
Sebastian Messmer
cab1c71cac
Merge from develop
2017-02-04 19:18:00 +00:00
Sebastian Messmer
54e0ffce2e
Merge branch 'develop' of github.com:cryfs/cryfs into develop
2017-02-04 19:03:32 +00:00
Sebastian Messmer
9a304fc52b
Upgrade spdlog to 0.11.0
2017-02-04 19:03:20 +00:00
Sebastian Messmer
596d9d0426
Merge from develop
2017-02-04 14:38:14 +00:00
Sebastian Messmer
7267bb5be4
Fix buid on Mac OS X
2017-02-04 14:21:00 +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
b027f8c007
Merge from develop
2016-09-24 20:43:54 +02:00
Sebastian Messmer
1e9fdc9aa7
Refactor noninteractive mode. All yes/no questions are forced to define a default that will be used in noninteractive mode.
2016-09-24 20:28:56 +02:00
Sebastian Messmer
789bfc7527
Fix warning from static analysis tool about std::moving a large CryConfig object
2016-09-24 11:42:57 +02:00
Sebastian Messmer
e30656797b
Add compatibility with Crypto++ 5.6.4
2016-09-24 09:39:37 +02:00
Sebastian Messmer
46183976ee
Fix missing virtual destructor and potential integer overflow
2016-09-21 20:07:20 +02:00
Sebastian Messmer
457ca52eb3
Add assertions to unique_ref
2016-07-14 16:29:02 +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
b7b5dfba2a
Fix generation of new file systems
2016-06-27 22:31:06 -07:00
Sebastian Messmer
3425760daf
Implement migration for old filesystems that don't have parent pointers.
2016-06-27 20:03:44 -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
be8dffb24d
MyClientId is generated outside of CryDevice to give the CryConfigCreator access to it.
2016-06-26 22:15:52 -07:00
Sebastian Messmer
7b56706c1a
Be explicit about types stored in config file
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
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
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
86c2144a37
Implement migration from file systems without version numbers
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
a5391a854d
Use VersionCountingBlockStore
2016-06-26 22:15:52 -07:00
Sebastian Messmer
0a61987594
Be explicit about types stored in config file
2016-06-26 15:34:53 -07:00
Sebastian Messmer
f6a80a4651
Remove default config values for mandatory values
2016-06-26 15:26:05 -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
c5ccd9c2d1
Set cache entry to dirty when timestamps are changed. Otherwise, it wouldn't be written back.
2016-06-09 17:32:35 -07:00
Sebastian Messmer
e8ad454e47
TODOs
2016-06-08 12:35:56 -07:00
Sebastian Messmer
e2ec72edde
Remove unused function
2016-06-08 12:29:28 -07:00
Sebastian Messmer
5aff394a16
Directory timestamps are updated correctly. Also added test cases for this.
2016-06-08 12:21:57 -07:00
Sebastian Messmer
5a5037c992
Symlinks update atime correctly. Also added a test case for this.
2016-06-07 21:47:23 -07:00
Sebastian Messmer
69f4c7976e
File::truncate() updates timestamps correctly. Also added test cases for this.
2016-06-07 21:30:57 -07:00
Sebastian Messmer
6448110975
OpenFile updates timestamps correctly, i.e. on read(), write() and truncate(). Also added test cases for it.
2016-06-07 21:25:02 -07:00
Sebastian Messmer
9bb2e2e89a
Implement fsync() and fdatasync() syscalls for flushing open files
2016-06-07 18:36:59 -07:00
Sebastian Messmer
2642507344
Allow loading file systems from future cryfs versions if user specifically asks for it
2016-06-06 15:31:09 -07:00
Sebastian Messmer
93927e76d6
TODOs
2016-06-02 20:25:14 -07:00
Sebastian Meßmer
3894157589
Merge pull request #61 from mhogomchungu/develop
...
remove compiler warnings
2016-06-02 20:21:54 -07:00
Sebastian Messmer
1402f54fec
Factor out platform inconsistency between Mac and Linux (stat.st_atim vs stat.st_atimespec)
2016-06-02 20:08:51 -07:00
Francis Banyikwa
c5a6f16cd5
use a macro to silence compiler warnings
2016-06-02 09:54:39 +03:00
Francis Banyikwa
de6462e548
remove compiler warnings
2016-06-01 11:34:19 +03:00
Sebastian Messmer
61e56cfeab
Fix small rename corner case and add test cases for timestamps in many rename corner cases
2016-05-27 21:19:04 -07:00
Sebastian Messmer
183b9cf74b
Fix utimens() behavior: It now updates ctime as well.
2016-05-27 17:26:23 -07:00
Sebastian Messmer
f6545bbcc3
Move fsblobstore::now() to cpputils
2016-05-27 15:46:05 -07:00