summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-12-19Increase GCM IV size from 96 to 128 bitsJakob Unterwurzacher
This pushes back the birthday bound for collisions to make it virtually irrelevant.
2015-12-19diriv: handle directory rename over directoryJakob Unterwurzacher
If an empty directory is overwritten we will always get ENOTEMPTY as the "empty" directory will still contain gocryptfs.diriv. Handle that case by removing the target directory and trying again. Fixes issue #10
2015-12-13go fmtJakob Unterwurzacher
...and minimal comment changes.
2015-12-13Handle EINTR returned by FallocateJakob Unterwurzacher
Fallocate can return EINTR (interrupted system call) and does so quite often when cpu profiling is enabled.
2015-12-11tests: overwrite directory with another directoryJakob Unterwurzacher
Testcase for issue #10 (currently failing)
2015-12-11tests: add "gocryptfs -init -plaintextnames" cli testcaseJakob Unterwurzacher
2015-12-11Rmdir: handle creating and removing unreadable directoriesJakob Unterwurzacher
This patch also splits off Mkdir and Rmdir into its own file. Fixes issue #8, thanks to @diseq for the bug report.
2015-12-10Wrap NewGCMWithNonceSize() to enable compilation on Go 1.4Jakob Unterwurzacher
2015-12-10tests: test read-write directory operations on all example filesystemsJakob Unterwurzacher
2015-12-10tests: add v0.6-plaintextnames example filesystemJakob Unterwurzacher
2015-12-10Simplify CreateConfFile: do not allow specification of EMENamesJakob Unterwurzacher
2015-12-10Add missing PlaintextNames checks in OpenDir, Mkdir, Rmdir, initDirJakob Unterwurzacher
Plaintextnames support has bitrotted during the DirIV additions, this needs test cases. Will be added in a future patch. Fixes issue #9.
2015-12-08travis ci: do not build on go 1.4.3Jakob Unterwurzacher
Go 1.4.3 seems to be missing cipher.NewGCMWithNonceSize. Error: cryptfs/openssl_test.go:23: undefined: cipher.NewGCMWithNonceSize
2015-12-08README: fix typoJakob Unterwurzacher
2015-12-08Update README + docs for v0.6 releasev0.6Jakob Unterwurzacher
2015-12-08tests: add v0.6 example filesystem with EMEJakob Unterwurzacher
2015-12-08Add EME filename encryption & enable it by defaultJakob Unterwurzacher
2015-12-08go fmtJakob Unterwurzacher
2015-12-08opensslGCM: preallocate buffer space, improves performance by 11%Jakob Unterwurzacher
Results of cryptfs/openssl_benchmark.bash : Before: BenchmarkEnc_OpenSSL_4k_AES256_nonce96-2 50000 31802 ns/op 127.28 MB/s BenchmarkEnc_OpenSSL_4k_AES256_nonce128-2 50000 32110 ns/op 126.06 MB/s After: BenchmarkEnc_OpenSSL_4k_AES256_nonce96-2 50000 28612 ns/op 141.47 MB/s BenchmarkEnc_OpenSSL_4k_AES256_nonce128-2 50000 28613 ns/op 141.47 MB/s
2015-12-08tests: add encryption benchmarks to cryptfsJakob Unterwurzacher
2015-12-06Update READMEv0.5.1Jakob Unterwurzacher
gocryptfs is no longer developed in gocryptfs because of the inconvenience that you cannot mount a FUSE filesystem inside a FUSE mount
2015-12-06tests: add TestRenameJakob Unterwurzacher
2015-12-06fallocate the space needed for the file header beforehandJakob Unterwurzacher
This makes sure writing to a file fails early if the underlying filesystem does not support fallocate. It also prevents partial header write due to ENOSPC.
2015-12-06Fix rename, was broken broken by DirIV introductionJakob Unterwurzacher
As it was, CIPHERDIR was prepended twice, causing every rename to fail with ENOENT.
2015-12-06tests: recreate v0.5 example filesystems with -scryptn=10Jakob Unterwurzacher
Cuts the mount time in half, from 0.788s to 0.321s.
2015-12-06init: create gocryptfs.diriv after creating gocryptfs.confJakob Unterwurzacher
Creating the config file can fail easily, for example if the password is not entered the same twice. This would leave an orphaned gocryptfs.diriv behind.
2015-12-04performance.txt: link to linux-3.0.tar.gzJakob Unterwurzacher
2015-12-04Update manpage with -diriv and -scryptnv0.5Jakob Unterwurzacher
2015-12-04Show base64 encoding in filename encryption svgJakob Unterwurzacher
2015-12-02svg: add colored annotationsJakob Unterwurzacher
Also, show the IV in the master key decryption process
2015-12-01Cut down the text in SECURITY.md, add graphsJakob Unterwurzacher
2015-12-01Add svgs explaining the encryption stepsJakob Unterwurzacher
2015-12-01Make sure MANPAGE-render.bash works when called from outside DocumentationJakob Unterwurzacher
2015-12-01Move docs to Documentation folderJakob Unterwurzacher
2015-11-29Update README and SECURITY documentsJakob Unterwurzacher
2015-11-29Run go fmtJakob Unterwurzacher
2015-11-29Add single-element cache for DirIV lookupJakob Unterwurzacher
Another 3x performance boost for applications that walk the directory tree. Excerpt from performance.txt: VERSION UNTAR LS RM v0.4 48 1.5 5 v0.5-rc1 56 7 19 v0.5-rc1-1 54 4.1 9 v0.5-rc1-2 45 1.7 3.4 <---- THIS VERSION
2015-11-29OpenDir performance: Read DirIV once and reuse it for all namesJakob Unterwurzacher
Formerly, we called decryptPath for every name. That resulted in a directory walk that reads in all diriv files on the way. Massive improvement for RM and LS (check performance.txt for details) VERSION UNTAR RM LS v0.4 48 5 1.5 v0.5-rc1 56 19 7 v0.5-rc1-1 54 9 4.1 <---- THIS VERSION
2015-11-29Handle all operations except mounting without forking a childJakob Unterwurzacher
This saves 170ms for each start (why do we take 170ms to start up?) and cuts down test time by 2 seconds.
2015-11-29Add "-scryptn" option that sets the cost parameter for scryptv0.5-rc1Jakob Unterwurzacher
Use that option to speed up the automated tests by 7 seconds. Before: ok github.com/rfjakob/gocryptfs/integration_tests 26.667s After: ok github.com/rfjakob/gocryptfs/integration_tests 19.534s
2015-11-29tests: add scrypt benchmarkJakob Unterwurzacher
Times the impact of the parameter "N" to scrypt. Results on a 2.7GHz Pentium G630: gocryptfs/cryptfs$ go test -bench=. PASS BenchmarkScrypt10-2 300 6021435 ns/op ... 6ms BenchmarkScrypt11-2 100 11861460 ns/op BenchmarkScrypt12-2 100 23420822 ns/op BenchmarkScrypt13-2 30 47666518 ns/op BenchmarkScrypt14-2 20 92561590 ns/op ... 92ms BenchmarkScrypt15-2 10 183971593 ns/op BenchmarkScrypt16-2 3 368506365 ns/op BenchmarkScrypt17-2 2 755502608 ns/op ... 755ms ok github.com/rfjakob/gocryptfs/cryptfs 18.772s
2015-11-28tests: add v0.5 example filesystem (with DirIV!)Jakob Unterwurzacher
2015-11-28tests: verify that symlinks workJakob Unterwurzacher
2015-11-28diriv: also support old CBC symlinkJakob Unterwurzacher
2015-11-28diriv: fix Symlink() and Readlink()Jakob Unterwurzacher
Both were missing adaptions for diriv usage resulting in broken functionality
2015-11-28diriv: fix readdirJakob Unterwurzacher
It decrypted all file names using the root directory iv
2015-11-28diriv: use "DirIV" flag to discern and support mounting old filesystemsJakob Unterwurzacher
2015-11-27main: pass args struct instead of having a huge function callJakob Unterwurzacher
2015-11-27Run go fmtJakob Unterwurzacher
2015-11-27diriv: Define "DirIV" feature flagJakob Unterwurzacher
(unused so far)