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
|
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
|
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
|
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
|
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
|
3bd43506c2
|
Fix test cases
|
2016-02-15 18:47:45 +01:00 |
|
Sebastian Messmer
|
63d0b2b29d
|
Fix compiling test cases on Debian
|
2016-02-14 18:17:37 +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
|
31672e086c
|
Fix includes after merging repositories
|
2016-02-11 15:19:58 +01:00 |
|
Sebastian Messmer
|
f3d614c633
|
Merged blockstore
|
2016-02-11 14:44:28 +01:00 |
|