Commit Graph

121 Commits

Author SHA1 Message Date
Sebastian Messmer
535bfc1634 TODOs 2015-05-06 16:16:18 +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
5802040d78 Removed unused exception class 2015-04-28 13:19:44 +02:00
Sebastian Messmer
d589910b0d TODOs 2015-04-27 23:10:30 +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
2110831374 Make constructors explicit where adequate 2015-04-27 18:20:51 +02:00
Sebastian Messmer
58f43f6929 Remove unneeded field in cache entry 2015-04-27 18:20:44 +02:00
Sebastian Messmer
bf77e0ffa7 Small fix in AES256_GCM 2015-04-27 17:58:34 +02:00
Sebastian Messmer
bc33f69877 TODOs 2015-04-27 10:47:33 +02:00
Sebastian Messmer
6f1c39fd21 QueueMap: Added more test cases and improved interface 2015-04-27 10:35:01 +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
b60b119985 Fix iostream use 2015-04-26 22:20:04 +02:00
Sebastian Messmer
5f83c133b0 Added error messages when block decryption fails 2015-04-26 16:45:00 +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
59bfddc18f Moved Data, FixedSizeData and DataBlockFixture to cpp-utils 2015-04-25 02:48:41 +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
6e28af3105 TODOs 2015-04-24 21:33:45 +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
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 Messmer
03597b9474 Code formatting & TODOs 2015-04-24 13:42:37 +02:00
Sebastian Meßmer
90c7bad8d6 Removed debug output 2015-04-18 16:59:44 +02:00
Sebastian Meßmer
c1551121c8 Cache-Entries are purged after a max lifetime 2015-04-18 16:50:19 +02:00
Sebastian Meßmer
c18893c151 Don't encrypt and re-decrypt when creating a block, but keep plaintext data 2015-04-18 15:10:42 +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
c7eab5c504 Removed unused function 2015-04-17 13:20:16 +02:00
Sebastian Messmer
75253c74ea Key is not default constructible anymore 2015-04-17 12:59:40 +02:00
Sebastian Messmer
4a5416dbec Use unordered_map instead of map for cache 2015-04-17 12:56:21 +02:00
Sebastian Messmer
b41853cd00 Fix renaming 2015-04-16 15:01:59 +02:00
Sebastian Messmer
a555985b2c Adapt to renaming of CachingStore -> ParallelAccessStore 2015-04-16 14:54:04 +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
6413123838 TODOs 2015-04-15 21:46:15 +02:00
Sebastian Messmer
fdc14cc66c TODOs 2015-04-15 20:43:21 +02:00
Sebastian Messmer
b185729113 Caching blocks works 2015-04-15 20:39:58 +02:00
Sebastian Messmer
332f6901ef New caching store is working, but not timeout-flushing yet 2015-04-15 19:05:58 +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
afce75b461 Speed up ondisk blockstore by not storing a created block first 2015-04-10 21:51:25 +02:00
Sebastian Messmer
495e458c25 TODOs 2015-04-10 00:57:10 +02:00
Sebastian Messmer
c5d28d19d6 Don't flush when deleting cached block 2015-04-09 23:28:30 +02:00
Sebastian Messmer
3cbc851c19 Implemented encryption 2015-04-09 22:11:40 +02:00
Sebastian Messmer
e210b5b601 EncryptedBlock stores an IV 2015-04-09 21:17:28 +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 Messmer
4d72087e27 Fix include guard 2015-04-09 19:21:59 +02:00
Sebastian Messmer
fa92202979 Work with new generalized cachingstore 2015-04-09 15:39:49 +02:00
Sebastian Messmer
f3d0bfcf68 Use relative paths instead of block-absolute ones 2015-04-08 16:57:04 +02:00
Sebastian Meßmer
ff35d72e34 Use new CachingStore 2015-04-02 12:19:05 -04:00
Sebastian Meßmer
f2129f6dc2 We don't need CachingStore::getKey() 2015-04-02 07:21:52 -04:00
Sebastian Meßmer
c18c028d7f First version of factoring out CachingStore 2015-04-02 07:12:29 -04:00
Sebastian Meßmer
da0efd80c5 Rename SynchronizedBlockStore -> CachingBlockStore 2015-04-02 02:59:43 -04:00
Sebastian Meßmer
e3f7491d2d SynchronizedBlockStore allows concurrent access to the same block, but ensures that the block is only loaded once from the underlying blockstore 2015-03-31 08:02:24 -04:00
Sebastian Meßmer
41600c13f7 Introduce a mutex for OpenBlockList 2015-03-29 08:36:09 -04:00
Sebastian Meßmer
9b5ad835db Implemented SynchronizedBlockStore::remove() 2015-03-29 07:55:57 -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
294530c662 Replaced absolute paths to messmer/blockstore/... with relative local paths 2015-03-12 14:27:51 +01:00
Sebastian Messmer
f51f80e5eb TODOs 2015-03-08 01:18:06 +01:00
Sebastian Messmer
2cb0f4e5de BlockStore only writes changed data back if it actually was changed 2015-03-05 22:16:57 +01:00
Sebastian Messmer
d42bda0ca6 Added Block::write() and removed writeable data() pointer 2015-03-04 20:47:02 +01:00
Sebastian Messmer
f491d3d183 Added BlockStore::numBlocks() 2015-02-23 21:07:07 +01:00
Sebastian Messmer
e65ce5f11f Change way of deleting blocks to be more foolproof (when deleting a block, the user is forced to give up its reference to the block) 2015-02-22 16:53:49 +01:00
Sebastian Messmer
37e8a511f5 Added BlockStore::remove(key) 2015-02-22 00:29:21 +01:00
Sebastian Messmer
0c851fa452 Switch to biicode 2015-02-17 00:23:33 +01:00