| Age | Commit message (Collapse) | Author | 
 | 
Through base64.RawURLEncoding.
New command-line parameter "-raw64".
 | 
 | 
The Back In Time backup tool (https://github.com/bit-team/backintime)
wants to write directly into the ciphertext dir.
This may cause the cached directory IV to become out-of-date.
Having an expiry time limits the inconstency to one second, like
attr_timeout does for the kernel getattr cache.
 | 
 | 
Simplify the code a bit.
 | 
 | 
Close https://github.com/rfjakob/gocryptfs/issues/54
 | 
 | 
go-fuse translates errors unknown to it into "function not
implemented", which is wrong in this case.
 | 
 | 
 | 
 | 
This happens all the time in reverse mode when somebody stats
an encrypted symlink target.
 | 
 | 
 | 
 | 
 | 
 | 
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
 | 
 | 
Will be needed by reverse mode.
 | 
 | 
 | 
 | 
Also, replace remaining naked syscall.Openat calls.
 | 
 | 
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.
 | 
 | 
The EMENames feature flag is already mandatory, dropping the command
line option is the final step.
 | 
 | 
As DirIV is now mandatory there is no user for the noiv functions.
 | 
 | 
Let's have shorter names, and merge *_api.go into the "main"
file.
No code changes.
 | 
 | 
tlog is used heavily everywhere and deserves a shorter name.
Renamed using sed magic, without any manual rework:
   find * -type f -exec sed -i 's/toggledlog/tlog/g' {} +
 | 
 | 
 | 
 | 
Using dirfd-relative operations allows safe lockless handling
of the ".name" files.
 | 
 | 
 | 
 | 
Go 1.4 and older do not support 128-bit IVs which caused
the tests to panic.
 | 
 | 
 | 
 | 
Todo: Rename, Unlink, Rmdir, Mknod, Mkdir
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
"git status" for reference:
deleted:    cryptfs/cryptfs.go
deleted:    cryptfs/names_core.go
modified:   integration_tests/cli_test.go
modified:   integration_tests/helpers.go
renamed:    cryptfs/config_file.go -> internal/configfile/config_file.go
renamed:    cryptfs/config_test.go -> internal/configfile/config_test.go
renamed:    cryptfs/config_test/.gitignore -> internal/configfile/config_test/.gitignore
renamed:    cryptfs/config_test/PlaintextNames.conf -> internal/configfile/config_test/PlaintextNames.conf
renamed:    cryptfs/config_test/StrangeFeature.conf -> internal/configfile/config_test/StrangeFeature.conf
renamed:    cryptfs/config_test/v1.conf -> internal/configfile/config_test/v1.conf
renamed:    cryptfs/config_test/v2.conf -> internal/configfile/config_test/v2.conf
renamed:    cryptfs/kdf.go -> internal/configfile/kdf.go
renamed:    cryptfs/kdf_test.go -> internal/configfile/kdf_test.go
renamed:    cryptfs/cryptfs_content.go -> internal/contentenc/content.go
new file:   internal/contentenc/content_api.go
renamed:    cryptfs/content_test.go -> internal/contentenc/content_test.go
renamed:    cryptfs/file_header.go -> internal/contentenc/file_header.go
renamed:    cryptfs/intrablock.go -> internal/contentenc/intrablock.go
renamed:    cryptfs/address_translation.go -> internal/contentenc/offsets.go
new file:   internal/cryptocore/crypto_api.go
renamed:    cryptfs/gcm_go1.4.go -> internal/cryptocore/gcm_go1.4.go
renamed:    cryptfs/gcm_go1.5.go -> internal/cryptocore/gcm_go1.5.go
renamed:    cryptfs/nonce.go -> internal/cryptocore/nonce.go
renamed:    cryptfs/openssl_aead.go -> internal/cryptocore/openssl_aead.go
renamed:    cryptfs/openssl_benchmark.bash -> internal/cryptocore/openssl_benchmark.bash
renamed:    cryptfs/openssl_test.go -> internal/cryptocore/openssl_test.go
new file:   internal/nametransform/name_api.go
new file:   internal/nametransform/names_core.go
renamed:    cryptfs/names_diriv.go -> internal/nametransform/names_diriv.go
renamed:    cryptfs/names_noiv.go -> internal/nametransform/names_noiv.go
renamed:    cryptfs/names_test.go -> internal/nametransform/names_test.go
new file:   internal/nametransform/pad16.go
renamed:    cryptfs/log.go -> internal/toggledlog/log.go
renamed:    cryptfs/log_go1.4.go -> internal/toggledlog/log_go1.4.go
renamed:    cryptfs/log_go1.5.go -> internal/toggledlog/log_go1.5.go
modified:   main.go
modified:   masterkey.go
modified:   pathfs_frontend/file.go
modified:   pathfs_frontend/file_holes.go
modified:   pathfs_frontend/fs.go
modified:   pathfs_frontend/fs_dir.go
modified:   pathfs_frontend/names.go
modified:   test.bash
 |