Commit Graph

250 Commits

Author SHA1 Message Date
Sebastian Messmer
ff8eae5293 Added performance warning in debug builds 2015-10-15 00:16:00 +02:00
Sebastian Messmer
f5f8dc7939 Removed debug output 2015-10-14 15:38:57 +02:00
Sebastian Messmer
ba860a771d Resolved TODOs (was a bug in the cpputils library, was fixed there) 2015-10-14 15:01:08 +02:00
Sebastian Messmer
1f2357ec56 Merge branch 'develop' of github.com:cryfs/cryfs into develop 2015-10-14 02:17:54 +02:00
Sebastian Messmer
f90e2edfef TODOs 2015-10-14 02:17:50 +02:00
Sebastian Meßmer
d21fe18c39 TODO 2015-10-12 04:40:59 +02:00
Sebastian Messmer
66cd99b0ff Use hinted linear search instead of binary search 2015-10-08 01:19:44 +02:00
Sebastian Messmer
bf3a028204 DirEntryList keeps its items sorted by key - this allows faster accesses 2015-10-07 21:41:00 +02:00
Sebastian Messmer
3f782a330f Configure cache size for DirBlob cache 2015-10-07 17:24:28 +02:00
Sebastian Messmer
19c1c0e28e Refactoring: Factor out a DirEntryList class from DirBlob 2015-10-07 13:45:17 +02:00
Sebastian Messmer
81e856fda2 Fix DirBlob::releaseBaseBlob() 2015-10-05 19:09:17 +02:00
Sebastian Messmer
e890222c77 Write back DirBlob when baseBlob is released 2015-10-05 18:54:51 +02:00
Sebastian Messmer
e5fcf6a9bc Comments 2015-10-05 17:07:16 +02:00
Sebastian Messmer
44fb3011ed Add a CachingFsBlobStore 2015-10-05 16:58:33 +02:00
Sebastian Messmer
d9821c2623 Directory Blobs store block keys in binary instead of string 2015-10-05 04:49:04 +02:00
Sebastian Messmer
abde844932 Fix includes 2015-10-05 03:56:37 +02:00
Sebastian Messmer
9c433209c2 Speed up DirBlob reads by using Blob::readAll() 2015-10-05 03:44:20 +02:00
Sebastian Messmer
7e54d284e1 Speed up writing back of DirBlobs by another factor of 3 (so 9 in total) by serializing the whole blob and writing it back with one write() call 2015-10-05 02:55:04 +02:00
Sebastian Messmer
af70891d27 Made writing back DirBlobs faster by writing whole entries at once (speedup factor of 3) 2015-10-05 02:35:06 +02:00
Sebastian Messmer
0367df004e Added locks to avoid race conditions in FsBlobStore 2015-10-04 17:37:00 +02:00
Sebastian Messmer
1977a720df Introduced ParallelAccessFsBlobStore to avoid race conditions when accessing the same FsBlob in parallel 2015-10-04 17:20:14 +02:00
Sebastian Messmer
37f7c764d1 Return better fuse errors 2015-09-30 14:27:29 +02:00
Sebastian Messmer
752be4415c Protect from race conditions happening when the same FsBlob is open multiple times 2015-09-30 14:05:05 +02:00
Sebastian Messmer
e3d2fdb2fd Refactor: Add fsblobstore layer 2015-09-30 13:21:07 +02:00
Sebastian Messmer
dd39f242a2 Show backtraces on sigsegv 2015-09-29 22:44:19 +02:00
Sebastian Messmer
bf02682734 Error reporting when blob to delete was not found 2015-09-29 18:47:57 +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
20f5d739b7 Small refactoring of main() 2015-09-28 13:41:23 +02:00
Sebastian Messmer
97028b134f Adapt to new gitversion library 2015-09-19 01:02:42 +02:00
Sebastian Messmer
fe5ea5ab95 Output const_string directly, without toStdString() 2015-09-18 22:09:33 +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
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
6b50ccc14b Show version information 2015-09-16 22:54:07 +02:00
Sebastian Messmer
8db80d5ebf Refactor directory structure 2015-09-12 20:16:13 +02:00
Sebastian Messmer
117930fad2 Print a newline around user interactions 2015-09-04 16:09:37 +02:00
Sebastian Messmer
a665e6cdd7 CryFS asks back if a cipher without integrity is chosen 2015-09-04 16:02:55 +02:00
Sebastian Messmer
a9a5a5d04d Console class supports askYesNo(question) 2015-09-04 16:00:41 +02:00
Sebastian Messmer
218463cf91 Add more encryption ciphers 2015-09-01 00:25:14 +02:00
Sebastian Messmer
84cd362d48 CryFS uses the cipher specified in the configuration file 2015-07-29 12:08:39 +02:00
Sebastian Messmer
a31b5160c9 Fix output 2015-07-26 14:42:43 +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
fa4a50b7b6 Use assert instead of exception on load error 2015-07-24 20:28:37 +02:00
Sebastian Messmer
bfa07cba69 Use the new assert that doesn't crash the program in a release build 2015-07-22 13:47:19 +02:00
Sebastian Messmer
013d50d8b6 Fix missing using statement in main.cpp 2015-07-21 18:32:40 +02:00
Sebastian Messmer
492caeb418 Migrate from unique_ptr to unique_ref 2015-07-21 18:22:03 +02:00
Sebastian Messmer
43d8174fd4 TODOs 2015-07-20 17:56:20 +02:00
Sebastian Messmer
67c56648e3 CryConfigLoader asks for cipher to use when creating a new config 2015-07-01 14:33:18 +02:00
Sebastian Messmer
337d2c055b Implemented Console class to interact with the user 2015-07-01 14:32:26 +02:00
Sebastian Messmer
04b18ed768 Adapt to new blobstore 2015-06-26 16:03:24 +02:00
Sebastian Messmer
a1e0358d4c Adapt to new cpp-utils 2015-06-21 17:44:45 +02:00
Sebastian Meßmer
07689c8bd1 Removed unneeded includes/usings 2015-06-18 19:40:26 +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
e883bc5747 More use of unique_ref instead of unique_ptr 2015-06-18 13:45:08 +02:00
Sebastian Meßmer
f4d925aa9d More use of unique_ref instead of unique_ptr 2015-06-18 13:14:43 +02:00
Sebastian Meßmer
b2e661a328 Adapt to new blobstore - having unique_ref<Blob> instead of unique_ptr<Blob> 2015-06-18 12:47:08 +02:00
Sebastian Meßmer
09f89327da Fix test cases 2015-06-17 12:28:18 +02:00
Sebastian Messmer
aed30a0ec1 Refactored creation of new config files - this happens in a CryConfigLoader now 2015-06-16 18:20:31 +02:00
Sebastian Messmer
fbb16915d3 Encryption keys are drawn using OS randomness 2015-06-16 16:53:58 +02:00
Sebastian Messmer
01f4a5fc28 Fix for clang compiler 2015-06-10 17:19:56 +02:00
Sebastian Messmer
7beb7f1198 Enable extended compiler warnings and resolve occurring ones 2015-05-08 02:11:34 +02:00
Sebastian Messmer
30f7791af7 Make constructors explicit where adequate 2015-04-27 18:20:07 +02:00
Sebastian Messmer
fa4e23ceb4 Fix loading encryption keys from config file 2015-04-27 18:00:11 +02:00
Sebastian Messmer
8f7853f01a Add basic test case for cryfs 2015-04-27 16:38:09 +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
eeaa6678cd Switch to authenticated cipher 2015-04-24 23:58:55 +02:00
Sebastian Messmer
22323a0a03 Adapt to new EncryptedBlockStore 2015-04-24 18:14:53 +02:00
Sebastian Meßmer
89a9f1e3d2 Don't crash when trying to chmod/chown the root directory 2015-04-23 09:24:52 +02:00
Sebastian Meßmer
6821684654 Support symlinks 2015-04-23 09:18:30 +02:00
Sebastian Messmer
935549f822 - Adapt to new fspp (symlink support), but don't support symlinks yet 2015-04-22 16:02:23 +02:00
Sebastian Messmer
5c63e1c277 Removed debug output 2015-04-22 14:53:15 +02:00
Sebastian Messmer
12e802fb7b Create files/dirs owned by the caller 2015-04-22 14:32:03 +02:00
Sebastian Messmer
27e376c121 TODOs 2015-04-21 23:20:54 +02:00
Sebastian Messmer
b96cc48639 Implemented chmod/chown and fixed some minor details 2015-04-21 23:18:50 +02:00
Sebastian Messmer
7b40e22279 Adapt to new blockstore 2015-04-16 14:11:07 +02:00
Sebastian Messmer
54e0bbc7d3 Use block caching and increase block size 2015-04-15 20:42:14 +02:00
Sebastian Messmer
7d4618229b Implement renaming 2015-04-11 01:42:20 +02:00
Sebastian Messmer
0b2bf1d7b3 Work with new fspp 2015-04-10 23:29:16 +02:00
Sebastian Messmer
de8c697dfc Experimented a bit with block size 2015-04-10 23:17:23 +02:00
Sebastian Messmer
9ecbe437ab - Refactor DirBlob: Keep an in-memory vector of the dir entries instead of regularly parsing it
- Implement file deletion and dir deletion
2015-04-10 00:52:00 +02:00
Sebastian Messmer
c43612fae6 Implement CryOpenFile::flush 2015-04-09 23:42:04 +02:00
Sebastian Messmer
5596544365 CryFS uses an encrypted blockstore 2015-04-09 21:17:52 +02:00
Sebastian Meßmer
354de197ff Add some asserts 2015-04-08 14:15:11 +02:00
Sebastian Meßmer
f1a992d187 A CryDir returns . and .. as children 2015-03-19 03:53:21 +01:00
Sebastian Meßmer
56928e68a8 Adapt to new fspp interface 2015-03-18 02:46:06 +01:00
Sebastian Meßmer
4d113613d9 Return error if trying to add an already existing entry to a directory 2015-03-18 02:11:10 +01:00
Sebastian Meßmer
26bdd6ff3a Move source to src directory 2015-03-16 01:42:50 +01:00
Sebastian Messmer
b59ee2d1e2 Switch to biicode 2015-02-17 01:02:15 +01:00
Sebastian Messmer
273035cf08 Since blocks now store their keys, we don't need to store it somewhere else. 2015-01-24 22:27:14 +01:00
Sebastian Messmer
961fdd1d0b Add Key::ToBinary, Key::FromBinary and more test cases for Key 2014-12-13 11:59:48 +01:00
Sebastian Messmer
83fad1ca53 Create dedicated Key class for addressing blocks 2014-12-09 20:36:32 +01:00
Sebastian Messmer
e757da0ad3 Rename blobstore to blockstore 2014-12-09 17:19:59 +01:00
Sebastian Messmer
ebc70cff53 Allow creating files 2014-12-09 16:34:34 +01:00
Sebastian Messmer
79455cf01f Implemented basic FileBlob 2014-12-09 11:28:52 +01:00
Sebastian Messmer
9a97287a96 A dir stores a magic number 2014-12-09 11:13:50 +01:00
Sebastian Messmer
2d74935034 CryConfig: DISALLOW_COPY_AND_ASSIGN 2014-12-07 22:29:24 +01:00
Sebastian Messmer
fcc22fe054 CryFS stores root blob key in config file! 2014-12-07 22:26:16 +01:00
Sebastian Messmer
30ac3ab3cb Created a simple mkdir/lsdir for cryfs, backed by blocks 2014-12-07 10:42:16 +01:00
Sebastian Messmer
51bcc2f191 Remove Cryfs Implementation 2014-12-07 08:57:23 +01:00
Sebastian Messmer
39ab086bb6 Copy current CryFS implementation (which rather was CopyFS) to a copyfs directory 2014-12-07 08:33:47 +01:00
Sebastian Messmer
3af17f24d9 Refactor: Move Filesystem.h and FuseErrnoException.h to fuse package 2014-11-28 14:46:45 +01:00
Sebastian Messmer
74cf914f1e Implement flush() 2014-11-21 01:11:24 +01:00
Sebastian Messmer
193b2b1b88 Finished renaming fusepp -> fspp 2014-11-16 00:10:29 +01:00
Sebastian Messmer
e863e5b6ce Rename namespace fusepp -> fspp 2014-11-16 00:05:28 +01:00
Sebastian Messmer
3f318281ec Rename FuseFile -> File and so on 2014-11-15 23:47:38 +01:00
Sebastian Messmer
6dce6ffd80 Put fuse bindings in their own directory 2014-11-15 17:24:07 +01:00
Sebastian Messmer
382a7b89f1 Created a CryFs implementation based on the Fuse classes 2014-11-15 16:33:24 +01:00
Sebastian Messmer
d088995178 Renamed cryfs::CryXXX classes to fusepp::FuseXXX classes 2014-11-15 15:16:18 +01:00
Sebastian Messmer
1cd2364b7f Simplify readdir 2014-11-13 00:03:03 +01:00
Sebastian Messmer
27057f8c82 Fix creat 2014-11-12 23:13:00 +01:00
Sebastian Messmer
b265dd9313 Resolve TODO2 2014-11-12 22:50:40 +01:00
Sebastian Messmer
9dabea5e5d Removed todo 2014-11-12 22:47:20 +01:00
Sebastian Messmer
1fba488a07 Fix error code 2014-11-12 22:40:47 +01:00
Sebastian Messmer
df80fdfb74 Fix IdList and implement statfs() 2014-11-12 22:38:12 +01:00
Sebastian Messmer
31aa6228bb utimens 2014-11-12 21:55:34 +01:00
Sebastian Messmer
7ddf6d0672 Fix unimplemented utimens 2014-11-12 15:42:47 +01:00
Sebastian Messmer
bedf079af2 fix readdir 2014-11-12 15:41:26 +01:00
Sebastian Messmer
3b2de412c8 opendir/readdir/releasedir 2014-11-12 15:34:01 +01:00
Sebastian Messmer
d2cba6cfe6 Implemented CryDir opening 2014-11-12 15:19:32 +01:00
Sebastian Messmer
abc8811e17 Generalized IdList 2014-11-12 15:19:04 +01:00
Sebastian Messmer
9db97ff258 Make some functions not-implemented 2014-11-12 13:54:29 +01:00
Sebastian Messmer
e561f52dd5 rename 2014-11-12 12:43:49 +01:00
Sebastian Messmer
a0a30e3c75 fix compiler warnings 2014-11-12 12:36:04 +01:00
Sebastian Messmer
8561d90de0 rmdir 2014-11-12 12:34:35 +01:00
Sebastian Messmer
afd4066ef7 unlink 2014-11-12 12:31:38 +01:00
Sebastian Messmer
c112def985 mkdir 2014-11-12 12:27:23 +01:00
Sebastian Messmer
8182a45d65 Fix create! 2014-11-11 00:38:33 +01:00
Sebastian Messmer
a8604d7b58 Fix file reading 2014-11-11 00:18:24 +01:00
Sebastian Messmer
2e06e0a3b0 Refactor 2014-11-10 23:51:45 +01:00
Sebastian Messmer
ca745bb3da Implemented file operations using our class hierarchy 2014-11-10 23:47:41 +01:00
Sebastian Messmer
21f1a294ab Implement CryOpenFile and infrastructure around it 2014-11-10 22:42:17 +01:00
Sebastian Messmer
3c34cfd6d2 Added gtest framework and fixed compiler warnings 2014-11-06 22:50:50 +01:00
Sebastian Messmer
a6b664063c Fix some stuff and make getattr go through our class structure 2014-11-05 01:35:41 +01:00
Sebastian Messmer
f9fe4f579c Reorder folder structure 2014-11-04 22:33:43 +01:00
Sebastian Messmer
944a8b201f Remove leftover comment 2014-11-04 22:23:34 +01:00
Sebastian Messmer
a97261d02f Removed debug output 2014-11-04 22:23:16 +01:00
Sebastian Messmer
6230d19750 Implemented a final, copy file system 2014-11-04 22:08:13 +01:00
Sebastian Messmer
154de4c74d Implement some of the fuse functions 2014-11-04 21:17:02 +01:00
Sebastian Messmer
728d97e9e8 CryDevice stores root path to which we work relatively 2014-11-04 21:03:04 +01:00
Sebastian Messmer
560d304fb8 Rename functions to avoid name clashes 2014-11-04 20:50:42 +01:00
Sebastian Messmer
d38480b234 Use boost::filesystem::path 2014-11-04 19:54:35 +01:00
Sebastian Messmer
24b81dab7b Refine interface 2014-11-04 18:34:33 +01:00
Sebastian Messmer
a5f293e0f8 Code style 2014-11-04 18:14:21 +01:00
Sebastian Messmer
ec6955ec25 Separated fuse implementation from fuse interface 2014-11-04 18:03:59 +01:00
Sebastian Messmer
6e44f4a326 Implemented basic fuse interface 2014-11-04 17:40:31 +01:00
Sebastian Messmer
08c3ab0b38 Created a cryfs_lib directory for the main source code 2014-11-04 02:54:23 +01:00
Sebastian Messmer
e8b1b51cdb Initiate CMake 2014-11-04 02:32:06 +01:00