summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-10gocryptfs-xray: document -encrypt-paths / -decrypt-pathsJakob Unterwurzacher
2020-05-10gocryptfs-xray: add -0 flag, add testsJakob Unterwurzacher
The -0 flags works like xargs -0.
2020-05-09main: add "go doc" package commentJakob Unterwurzacher
Should show up on https://pkg.go.dev/github.com/rfjakob/gocryptfs?tab=doc which currently reads "No documentation available for this package!"
2020-05-09gocryptfs-xray: integrate ctlsock path encryption/decryptionJakob Unterwurzacher
Implementation seems to work ok, but is missing tests and documentation for now. I will only delete ctlsock-encrypt.bash when both are done. https://github.com/rfjakob/gocryptfs/issues/416
2020-05-09test_helpers: use new ctlsock.CtlSock APIJakob Unterwurzacher
2020-05-09ctlsock: add CtlSock APIJakob Unterwurzacher
2020-05-09test_helper: kill lsof after 1 secondJakob Unterwurzacher
lsof may get stuck when gocryptfs itself is stuck.
2020-05-09ctlsock: create exported ctlsock client libraryJakob Unterwurzacher
The former interal ctlsock server package is renamed to ctlsocksrv.
2020-05-09tests: add TestPasswdMasterkeyStdinJakob Unterwurzacher
Tests that `gocryptfs -passwd -masterkey=stdin` works. This was fixed by ff04b1d83ab1201. Fixes https://github.com/rfjakob/gocryptfs/issues/461
2020-05-09main: untangle `-masterkey` handling and config loadingJakob Unterwurzacher
This was handled both in getMasterKey(). Split it apart.
2020-05-09main: rename parseMasterKey() -> unhexMasterKey()Jakob Unterwurzacher
Make it clear that function does NOT parse the "-masterkey" command line argument, it just unhexes the payload.
2020-05-09tests: use t.Name()Jakob Unterwurzacher
We did not use t.Name() as it was not available before Go 1.8. Now the oldest Go version we support is Go 1.11, so we can use it.
2020-05-09tests: cli: rename TestBypass -> TestBadnameJakob Unterwurzacher
The command line option is now called `-badname`, so adjust the test name to match.
2020-05-09Update README for v1.8.0 releasev1.8.0Jakob Unterwurzacher
2020-05-03Documentation: update performance.txtJakob Unterwurzacher
Bisecting shows that the performance drop is caused by this commit: commit ca9e912a28b901387e1dbb85f6c531119f2d5ef2 (refs/bisect/bad) Author: Jakob Unterwurzacher <jakobunt@gmail.com> Date: Sat Feb 29 19:58:08 2020 +0100 fusefrontend: drop xattr user namespace restriction
2020-05-03go mod: update dependenciesJakob Unterwurzacher
Updated using go get -t -u ./...
2020-05-03build-without-openssl.bash: suppress "not a dynamic executable" messageJakob Unterwurzacher
We redirected the wrong ldd fd to /dev/null. Fix it.
2020-05-03inomap: fix TestSpill bit checkJakob Unterwurzacher
Wrong bit operator was used.
2020-05-03inomap: fix spillBit not set on 2nd hitJakob Unterwurzacher
Also add a test for this. Thanks @slackner for the comment.
2020-05-03inomap: remove leftover debug outputJakob Unterwurzacher
This was committed by accident.
2020-05-03fusefrontend_reverse: use inomap for inode number translationJakob Unterwurzacher
Gets rid of static inode number value limitations. Fixes https://github.com/rfjakob/gocryptfs/issues/457
2020-05-03tests: reverse: add inode mapping test (TestVirtualFileIno)Jakob Unterwurzacher
Verify that virtual files get assigned inode numbers we expect.
2020-04-19inomap: comment constantsJakob Unterwurzacher
2020-04-19inomap: rework logic to efficiently support flagsJakob Unterwurzacher
Adding flags allows to use inomap in reverse mode, replacing the clunky inoBaseDirIV/inoBaseNameFile logic that causes problems with high underlying inode numbers ( https://github.com/rfjakob/gocryptfs/issues/457 ) Microbenchmarks (values below) show that the "SingleDev" case is now much slower due to an extra map lookup, but this has no visible effects in ./test.bash results, so there was no time spent optimizing the case further. $ go test -bench=. goos: linux goarch: amd64 pkg: github.com/rfjakob/gocryptfs/internal/inomap BenchmarkTranslateSingleDev-4 18757510 61.5 ns/op BenchmarkTranslateManyDevs-4 18061515 64.5 ns/op PASS ok github.com/rfjakob/gocryptfs/internal/inomap 2.467s
2020-04-19inomap: add benchmarkJakob Unterwurzacher
$ go test -bench=. goos: linux goarch: amd64 pkg: github.com/rfjakob/gocryptfs/internal/inomap BenchmarkTranslateSingleDev-4 202479382 5.88 ns/op BenchmarkTranslateManyDevs-4 16095795 71.9 ns/op PASS ok github.com/rfjakob/gocryptfs/internal/inomap 3.039s
2020-04-18build.bash: handle missing git tagsJakob Unterwurzacher
The case of a git repo without any tags used to fail with: fatal: No names found, cannot describe anything. Now we continue, using "[no_tags_found]" as the version string.
2020-04-18build.bash: don't enable -buildmode=pie for static buildsJakob Unterwurzacher
Causes warnings: $ ./build-without-openssl.bash # github.com/rfjakob/gocryptfs loadinternal: cannot find runtime/cgo # github.com/rfjakob/gocryptfs/gocryptfs-xray loadinternal: cannot find runtime/cgo # github.com/rfjakob/gocryptfs/contrib/statfs loadinternal: cannot find runtime/cgo gocryptfs v1.7.1-48-gf6b1c68 without_openssl; go-fuse v1.0.1-0.20190319092520-161a16484456; 2020-04-18 go1.13.6 linux/amd64 https://github.com/golang/go/issues/30986
2020-04-18nametransform: update comment & simplify testsJakob Unterwurzacher
The comment still mentioned CBC, which has been removed a long time ago. The test definition can be rewritten using slice literals, saving sume stuttering.
2020-04-13Prefer Go stdlib aes-gcm on arm64 with aes instructionsJakob Unterwurzacher
We used to prefer openssl in this situation, which used to make sense, but now Go gained an optimized assembly implementation for aes-gcm on arm64 with aes instructions: root@q1:~/go/src/github.com/rfjakob/gocryptfs# ./gocryptfs -speed gocryptfs v1.7.1-46-g73436d9; go-fuse v1.0.1-0.20190319092520-161a16484456; 2020-04-13 go1.14.2 linux/arm64 AES-GCM-256-OpenSSL 212.30 MB/s (selected in auto mode) AES-GCM-256-Go 452.30 MB/s AES-SIV-512-Go 100.25 MB/s XChaCha20-Poly1305-Go 137.35 MB/s https://github.com/rfjakob/gocryptfs/issues/452
2020-04-13travis: fix Go Modules build problemsJakob Unterwurzacher
2020-04-13build.bash: use GOFLAGS -trimpath and enable PIEJakob Unterwurzacher
GOFLAGS exists since Go 1.11: https://golang.org/doc/go1.11 https://github.com/rfjakob/gocryptfs/pull/460
2020-04-13Convert build and packaging scripts to Go ModulesJakob Unterwurzacher
2020-04-13dep: migrate to Go ModulesJakob Unterwurzacher
Following https://blog.golang.org/migrating-to-go-modules
2020-04-13shellcheck: make top-level bash scripts warning-freeJakob Unterwurzacher
And run shellcheck in test.bash.
2020-04-13build.bash: append branch name != masterJakob Unterwurzacher
2020-04-13speed: show gocryptfs versionJakob Unterwurzacher
Output now looks like this $ gocryptfs -speed gocryptfs v1.7.1-38-gbe3b9df-dirty; go-fuse v2.0.2-57-gd1cfa17; 2020-04-13 go1.13.6 linux/amd64 AES-GCM-256-OpenSSL 607.90 MB/s AES-GCM-256-Go 920.75 MB/s (selected in auto mode) AES-SIV-512-Go 169.85 MB/s XChaCha20-Poly1305-Go 794.30 MB/s and has go version and arch information, which is important when comparing results.
2020-04-13inomap: split into separate packageJakob Unterwurzacher
inomap will also be used by fusefrontend_reverse in the future. Split if off openfiletable to make it independent.
2020-04-13speed: add XChaCha20-Poly1305-GoJakob Unterwurzacher
https://github.com/rfjakob/gocryptfs/issues/452
2020-04-07Update manpage examplesOscar
2020-02-29crossbuild.bash: set GOARM=7Jakob Unterwurzacher
From https://github.com/golang/go/wiki/GoArm : In cross compilation situations, it is recommended that you always set an appropriate GOARM value along with GOARCH. The value seems to default to GOARM=5 if not set during cross-compilation.
2020-02-29speed: add code commentsJakob Unterwurzacher
2020-02-29tests: test xattr aclsJakob Unterwurzacher
Fixes https://github.com/rfjakob/gocryptfs/issues/453
2020-02-29fusefrontend: drop xattr user namespace restrictionJakob Unterwurzacher
We used to restrict setting xattrs to the "user." namespace. I don't see a real reason for this anymore, and it causes trouble for users who are using acls. Tests will be added in the next commit. https://github.com/rfjakob/gocryptfs/issues/453
2020-02-28Show undecryptable filenames if they match supplied globorcas
Resolves https://github.com/rfjakob/gocryptfs/issues/393
2020-02-15README: update changelogJakob Unterwurzacher
2020-02-15tests: randomize data in testWriteNJakob Unterwurzacher
Just writing zeros carries the risk of not detecting wrongly created file holes. Write random data instead.
2020-02-15performance.txt: update result for governor = performanceJakob Unterwurzacher
Also add big signs where the cpu has changed, as the results are not comparable when the cpu is different. Also update encfs results.
2020-02-15contentenc: encryptBlocksParallel: explain why last part runs in new goroutineJakob Unterwurzacher
The result is counter-intuitive, so explain it here.
2020-02-15main: respect GOMAXPROCS environment variableJakob Unterwurzacher
If the user sets GOMAXPROCS explicitely, we should respect it.
2020-02-15merge prefer_openssl package into stupidgcmJakob Unterwurzacher
Now that I have discovered golang.org/x/sys/cpu and that Go versions below 1.6 are uncommon, there was not much useful code left in prefer_openssl. Merge the remains into stupidgcm.