Commit Graph

499 Commits

Author SHA1 Message Date
Jakob Unterwurzacher
67fe4557e5 Fix read benchmark 2015-09-17 22:08:49 +02:00
Jakob Unterwurzacher
338925aef4 Set GOMAXPROCS = 4
Immediate speedup from 70MB/s to 80MB/s on streaming write.
Enables later parallelization.
2015-09-16 19:35:40 +02:00
Jakob Unterwurzacher
0af3cfcac0 Fix symlink size reporting 2015-09-16 19:32:37 +02:00
Jakob Unterwurzacher
3a2610a141 symlink encryption: pass ".." and "." through unchanged
This fixes relative symlinks:

$ tar xf linux-4.2.tar.gz
tar: linux-4.2/tools/testing/selftests/powerpc/vphn/vphn.h: Cannot utime: No such file or directory
tar: linux-4.2/tools/testing/selftests/powerpc/vphn/vphn.c: Cannot utime: No such file or directory
tar: linux-4.2/tools/testing/selftests/powerpc/stringloops/memcmp_64.S: Cannot utime: No such file or directory
tar: linux-4.2/tools/testing/selftests/powerpc/primitives/word-at-a-time.h: Cannot utime: No such file or directory
tar: linux-4.2/tools/testing/selftests/powerpc/primitives/asm/asm-compat.h: Cannot utime: No such file or directory
tar: linux-4.2/tools/testing/selftests/powerpc/copyloops/memcpy_power7.S: Cannot utime: No such file or directory
tar: linux-4.2/tools/testing/selftests/powerpc/copyloops/memcpy_64.S: Cannot utime: No such file or directory
tar: linux-4.2/tools/testing/selftests/powerpc/copyloops/copyuser_power7.S: Cannot utime: No such file or directory
tar: linux-4.2/tools/testing/selftests/powerpc/copyloops/copyuser_64.S: Cannot utime: No such file or directory
tar: linux-4.2/arch/powerpc/boot/dts/include/dt-bindings: Cannot utime: No such file or directory
tar: linux-4.2/arch/mips/boot/dts/include/dt-bindings: Cannot utime: No such file or directory
tar: linux-4.2/arch/metag/boot/dts/include/dt-bindings: Cannot utime: No such file or directory
tar: linux-4.2/arch/arm64/boot/dts/include/dt-bindings: Cannot utime: No such file or directory
tar: linux-4.2/arch/arm/boot/dts/include/dt-bindings: Cannot utime: No such file or directory
tar: Exiting with failure status due to previous errors
2015-09-16 18:43:07 +02:00
Jakob Unterwurzacher
3be2dfdf9d Add "--zerokey" option to simplify testing and benchmarking 2015-09-15 23:59:57 +02:00
Jakob Unterwurzacher
69b3d53f21 init: Check if dir is empty part II (done) 2015-09-14 22:56:59 +02:00
Jakob Unterwurzacher
fdc0fef6ee Use MarshalIndent for JSON generation 2015-09-14 00:45:41 +02:00
Jakob Unterwurzacher
eee2c017dc init: Check if dir is empty part I 2015-09-13 23:12:56 +02:00
Jakob Unterwurzacher
d941b67df4 Implement password handling 2015-09-13 23:06:38 +02:00
Jakob Unterwurzacher
71789ae14f Don't warn about "gocryptfs.conf" in the ciphertext root dir 2015-09-13 22:09:48 +02:00
Jakob Unterwurzacher
6f9e90c414 Encrypt key with scrypt-hashed password 2015-09-13 22:09:38 +02:00
Jakob Unterwurzacher
164739b655 Friendlier error message if gocryptfs.conf does not exist 2015-09-13 18:08:15 +02:00
Jakob Unterwurzacher
4acaeb668e Implement json config storage (not yet encrypted) 2015-09-13 17:55:07 +02:00
Jakob Unterwurzacher
e7ba3c61f1 Fix File.GettAttr() size reporting
The too-large reported value broke mmap
(applications saw appended zero bytes)

Also
* Add locking for all fd operations
* Add "--debug" command line switch
2015-09-09 19:32:59 +02:00
Jakob Unterwurzacher
80935a0e1b Explain both frontends in readme
Also, re-enable openssl and disable debug messages so testing
gocryptfs is less painful
2015-09-08 23:09:28 +02:00
Jakob Unterwurzacher
bfdbbbf8b4 Fix panic on absolute symlink 2015-09-08 22:53:06 +02:00
Jakob Unterwurzacher
28cdff5889 tests: add TestCiphertextRange 2015-09-08 22:36:38 +02:00
Jakob Unterwurzacher
b13cc9686c Fix append issue 2015-09-08 22:34:23 +02:00
Jakob Unterwurzacher
1ca4fc89aa More debug logging, improve main_test.go (do not use all-zero content) 2015-09-08 22:03:27 +02:00
Jakob Unterwurzacher
caaad7c8d7 Add pathfs frontend, part II
Fix issues in read and write paths.
Now passes selftest.
2015-09-08 21:35:06 +02:00
Jakob Unterwurzacher
889ae90081 Add pathfs frontend (uses go-fuse instead of bazil-fuse), part I
Currently fails main_test.go, will be fixed in part II
2015-09-08 00:55:03 +02:00
Jakob Unterwurzacher
b65882985d Add tests for name encryption and byte range splitting 2015-09-07 21:25:05 +02:00
Jakob Unterwurzacher
af0ae03db2 Rename frontend to "cluefs_frontend"
Enables adding another frontend later
2015-09-07 21:10:42 +02:00
Jakob Unterwurzacher
cd95128015 readme: link to go-vs-openssl.md 2015-09-06 13:13:47 +02:00
Jakob Unterwurzacher
cbc35cbd6e new file: go-vs-openssl.md 2015-09-06 13:11:35 +02:00
Jakob Unterwurzacher
b00a70fc8d readme: more details 2015-09-06 12:55:55 +02:00
Jakob Unterwurzacher
e34e383d37 readme: Fix benchmark alignment 2015-09-06 12:17:55 +02:00
Jakob Unterwurzacher
290b11abf4 Add "go get" command to readme 2015-09-06 12:16:34 +02:00
Jakob Unterwurzacher
f2e2b81361 Add README.md
Also, run go fmt
2015-09-06 12:12:14 +02:00
Jakob Unterwurzacher
0a35d0970e Add openssl_benchmark.bash script 2015-09-06 11:54:50 +02:00
Jakob Unterwurzacher
5f4c9240ca Add streaming read and write benchmarks
Run using

    ./main_benchmark.bash

Also, rewrite command line args handling
2015-09-06 11:42:01 +02:00
Jakob Unterwurzacher
58d1e24b7c Add OpenSSL support for file content encryption/decryption
This brings streaming read performance from 30MB/s to 81MB/s
(similar improvement for writes)
2015-09-06 10:42:34 +02:00
Jakob Unterwurzacher
ad3a1a8899 Set readahead to 1MB
This bring streaming read performance from 12MB/s to 30MB/s
2015-09-06 09:47:27 +02:00
Jakob Unterwurzacher
448e88490b Bundle up blocks for bigger reads from the backing filesystem 2015-09-06 09:47:01 +02:00
Jakob Unterwurzacher
baa837b788 Add openssl benchmark
Results:

  BenchmarkAESGCMSeal4K   	   20000	     98638 ns/op	  41.53 MB/s
  BenchmarkAESGCMOpen4K   	   20000	     98781 ns/op	  41.47 MB/s
  BenchmarkOpensslGCMenc4K	   50000	     27563 ns/op	 148.60 MB/s
  BenchmarkOpensslGCMdec4K	   50000	     27563 ns/op	 148.60 MB/s

openssl is 3x faster.
2015-09-05 23:19:38 +02:00
Jakob Unterwurzacher
d0524ded99 Use Debug object instead of fmt 2015-09-05 20:36:26 +02:00
Jakob Unterwurzacher
11fb037e7e Cleanup and rename files 2015-09-05 20:30:20 +02:00
Jakob Unterwurzacher
7e564f928f Fix size reporting 2015-09-05 20:11:20 +02:00
Jakob Unterwurzacher
199d3fd79f Fix write path 2015-09-05 19:07:20 +02:00
Jakob Unterwurzacher
4ab9862ccb Fix read path 2015-09-05 14:08:00 +02:00
Jakob Unterwurzacher
1257b4249d Filename encryption working 2015-09-05 12:15:42 +02:00
Jakob Unterwurzacher
05a5c0a0ff Wrap cluefs part I 2015-09-05 11:49:05 +02:00
Jakob Unterwurzacher
6f90ec716a Rebase to cluefs
https://github.com/airnandez/cluefs
2015-09-04 20:37:37 +02:00
Jakob Unterwurzacher
779ad6dda3 Properly handle FileMode 2015-09-04 09:05:52 +02:00
Jakob Unterwurzacher
6a110b8dde Mounts and show an empty dir 2015-09-03 23:54:12 +02:00
Jakob Unterwurzacher
4b98f74e3e Builds and mounts 2015-09-03 19:27:07 +02:00
Jakob Unterwurzacher
8a48609d0e Add frontend stubs 2015-09-03 19:09:23 +02:00
Jakob Unterwurzacher
f8fddff769 Split into FS and File 2015-09-03 19:09:11 +02:00
Jakob Unterwurzacher
4e93fdf820 Port from go-fuse to bazil/fuse 2015-09-03 18:22:18 +02:00