Jakob Unterwurzacher
2003ca965d
Zero-pad last block if a file hole is created on Write()
...
Fixes TestFileHoles test
2015-10-04 11:39:35 +02:00
Jakob Unterwurzacher
5229b8f5f5
Add BlockNoPlainOff() and BlockNoCipherOff() + test
...
Also, fix key, it is now []byte, not [16]byte
2015-10-04 11:03:40 +02:00
Jakob Unterwurzacher
fa88741770
tests: add TestFileHoles
...
Create a file with holes by writing to offset 0 (block #0 ) and
offset 4096 (block #1 ).
This test currently fails.
2015-10-04 10:39:44 +02:00
Jakob Unterwurzacher
40448db909
Fix xfstests generic/030 failure
...
The actual fix is
oldSize := f.cfs.PlainSize(uint64(fi.Size()))
the rest is logging improvements
2015-10-04 00:26:20 +02:00
Jakob Unterwurzacher
0802175328
Add daemonization shell script
2015-10-03 19:17:31 +02:00
Jakob Unterwurzacher
79870ab096
debug: log inode number instead of encrypted filename
...
Makes the log output smaller and more readable.
2015-10-03 19:16:34 +02:00
Jakob Unterwurzacher
38bf8a2fcf
Implement file hole passtrough
...
Fixes xfstests generic/010
Note that file holes are not authenticated,
2015-10-03 13:34:33 +02:00
Jakob Unterwurzacher
3fef613591
tests: Add append test
2015-09-30 23:42:18 +02:00
Jakob Unterwurzacher
b835f83fd5
Implement Truncate() + Test
2015-09-30 22:36:53 +02:00
Jakob Unterwurzacher
aea8d8d6e7
debug: Log encrypted filename
2015-09-30 20:32:24 +02:00
Jakob Unterwurzacher
061831edf2
DecryptBlocks: Don't shadow err variable
2015-09-30 20:31:41 +02:00
Jakob Unterwurzacher
7d666bd87d
Set Fileystem and Type values shown in "df -T" and friends
...
Filesystem is set to CIPHERDIR, Type is set to fuse.gocryptfs
2015-09-19 10:47:16 +02:00
Jakob Unterwurzacher
c4ec7a4295
Fix Chown parameter order
2015-09-19 10:46:39 +02:00
Jakob Unterwurzacher
8fe5ec7381
Add --cpuprofile flag
2015-09-18 22:14:07 +02:00
Jakob Unterwurzacher
e84c1e3741
Make read benchmark smarter when extending file
2015-09-18 20:10:55 +02:00
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