| Age | Commit message (Collapse) | Author | 
|---|
|  | Fix the test for that and add checks in example_filesystems_test. | 
|  | Also get rid of useless isFiltered function. | 
|  | Only in plaintextnames-mode AND with the config file at the
default location it will be mapped into the mountpoint.
Also adds a test for that. | 
|  | go-fuse translates errors unknown to it into "function not
implemented", which is wrong in this case. | 
|  | Gets rid of the idling longnameCacheCleaner thread in "normal" mode. | 
|  |  | 
|  |  | 
|  | Go versions 1.4 and lower lack NewGCMWithNonceSize(), which causes
a panic in the test. | 
|  | The [Stat_t.Dev](https://golang.org/pkg/syscall/#Stat_t) docs say `Dev` is a `unit64`, but on [macOS amd64](https://golang.org/src/syscall/ztypes_darwin_amd64.go) it's an `int32`. | 
|  | Build helper script: build-without-openssl.bash | 
|  | As we now also support AES-SIV the old name is no longer
correct. | 
|  | AES-SIV uses 1/2 of the key for authentication, 1/2 for
encryption, so we need a 64-byte key for AES-256. Derive
it from the master key by hashing it with SHA-512. | 
|  | Add a test for that.
Also test operations using a 64-byte key. | 
|  | Also pull all the deterministic nonce code into fusefrontend_reverse
to greatly simplify the normal code path. | 
|  | After all, is's a virtual file. | 
|  | GCM-SIV is not yet finalized, and the reference implemenation is
painfully slow at about 2 MB/s. Switch to AES-SIV. | 
|  |  | 
|  | On a CPU without AES-NI:
$ go test -bench .
Benchmark4kEncStupidGCM-2   	   50000	     24155 ns/op	 169.57 MB/s
Benchmark4kEncGoGCM-2       	   20000	     93965 ns/op	  43.59 MB/s
Benchmark4kEncGCMSIV-2      	     500	   2576193 ns/op	   1.59 MB/s | 
|  | This happens all the time in reverse mode when somebody stats
an encrypted symlink target. | 
|  | Also delete the unused "dirIVNameStruct", found by deadcode. | 
|  | ...and fix reported errors:
internal/fusefrontend_reverse/rfile.go:40: github.com/rfjakob/gocryptfs/internal/contentenc.FileHeader composite literal uses unkeyed fields
internal/fusefrontend_reverse/rfs.go:249: github.com/hanwen/go-fuse/fuse.DirEntry composite literal uses unkeyed fields
internal/fusefrontend_reverse/rfs.go:264: github.com/hanwen/go-fuse/fuse.DirEntry composite literal uses unkeyed fields | 
|  |  | 
|  | 128-bit IVs are NOT used everywhere. | 
|  |  | 
|  | This will be used for strong symlink encryption in reverse mode. | 
|  | Calling into go-fuse's loopbackFileSystem does not add
any value here. | 
|  |  | 
|  |  | 
|  | findLongnameParent has to read the whole directory to find the
right file; add a simple cache to avoid most directory scans. | 
|  | The last patch added functionality for generating gocryptfs.longname.*
files, this patch adds support for mapping them back to the full
filenames.
Note that resolving a long name needs a full readdir. A cache
will be implemented later on to improve performance. | 
|  |  | 
|  | As ReadDirIV operates on a path anyway, opening the directory
has no clear safety advantage w.r.t. concurrent renames.
If the backing directory is a reverse-mounted gocryptfs filesystem,
each directory open is an OPENDIR, and this causes a full directory
read!
This patch improves the "ls -lR" performance of an
  DIR --> gocryptfs-reverse --> gocryptfs
chain by a factor of ~10.
OPENDIR counts for ls -lR:
  Before 15570
  After   2745 | 
|  | With the generic fmt.Errorf we trigger a warning from go-fuse:
  2016/09/21 21:42:31 can't convert error type: Invalid padding | 
|  | ...with stable mappings for hard-linked files. | 
|  | Also add ReverseDummyNonce nonce generation. | 
|  |  | 
|  | And also don't return the encrypted version of
.gocryptfs.reverse.conf in readdir. | 
|  |  | 
|  |  | 
|  | Should be derived from the directory name only. | 
|  | Also refactor the header generation for nicer code. | 
|  | Introduce a unique per-directory diriv that is generated
by hashing the encrypted directory path. | 
|  | Also create virtual gocryptfs.diriv entries (no content yet). | 
|  | Will be needed by reverse mode. | 
|  |  | 
|  | ...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. |