summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-10-06Use block number as authentication dataJakob Unterwurzacher
2015-10-06Add "--masterkey=" parameter for recovery purposesJakob Unterwurzacher
2015-10-06Switch to AES-256Jakob Unterwurzacher
AES-256 seems to be becoming the industry standard. While AES-128 is good enough for tens of years to come, let's follow suit and be extra safe.
2015-10-06Add "--openssl=false" command line optionJakob Unterwurzacher
Also make main_test try both variants
2015-10-06Rewrite README.md (in progress)Jakob Unterwurzacher
2015-10-06Implement proper daemonizationJakob Unterwurzacher
The shell wrapper sends gocryptfs into the background and waits for SIGUSR1
2015-10-05Move main binary to gocryptfs_mainJakob Unterwurzacher
That way the wrapper shell script can be named just "gocryptfs"
2015-10-04openssl AEAD wrapper: handle authenticated dataJakob Unterwurzacher
2015-10-04Switch nonce generation to purely randomJakob Unterwurzacher
The old implementation of counting up from a random starting point had the problem that is allowed an attacker to find out the write order of the blocks.
2015-10-04Clean up openssl benchmarkJakob Unterwurzacher
2015-10-04tests: simplify namesJakob Unterwurzacher
main_test_tmp -> tmp main_benchmark.bash -> benchmark.bash
2015-10-04Utimens: Use UtimesNano instead of FutimesJakob Unterwurzacher
Futimes() only takes microsecond resolution while the FUSE call Utimens() wants nanosecond precision. This is why UTIME_OMIT did not work - this change fixes the xfstests generic/258 test failure. The go library does not provide a FutimesNano() function which is why I use UtimesNano() on /proc/self/fd/n. This is what the Go library does in Futimes().
2015-10-04fallocate: return ENOSYSJakob Unterwurzacher
The implementation was incomplete, disable fallocate completely for now. See https://github.com/rfjakob/gocryptfs/issues/1 Fixes xfstests generic/075
2015-10-04truncate: Fix bug that caused xfstests generic/030 to failJakob Unterwurzacher
The bug was caused by using cipherOff where plainOff should have been used. Renamed the symbols for less confusion.
2015-10-04Truncate: Logging improvements, show number of blocks as floatJakob Unterwurzacher
2015-10-04Fix Trucate() bug causing files to be too smallJakob Unterwurzacher
Uncovered by running xfstests generic/014 several times
2015-10-04Enable ClientInodes so hard links workJakob Unterwurzacher
Fixes xfstests generic/002
2015-10-04Run go fmtJakob Unterwurzacher
2015-10-04Remove ClueFS frontendJakob Unterwurzacher
Development has focused on PathFS for some time now and things are working well.
2015-10-04intraBlock: Rename Offset to SkipJakob Unterwurzacher
"Offset" is unclear whether it is an offset from the start of file or start of block. "Skip" seems much better.
2015-10-04Utilize file hole passtrough capability in Truncate()Jakob Unterwurzacher
Cuts down the runtime of xfstests generic/014 from 1822 seconds to 36 seconds
2015-10-04Zero-pad last block if a file hole is created on Write()Jakob Unterwurzacher
Fixes TestFileHoles test
2015-10-04Add BlockNoPlainOff() and BlockNoCipherOff() + testJakob Unterwurzacher
Also, fix key, it is now []byte, not [16]byte
2015-10-04tests: add TestFileHolesJakob Unterwurzacher
Create a file with holes by writing to offset 0 (block #0) and offset 4096 (block #1). This test currently fails.
2015-10-04Fix xfstests generic/030 failureJakob Unterwurzacher
The actual fix is oldSize := f.cfs.PlainSize(uint64(fi.Size())) the rest is logging improvements
2015-10-03Add daemonization shell scriptJakob Unterwurzacher
2015-10-03debug: log inode number instead of encrypted filenameJakob Unterwurzacher
Makes the log output smaller and more readable.
2015-10-03Implement file hole passtroughJakob Unterwurzacher
Fixes xfstests generic/010 Note that file holes are not authenticated,
2015-09-30tests: Add append testJakob Unterwurzacher
2015-09-30Implement Truncate() + TestJakob Unterwurzacher
2015-09-30debug: Log encrypted filenameJakob Unterwurzacher
2015-09-30DecryptBlocks: Don't shadow err variableJakob Unterwurzacher
2015-09-19Set Fileystem and Type values shown in "df -T" and friendsJakob Unterwurzacher
Filesystem is set to CIPHERDIR, Type is set to fuse.gocryptfs
2015-09-19Fix Chown parameter orderJakob Unterwurzacher
2015-09-18Add --cpuprofile flagJakob Unterwurzacher
2015-09-18Make read benchmark smarter when extending fileJakob Unterwurzacher
2015-09-17Fix read benchmarkJakob Unterwurzacher
2015-09-16Set GOMAXPROCS = 4Jakob Unterwurzacher
Immediate speedup from 70MB/s to 80MB/s on streaming write. Enables later parallelization.
2015-09-16Fix symlink size reportingJakob Unterwurzacher
2015-09-16symlink encryption: pass ".." and "." through unchangedJakob Unterwurzacher
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-15Add "--zerokey" option to simplify testing and benchmarkingJakob Unterwurzacher
2015-09-14init: Check if dir is empty part II (done)Jakob Unterwurzacher
2015-09-14Use MarshalIndent for JSON generationJakob Unterwurzacher
2015-09-13init: Check if dir is empty part IJakob Unterwurzacher
2015-09-13Implement password handlingJakob Unterwurzacher
2015-09-13Don't warn about "gocryptfs.conf" in the ciphertext root dirJakob Unterwurzacher
2015-09-13Encrypt key with scrypt-hashed passwordJakob Unterwurzacher
2015-09-13Friendlier error message if gocryptfs.conf does not existJakob Unterwurzacher
2015-09-13Implement json config storage (not yet encrypted)Jakob Unterwurzacher
2015-09-09Fix File.GettAttr() size reportingJakob Unterwurzacher
The too-large reported value broke mmap (applications saw appended zero bytes) Also * Add locking for all fd operations * Add "--debug" command line switch