Sebastian Messmer
337c338c61
Add Block::resize()
2015-12-14 17:16:54 +01:00
Sebastian Messmer
5c9cc509d7
Make classes final if they're not meant to be derived from
2015-11-27 14:06:40 +01:00
Sebastian Messmer
22a3c90d54
Moved ciphers to cpputils
2015-10-27 23:27:40 +01: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 Meßmer
a4ce9f1c97
Fix warnings from -Weffc++
2015-10-17 21:10:26 +02:00
Sebastian Meßmer
e9470ffb78
Logging instead of stderr
2015-10-17 17:50:30 +02:00
Sebastian Meßmer
821550e62f
Unify (and fix) include guards
2015-10-15 13:09:21 +02:00
Sebastian Messmer
810c2c5b48
Added some locks against race conditions
2015-10-05 18:54:16 +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
aea84d9ef5
Added more ciphers
2015-08-31 23:04:56 +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
37bdbd907a
Finished migrating to unique_ref instead of unique_ptr
2015-07-21 18:19:34 +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
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
c755717898
Adapt to new cpp-utils
2015-06-21 17:43:31 +02:00
Sebastian Messmer
123ac44f24
Merge branch 'develop' of github.com:smessmer/blockstore into develop
2015-06-16 16:52:31 +02:00
Sebastian Messmer
97ba17fbb3
IVs and block keys are drawn from pseudorandom generators
2015-06-16 16:52:23 +02:00
Sebastian Meßmer
c7702f42fe
TODOs
2015-05-16 01:23:42 +02:00
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
bf77e0ffa7
Small fix in AES256_GCM
2015-04-27 17:58:34 +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
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 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
495e458c25
TODOs
2015-04-10 00:57:10 +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