summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-09-25reverse: rename readFile to clearer readBackingFileJakob Unterwurzacher
Also refactor the header generation for nicer code.
2016-09-25reverse: implement dynamic dirivJakob Unterwurzacher
Introduce a unique per-directory diriv that is generated by hashing the encrypted directory path.
2016-09-25reverse: generate file header for Read()Jakob Unterwurzacher
Also create virtual gocryptfs.diriv entries (no content yet).
2016-09-25nametransform: export DirIVLen constantJakob Unterwurzacher
Will be needed by reverse mode.
2016-09-25reverse: print value in file offset panicJakob Unterwurzacher
2016-09-25reverse: let the kernel enforce read-only modeJakob Unterwurzacher
... and print a warning that reverse mode is experimental
2016-09-25reverse: rename types to reverseXYZJakob Unterwurzacher
...to prevent confusion with the forward variants. FS -> reverseFS file -> reverseFile Also add an incomplete read implementation.
2016-09-25contentenc: add helpers for reverse modeJakob Unterwurzacher
Add the reverse variant of DecryptBlocks etc: * EncryptBlocks * JointPlaintextRange * ExplodeCipherRange
2016-09-25main: initial support for reverse modeJakob Unterwurzacher
2016-09-25conentenc: handle zero-sized files in PlainSizeToCipherSizeJakob Unterwurzacher
Previously caused an integer underflow.
2016-09-25reverse: add skeletonJakob Unterwurzacher
Compiles but does not do much else.
2016-09-25tests: skip the nanosecond compare for nowJakob Unterwurzacher
2016-09-25fusefrontend: relay Utimens to go-fuseJakob Unterwurzacher
Commit af5441dcd9033e81da43ab77887a7b5aac693ab6 has caused a regression ( https://github.com/rfjakob/gocryptfs/issues/35 ) that is fixed by this commit. The go-fuse library by now has all the syscall wrappers in place to correctly handle Utimens, also for symlinks. Instead of duplicating the effort here just call into go-fuse. Closes #35
2016-09-25tests: set the times on a symlinkJakob Unterwurzacher
This currently fails as reported in https://github.com/rfjakob/gocryptfs/issues/35 . Also remove the spurious sleep in the test.
2016-08-09fusefrontend: use NsecToTimespec() for UtimensJakob Unterwurzacher
This fixes a build problem on 32-bit hosts: internal/fusefrontend/file.go:400: cannot use a.Unix() (type int64) as type int32 in assignment internal/fusefrontend/file.go:406: cannot use m.Unix() (type int64) as type int32 in assignment It also enables full nanosecond timestamps for dates after 1970.
2016-08-09tests: add TestUtimesNanoJakob Unterwurzacher
Make sure setting nanoseconds works by path and fd.
2016-07-31cryptocore: comment why 96-bit IVs are still supportedJakob Unterwurzacher
2016-07-21Drop obsolete .drone.ymlJakob Unterwurzacher
Drone CI may make sense in the future when I set up a private instance that supports FUSE, but for now it provides no advantages to Travis CI.
2016-07-17Update README for v1.0v1.0Jakob Unterwurzacher
2016-07-16tests: add RSS tracking to extractloopJakob Unterwurzacher
This obsoletes loopback-mem.bash.
2016-07-16tests: factor out fs-agnostic benchmark scriptJakob Unterwurzacher
"canonical-benchmarks.bash TESTDIR" can now be used on any filesystem.
2016-07-16tests: add maxlen.bash helperJakob Unterwurzacher
Simple script that finds out the maximum supported filename length.
2016-07-14tests: add loopback-mem scriptJakob Unterwurzacher
Helps to find memory leaks in go-fuse's loopback, which gocryptfs builds upon.
2016-07-12tests: extractloop: add loopback supportJakob Unterwurzacher
loopback is an example app that comes with the go-fuse lib. It uses all the same APIs as gocryptfs, minus the encryption.
2016-07-11tests: add encfs support to benchmark.bash and extractloop.bashJakob Unterwurzacher
Pass "-encfs" to test encfs instead of gocryptfs.
2016-07-11tests: matrix: print name in verbose outputJakob Unterwurzacher
2016-07-11tests: add verbose output when unmountingJakob Unterwurzacher
2016-07-11tests: use unmount wrapper in ResetTmpDirJakob Unterwurzacher
This should make it work on OSX. Also, split unmount into two functions. Depending on what you want, * UnmountErr returns the resulting error * UnmountPanic panics if the error was not nil
2016-07-10README: Fix ticket #15 copy-paste errorsrfjakob
Thanks to @spaghetti2514 for noticing.
2016-07-06Add godoc comments to all internal packagesJakob Unterwurzacher
2016-07-06README: update for 1.0-rc1v1.0-rc1Jakob Unterwurzacher
2016-07-06tests: fix shadow warningJakob Unterwurzacher
"go tool vet -shadow=true" complained about the md5 package being shadowed by variables called "md5". Fix by using the Md5hex helper and dropping the md5 import.
2016-07-04tests: OSX: cast st.Blksize to int64Jakob Unterwurzacher
On Linux, Blksize is already int64. But on OSX it is int32 and that caused a compile failure. https://github.com/rfjakob/gocryptfs/issues/15
2016-07-04prefer_openssl: OSX: get rid of /proc warningsJakob Unterwurzacher
OSX does not have /proc/cpuinfo, but let's not warn the user about it.
2016-07-04stupidgcm: use __builtin_trap()Jakob Unterwurzacher
[...]/stupidgcm/locking.go:16:2: warning: indirection of non-volatile null pointer will be deleted, not trap [-Wnull-dereference] [...]/stupidgcm/locking.go:16:2: note: consider using __builtin_trap() or qualifying pointer with 'volatile' https://github.com/rfjakob/gocryptfs/issues/15
2016-07-03XFSTESTS.md: add output from latest fuse-xfstestsJakob Unterwurzacher
fuse-xfstests is regularily rebased to xfstests master.
2016-07-03syscallcompat: OSX: add Mknodat wrapperJakob Unterwurzacher
Protip: find naked *at syscalls using: git grep "syscall." | grep "at(" | grep -v syscallcompat
2016-07-03syscallcompat: OSX: add Unlinkat wrapperJakob Unterwurzacher
Also, replace remaining naked syscall.Openat calls.
2016-07-03fusefrontend: downgrade Renameat log message to debugJakob Unterwurzacher
2016-07-03syscallcompat: OSX: add Renamat wrapperJakob Unterwurzacher
Adds a poor man's renameat implementation for OSX.
2016-07-03syscallcompat: OSX: add Fallocate and Openat wrappersJakob Unterwurzacher
...and convert all calls to syscall.{Fallocate,Openat} to syscallcompat . Both syscalls are not available on OSX. We emulate Openat and just return EOPNOTSUPP for Fallocate.
2016-07-03syscallcompat: move syscall wrapper to their own packageJakob Unterwurzacher
We will get more of them as OSX also lacks support for openat.
2016-07-03main: bake build date into version stringJakob Unterwurzacher
$ gocryptfs -version gocryptfs v0.12-36-ge021b9d-dirty; go-fuse a4c968c; 2016-07-03 go1.6.2
2016-07-03main: yellow text for masterkey and zerokey warningsJakob Unterwurzacher
Also, mention that the shell may save the command line into the history and reduce "ps -auxwww" to "ps ax" (that's all you need).
2016-07-03nametransform: hide detailed padding error behind the debug flagJakob Unterwurzacher
unPad16 returns detailed errors including the position of the incorrect bytes. Kill a possible padding oracle by lumping everything into a generic error. The detailed error is only logged if debug is active.
2016-07-02tests: call umount instead of fusermount on OSXJakob Unterwurzacher
Reported at https://github.com/rfjakob/gocryptfs/issues/15
2016-07-02fusefrontend: add fallocate supportJakob Unterwurzacher
Mode=0 (default) and mode=1 (keep size) are supported. The patch includes test cases and the whole thing passed xfstests. Fixes https://github.com/rfjakob/gocryptfs/issues/1 .
2016-07-02fusefronted: move Truncate() and Allocate() to their own fileJakob Unterwurzacher
These are large complicated implementations that will share some code.
2016-07-02contentenc: rename PlaintextRange and CiphertextRangeJakob Unterwurzacher
The name could be misunderstood and actually caused a bug: doWrite used to always preallocate 4128 instead of the actual data length.
2016-07-01fusefrontend: coalesce grows in Truncate()Jakob Unterwurzacher
We were growing the file block-by-block which was pretty inefficient. We now coalesce all the grows into a single Ftruncate. Also simplifies the code! Simplistic benchmark: Before: $ time truncate -s 1000M foo real 0m0.568s After: $ time truncate -s 1000M foo real 0m0.205s