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
Sebastian Messmer
63d0b2b29d
Fix compiling test cases on Debian
2016-02-14 18:17:37 +01:00
Sebastian Messmer
b324ec5221
Fix compile on Debian 8 (link it to a library it wants)
2016-02-14 17:09:14 +01:00
Sebastian Messmer
80b113f0f1
Fix some more fuse tests
2016-02-14 02:23:54 +01:00
Sebastian Messmer
190d465cf3
Fix other lstat test cases on Mac OS
2016-02-14 02:09:58 +01:00
Sebastian Messmer
6d3fe14c9e
Fix fspp lstat tests on Mac OS X
2016-02-14 01:54:36 +01:00
Sebastian Messmer
fcf817fbdd
Work around timing bug in OS X test cases
2016-02-14 01:18:19 +01:00
Sebastian Messmer
33c950e978
Fix Mock file system setup on Mac OS X
2016-02-14 01:01:59 +01:00
Sebastian Messmer
c0d0efd058
Fix compiler error in test cases on Mac OS X
2016-02-13 20:42:28 +01:00
Sebastian Messmer
636445cd82
Introduce version flags for file system entities to allow future CryFS versions to be backwards-compatible even if the format changes.
2016-02-13 15:06:28 +01:00
Sebastian Messmer
1fd2cac9cd
Adapt test cases to the removal of --extpass parameter
2016-02-13 11:38:56 +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
0fb710ac69
Merge fspp repository into here
2016-02-11 12:14:44 +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
ee702471f0
Switch to plain cmake, no biicode anymore.
2016-02-10 00:58:03 +01:00
Sebastian Messmer
9fcc54d8b1
Test cases for new utimens interface
2016-02-09 09:36:07 +01: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
36cac2f3da
Don't print a newline before asking i/o questions
2016-01-25 14:20:16 +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
199552f42d
If joining FuseThread fails, don't hang but fail an assertion
2015-12-16 00:20:38 +01:00
Sebastian Messmer
19f4d8bae5
Fix warning on 32bit compilers
2015-12-14 19:26:19 +01:00
Sebastian Messmer
1337e2db4b
Reduce memory consumption of BibBlogsTest further
2015-12-14 18:48:11 +01:00
Sebastian Messmer
1d8fdfa0e2
Since the memory issue is fixed now (using a compressed block store), we can re-enable the test cases
2015-12-14 18:19:40 +01:00
Sebastian Messmer
7a43c41787
Use a compressing blockstore for BigBlobsTest. This way, we don't need that much RAM for running it (the big blobs created by the test case are mostly just zero and some few non-zero data areas)
2015-12-14 17:18:12 +01:00
Sebastian Messmer
b8a017b09c
Add CompressingBlockStore
2015-12-14 17:17:16 +01:00
Sebastian Messmer
337c338c61
Add Block::resize()
2015-12-14 17:16:54 +01:00
Sebastian Messmer
1cdaf8e08d
Fixed compiler error on 32bit platforms
2015-12-13 13:30:05 +01:00
Sebastian Messmer
ff812abf79
Removed nonsensical std::log() testcase
2015-12-11 12:44:20 +01:00
Sebastian Messmer
a68446f983
Comment out failing test cases instead of DISABLING them. Disabling is reserved for working, but slow tests
2015-12-11 12:31:57 +01:00
Sebastian Messmer
1ecabdabeb
Disabled BigBlob tests, because they need a lot of time and space
2015-12-11 12:31:09 +01:00
Sebastian Messmer
1121467b31
Fix test cases
2015-12-11 00:46:24 +01:00
Sebastian Messmer
38c56f6764
Support blob sizes >4GB and add test cases for it
2015-12-11 00:18:17 +01:00
Sebastian Messmer
afd900944a
Compiles on Mac OS X
2015-11-30 13:52:26 +01:00
Sebastian Messmer
c6658839e0
Test cases run successfully on Mac OS X
2015-11-30 03:17:19 +01:00
Sebastian Messmer
741be2b08f
Reduce memory usage of tests
2015-11-29 21:32:12 +01:00
Sebastian Messmer
f670b0f80c
Specify "override" when function is override
2015-11-28 16:50:25 +01:00
Sebastian Messmer
31d8dc04f4
Remove strange self-initialization in test case
2015-11-28 16:44:14 +01:00
Sebastian Messmer
f8260ce45f
Make CallAfterTimeoutTest less flaky
2015-11-27 22:27:20 +01:00
Sebastian Messmer
5eab16b360
Reduce memory usage of test cases to make it run on travis correctly
2015-11-27 20:59:11 +01:00
Sebastian Messmer
1222cd8de6
Fix test cases for older libfuse versions
2015-11-27 17:43:21 +01:00
Sebastian Messmer
e542529104
Fix test cases
2015-11-27 15:18:33 +01:00
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
Sebastian Messmer
b47fd3f671
Use optional::value() instead of optional::get()
2015-06-28 17:02:20 +02:00
Sebastian Messmer
5ea654445c
Use optional::value() instead of optional::get() in test cases
2015-06-28 16:59:13 +02:00
Sebastian Messmer
7ae30280f3
Use optional::value() instead of options::get() in test cases
2015-06-28 16:49:35 +02:00
Sebastian Messmer
de5dd8a838
Use optional::value() instead of options::get() in test cases
2015-06-28 16:45:18 +02:00
Sebastian Messmer
5a812b279f
Use optional::value() instead of options::get() in test cases
2015-06-28 16:44:55 +02:00
Sebastian Messmer
3d1341114b
Use unique_ref instead of unique_ptr
2015-06-26 15:59:18 +02:00
Sebastian Messmer
3826bab481
Fix test cases
2015-06-26 15:57:41 +02:00
Sebastian Messmer
ab5238549d
Introduced make_left, make_right
2015-06-26 12:41:25 +02:00
Sebastian Messmer
f3222e361b
Added operator<<(ostream, Either)
2015-06-26 02:17:08 +02:00
Sebastian Messmer
a98cf8200e
Improve move testcases for Either
2015-06-26 02:06:33 +02:00
Sebastian Messmer
99be93d970
Add tests for direct (move) assignments
2015-06-26 02:02:29 +02:00
Sebastian Messmer
396dbcfc1c
Add assignment operators
2015-06-26 01:59:29 +02:00
Sebastian Messmer
d5dadc74e7
Offer Either::left_opt() and Either::right_opt() and add some test cases
2015-06-26 01:07:46 +02:00
Sebastian Messmer
e1c4327338
Added comparison operators to Either
2015-06-25 16:27:26 +02:00
Sebastian Messmer
2d7dc8c583
Added first version for an either type
2015-06-25 15:46:53 +02:00
Sebastian Messmer
adbcb054c6
Add dynamic_pointer_move test cases for unique_ref
2015-06-21 18:18:43 +02:00
Sebastian Messmer
a1e0358d4c
Adapt to new cpp-utils
2015-06-21 17:44:45 +02:00
Sebastian Messmer
2fa7d656e7
Adapt to new cpp-utils
2015-06-21 17:44:30 +02:00
Sebastian Messmer
7fae2d1e59
Adapt to new cpp-utils
2015-06-21 17:43:45 +02:00
Sebastian Messmer
e346283b0b
Refactor folder structure
2015-06-21 17:41:57 +02:00
Sebastian Messmer
f30bec26ee
Added some more test cases for dynamic_pointer_move
2015-06-21 17:14:35 +02:00
Sebastian Messmer
cf6ef7c02c
Use C++11 uniform initialization for structs
2015-06-21 14:40:57 +02:00
Sebastian Messmer
d1528fe541
Use C++11 uniform initialization for structs
2015-06-21 14:40:52 +02:00
Sebastian Meßmer
2f22cbc9a8
Adapt to new fspp interface using unique_ref instead of unique_ptr
2015-06-18 19:36:05 +02:00
Sebastian Meßmer
31cd0eb9e9
Adapt to new dynamic_pointer_move
2015-06-18 19:34:24 +02:00
Sebastian Meßmer
536cba1459
Use unique_ref instead of unique_ptr wherever possible
2015-06-18 19:30:52 +02:00
Sebastian Meßmer
e883bc5747
More use of unique_ref instead of unique_ptr
2015-06-18 13:45:08 +02:00
Sebastian Meßmer
5039205cd2
BlobStore handles unique_ref<Blob> instead of unique_ptr<Blob>
2015-06-18 12:45:37 +02:00
Sebastian Meßmer
590beac11c
Added dynamic_pointer_move for unique_ref
2015-06-18 02:36:57 +02:00
Sebastian Meßmer
86a8683fa7
Finish implementing unique_ref and added many more test cases
2015-06-18 01:29:02 +02:00
Sebastian Meßmer
09f89327da
Fix test cases
2015-06-17 12:28:18 +02:00
Sebastian Meßmer
199da740ed
Fix test cases
2015-06-17 12:17:17 +02:00
Sebastian Messmer
3d5b9e9815
Implemented unique_ref and started writing test cases
2015-06-17 00:59:02 +02:00
Sebastian Messmer
3069874066
Fix test cases
2015-06-17 00:38:02 +02:00
Sebastian Messmer
e8a48afd3b
Enable extended compiler warnings and resolve occurring ones
2015-05-08 02:10:56 +02:00
Sebastian Messmer
abf0f68432
Enable extended compiler warnings and resolve occurring ones
2015-05-08 02:10:40 +02:00
Sebastian Messmer
fdcd56401a
Added specific test cases for EncryptedBlockStore
2015-05-06 00:37:57 +02:00
Sebastian Messmer
0042ae1cef
- Run test cases for EncryptedBlockStore with different ciphers
...
- Implement FakeAuthenticatedCipher for use with specific EncryptedBlockStoreTest
- Write skeleton for specific EncryptedBlockStoreTest
- Fix behavior of AES256_CFB when called with too small input
- Add testcase that all ciphers (also non-authenticating ones) have to handle too small input correctly
2015-05-06 00:12:14 +02:00
Sebastian Messmer
fd09ff1f9e
Remove includes to unused exception
2015-04-29 16:33:26 +02:00
Sebastian Messmer
cb402fd14b
Added test cases for Cache
2015-04-28 11:56:07 +02:00
Sebastian Messmer
d589910b0d
TODOs
2015-04-27 23:10:30 +02:00
Sebastian Messmer
c47434d3b3
Separated QueueMapTest.cpp into test groups with their own files each
2015-04-27 23:09:29 +02:00
Sebastian Messmer
1ff807e09c
Make Cache a generic over Key/Value. Furthermore, add test skeleton for Cache
2015-04-27 22:46:57 +02:00
Sebastian Messmer
f286886b49
Handle QueueMap::push(existing_key) better and write more test cases for QueueMap
2015-04-27 22:11:15 +02:00
Sebastian Messmer
fa4e23ceb4
Fix loading encryption keys from config file
2015-04-27 18:00:11 +02:00
Sebastian Messmer
bf77e0ffa7
Small fix in AES256_GCM
2015-04-27 17:58:34 +02:00
Sebastian Messmer
8f7853f01a
Add basic test case for cryfs
2015-04-27 16:38:09 +02:00
Sebastian Messmer
6f1c39fd21
QueueMap: Added more test cases and improved interface
2015-04-27 10:35:01 +02:00
Sebastian Messmer
f647342228
TODOs
2015-04-27 01:36:32 +02:00
Sebastian Messmer
e177c6f45c
Switch to a QueueMap implementation with less indirections (directly store elements instead of pointers)
2015-04-27 01:22:39 +02:00
Sebastian Messmer
09bc28e810
EncryptedBlock stores its block key in the block, so that an attacker can't replace block contents with a different block
2015-04-26 16:36:48 +02:00
Sebastian Messmer
1f14598d25
Added Test Cases for PeriodicTask
2015-04-26 12:36:19 +02:00
Sebastian Messmer
864f0a0186
Added more test cases for Data
2015-04-26 00:41:29 +02:00
Sebastian Messmer
61337eef85
Removed DataBlockFixture
2015-04-25 17:45:18 +02:00
Sebastian Messmer
7d6febe17f
Reduce use of memcmp and use operator==(Data, Data) instead
2015-04-25 17:17:15 +02:00
Sebastian Messmer
77b67a8137
Reduce use of memcmp and use operator==(Data, Data) instead
2015-04-25 17:17:06 +02:00
Sebastian Messmer
a07c03d752
Added test cases for DataFixture
2015-04-25 17:03:18 +02:00
Sebastian Messmer
b4e2eaa3e8
Use cpputils::DataFixture instead of DataBlockFixture
2015-04-25 16:44:00 +02:00
Sebastian Messmer
a2c89ed73a
Use cpputils::DataFixture instead of DataBlockFixture
2015-04-25 16:43:52 +02:00
Sebastian Messmer
65eb73e7d9
Use cpputils::DataFixture instead of DataBlockFixture
2015-04-25 16:43:37 +02:00
Sebastian Messmer
0b60370665
Remove dependency to tempfile
2015-04-25 03:47:30 +02:00
Sebastian Messmer
3e12c771a1
Remove dependency to tempfile
2015-04-25 03:47:03 +02:00
Sebastian Messmer
74e9ffb9f4
Use cpputils::TempFile and cpputils::Data instead of blockstore::TempFile and blockstore::Data
2015-04-25 03:37:25 +02:00
Sebastian Messmer
9de2d9d04a
- Use cpputils::DataBlockFixture and cpputils::Data.
...
- Fix test cases
2015-04-25 03:26:59 +02:00
Sebastian Messmer
6a0623956d
Use Data, DataBlockFixture from cpputils
2015-04-25 02:55:34 +02:00
Sebastian Messmer
59bfddc18f
Moved Data, FixedSizeData and DataBlockFixture to cpp-utils
2015-04-25 02:48:41 +02:00
Sebastian Messmer
38327de0c8
Move tempfile to cpp-utils
2015-04-25 02:40:02 +02:00
Sebastian Messmer
d8a6b23962
Moved data classes to cpp-utils
2015-04-25 02:24:18 +02:00
Sebastian Messmer
3d9e98d892
Fix compiler errors in tests
2015-04-25 00:08:29 +02:00
Sebastian Messmer
e056a65b48
- Added test cases for authenticated ciphers
...
- Fixed corner case for AES256_GCM when decrypt is called on data that can't hold IV and TAG
2015-04-24 23:58:24 +02:00
Sebastian Messmer
0335b243fb
Implemented AES256_GCM
2015-04-24 23:02:14 +02:00
Sebastian Messmer
19e5f03de3
Simplified CipherTest
2015-04-24 21:33:25 +02:00
Sebastian Messmer
008c6f7ab7
Add Cipher concept
2015-04-24 21:30:54 +02:00
Sebastian Messmer
5adcf4aca1
Allow decryption interface to fail (needed for authenticated ciphers later)
2015-04-24 21:08:36 +02:00
Sebastian Messmer
79283b868b
Added test cases that a Cipher is indeterministic
2015-04-24 19:13:56 +02:00
Sebastian Messmer
f18195757c
- Added test cases for ciphers
...
- Removed Cipher.h
2015-04-24 18:58:42 +02:00
Sebastian Messmer
6e50c9d8a5
Factor out encryption algorithm from EncryptedBlockStore
2015-04-24 18:14:25 +02:00
Sebastian Meßmer
17f6a38629
Removed unneccessary flushes
2015-04-18 17:06:55 +02:00
Sebastian Meßmer
417a701636
- BlockStore::create() gets the data of the new block as a parameter
...
- Fixed numBlocks() in OnDiskBlockStore, FakeBlockStore, CachingBlockStore, ...
- CachingBlockStore caches created blocks and doesn't directly create them in the underlying blockstore
2015-04-18 14:47:12 +02:00
Sebastian Messmer
18e7d68f15
Added test cases checking that numBlocks() works correctly when a created block is not destructed yet
2015-04-17 13:27:17 +02:00
Sebastian Messmer
d15a355464
Renamed to ParallelAccessStore
2015-04-16 14:52:06 +02:00
Sebastian Messmer
9fa6b041eb
Renamed old Caching2BlockStore to new CachingBlockStore
2015-04-16 14:10:44 +02:00
Sebastian Messmer
248fd0f5cc
Renamed old CachingBlockStore to ParallelAccessBlockStore
2015-04-16 13:59:52 +02:00
Sebastian Messmer
72f952b57c
Added dummy implementation for new caching block store
2015-04-15 15:46:35 +02:00
Sebastian Messmer
cc30dcde10
Fix FakeBlockStore
2015-04-15 14:51:41 +02:00
Sebastian Messmer
bee68464dc
When traversing a blob out of range, automatically create the leaves up to the traversed point
2015-04-10 21:52:30 +02:00
Sebastian Messmer
bb98e9b31d
Fix test cases for new flushing policy
2015-04-10 00:10:49 +02:00
Sebastian Messmer
711283a89b
EncryptedBlockStore handles encryption keys
2015-04-09 20:14:12 +02:00
Sebastian Messmer
990ca6ca26
Generalized Key to FixedSizeData
2015-04-09 20:07:03 +02:00
Sebastian Messmer
86f8ca6dc4
Dummy implementation for EncryptedBlockStore
2015-04-09 19:22:09 +02:00
Sebastian Meßmer
9de711b881
Refactoring
2015-04-02 12:18:44 -04:00
Sebastian Meßmer
5578af3948
Initial version
2015-04-02 11:39:44 -04:00
Sebastian Meßmer
da0efd80c5
Rename SynchronizedBlockStore -> CachingBlockStore
2015-04-02 02:59:43 -04:00
Sebastian Meßmer
5571a42980
Continued working on SynchronizedBlockStore. remove() doesn't work yet.
2015-03-28 13:44:22 -04:00
Sebastian Meßmer
f6669c86c1
Added SynchronizedBlockStore. In this first version, it only synchronizes the direct blockstore functions, but still allows opening the same block twice. This will be forbidden in future commits
2015-03-19 11:16:20 +01:00
Sebastian Messmer
a7a87a07dd
Add style warnings
2015-03-16 18:32:37 +01:00
Sebastian Meßmer
c47095474c
Use new FsTest
2015-03-16 02:57:01 +01:00
Sebastian Meßmer
662c3f8e90
Use the fspp test cases for cryfs
2015-03-16 02:15:51 +01:00
Sebastian Meßmer
6d61b896af
Remove test that is dependent on gcc optimization level
2015-03-15 09:26:50 +01:00
Sebastian Messmer
deba4810a8
Replaced absolute paths to messmer/blobstore with local relative paths
2015-03-12 15:18:10 +01:00
Sebastian Messmer
294530c662
Replaced absolute paths to messmer/blockstore/... with relative local paths
2015-03-12 14:27:51 +01:00
Sebastian Messmer
141b7e08b7
Fix OpenFile::read() return type
2015-03-11 01:05:16 +01:00