| Age | Commit message (Collapse) | Author | 
 | 
Also create virtual gocryptfs.diriv entries (no content yet).
 | 
 | 
Will be needed by reverse mode.
 | 
 | 
 | 
 | 
... and print a warning that reverse mode is experimental
 | 
 | 
...to prevent confusion with the forward variants.
FS   -> reverseFS
file -> reverseFile
Also add an incomplete read implementation.
 | 
 | 
Add the reverse variant of DecryptBlocks etc:
* EncryptBlocks
* JointPlaintextRange
* ExplodeCipherRange
 | 
 | 
 | 
 | 
Previously caused an integer underflow.
 | 
 | 
Compiles but does not do much else.
 | 
 | 
 | 
 | 
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
 | 
 | 
This currently fails as reported in
https://github.com/rfjakob/gocryptfs/issues/35 .
Also remove the spurious sleep in the test.
 | 
 | 
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.
 | 
 | 
Make sure setting nanoseconds works by path and fd.
 | 
 | 
 | 
 | 
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.
 | 
 | 
 | 
 | 
This obsoletes loopback-mem.bash.
 | 
 | 
"canonical-benchmarks.bash TESTDIR"
can now be used on any filesystem.
 | 
 | 
Simple script that finds out the maximum supported filename
length.
 | 
 | 
Helps to find memory leaks in go-fuse's loopback, which
gocryptfs builds upon.
 | 
 | 
loopback is an example app that comes with the go-fuse lib.
It uses all the same APIs as gocryptfs, minus the encryption.
 | 
 | 
Pass "-encfs" to test encfs instead of gocryptfs.
 | 
 | 
 | 
 | 
 | 
 | 
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
 | 
 | 
Thanks to @spaghetti2514 for noticing.
 | 
 | 
 | 
 | 
 | 
 | 
"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.
 | 
 | 
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
 | 
 | 
OSX does not have /proc/cpuinfo, but let's not warn
the user about it.
 | 
 | 
[...]/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
 | 
 | 
fuse-xfstests is regularily rebased to xfstests master.
 | 
 | 
Protip: find naked *at syscalls using:
   git grep "syscall." | grep "at(" | grep -v syscallcompat
 | 
 | 
Also, replace remaining naked syscall.Openat calls.
 | 
 | 
 | 
 | 
Adds a poor man's renameat implementation for OSX.
 | 
 | 
...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.
 | 
 | 
We will get more of them as OSX also lacks support for openat.
 | 
 | 
$ gocryptfs -version
gocryptfs v0.12-36-ge021b9d-dirty; go-fuse a4c968c; 2016-07-03 go1.6.2
 | 
 | 
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).
 | 
 | 
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.
 | 
 | 
Reported at https://github.com/rfjakob/gocryptfs/issues/15
 | 
 | 
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 .
 | 
 | 
These are large complicated implementations that will share some
code.
 | 
 | 
The name could be misunderstood and actually caused a bug:
doWrite used to always preallocate 4128 instead of the actual
data length.
 | 
 | 
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
 | 
 | 
 | 
 | 
XFS returns a different error code if you try to overwrite
a non-empty directory with a directory:
XFS:  mv: cannot move ‘foo’ to ‘bar/foo’: File exists
ext4: mv: cannot move 'foo' to 'bar/foo': Directory not empty
So have EEXIST trigger the Rmdir logic as well.
Fixes issue #20
Link: https://github.com/rfjakob/gocryptfs/issues/20
 |