Jakob Unterwurzacher
2a25c3a8fd
tlog: switch from golang.org/x/crypto/ssh/terminal to golang.org/x/term
...
$ golangci-lint run
internal/tlog/log.go:13:2: SA1019: package golang.org/x/crypto/ssh/terminal is deprecated: this package moved to golang.org/x/term. (staticcheck)
"golang.org/x/crypto/ssh/terminal"
2021-08-19 07:38:56 +02:00
Jakob Unterwurzacher
9c268fbe88
README: update for v2.1 release
2021-08-18 17:48:38 +02:00
Jakob Unterwurzacher
b2abb0484f
Drop workarounds for Go 1.11 and Go 1.12
2021-08-18 17:48:38 +02:00
Jakob Unterwurzacher
a5f88e86d1
github ci: drop Go 1.11
...
Contemporary x/sys/unix does not compile anymore with Go 1.11:
https://github.com/rfjakob/gocryptfs/runs/3362218517?check_suite_focus=true
+ GOOS=darwin
+ GOARCH=amd64
+ go build -tags without_openssl -o /dev/null
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/fcntl_darwin.go:11:9: undefined: fcntl
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/fcntl_darwin.go:16:12: undefined: fcntl
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/fcntl_darwin.go:22:12: undefined: fcntl
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/ioctl.go:21:9: undefined: ioctl
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/ioctl.go:30:9: undefined: ioctl
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/ioctl.go:39:9: undefined: ioctl
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/ioctl.go:49:9: undefined: ioctl
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/ioctl.go:61:9: undefined: ioctl
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/syscall_bsd.go:646:10: undefined: mmap
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/syscall_bsd.go:647:10: undefined: munmap
Error: ../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20210817190340-bfb29a6856f2/unix/ioctl.go:61:9: too many errors
note: module requires Go 1.17make: *** [Makefile:44: ci] Error 2
Error: Process completed with exit code 2.
2021-08-18 17:30:01 +02:00
Jakob Unterwurzacher
a7fa91764a
Update dependencies
...
Using
go get -u
go mod tidy
2021-08-18 17:30:01 +02:00
Jakob Unterwurzacher
bc72e58fac
README: update changelog
2021-08-18 16:08:14 +02:00
Jakob Unterwurzacher
64793fedf4
Fix issues found by ineffassign
...
gocryptfs$ ineffassign ./...
/home/jakob/go/src/github.com/rfjakob/gocryptfs/internal/configfile/config_file.go:243:2: ineffectual assignment to scryptHash
/home/jakob/go/src/github.com/rfjakob/gocryptfs/internal/configfile/config_file.go:272:2: ineffectual assignment to scryptHash
/home/jakob/go/src/github.com/rfjakob/gocryptfs/internal/fusefrontend/file.go:285:3: ineffectual assignment to fileID
/home/jakob/go/src/github.com/rfjakob/gocryptfs/internal/fusefrontend/node.go:367:3: ineffectual assignment to err
/home/jakob/go/src/github.com/rfjakob/gocryptfs/internal/fusefrontend/node_open_create.go:68:2: ineffectual assignment to fd
/home/jakob/go/src/github.com/rfjakob/gocryptfs/mount.go:308:2: ineffectual assignment to masterkey
/home/jakob/go/src/github.com/rfjakob/gocryptfs/gocryptfs-xray/xray_main.go:156:13: ineffectual assignment to err
/home/jakob/go/src/github.com/rfjakob/gocryptfs/internal/fusefrontend/prepare_syscall_test.go:65:16: ineffectual assignment to errno
/home/jakob/go/src/github.com/rfjakob/gocryptfs/internal/syscallcompat/open_nofollow_test.go:34:2: ineffectual assignment to fd
/home/jakob/go/src/github.com/rfjakob/gocryptfs/tests/defaults/acl_test.go:111:6: ineffectual assignment to err
/home/jakob/go/src/github.com/rfjakob/gocryptfs/tests/defaults/acl_test.go:181:2: ineffectual assignment to sz
/home/jakob/go/src/github.com/rfjakob/gocryptfs/tests/defaults/acl_test.go:198:2: ineffectual assignment to sz
/home/jakob/go/src/github.com/rfjakob/gocryptfs/tests/defaults/main_test.go:365:8: ineffectual assignment to err
/home/jakob/go/src/github.com/rfjakob/gocryptfs/tests/xattr/xattr_fd_test.go:30:6: ineffectual assignment to err
/home/jakob/go/src/github.com/rfjakob/gocryptfs/tests/xattr/xattr_fd_test.go:66:6: ineffectual assignment to err
2021-08-18 15:48:01 +02:00
Jakob Unterwurzacher
dc52e32151
MANPAGE: add "exclude all but" example
...
Fixes https://github.com/rfjakob/gocryptfs/issues/588
2021-08-18 11:39:01 +02:00
Jakob Unterwurzacher
0bc9784508
reverse: fix "exclude all but" case
...
With test.
Fixes https://github.com/rfjakob/gocryptfs/issues/588
2021-08-18 11:38:56 +02:00
Jakob Unterwurzacher
3df1c62430
tests/reverse/TestExcludeTestFs: test trailing slash
2021-08-18 11:04:56 +02:00
Jakob Unterwurzacher
884398eec3
tests/reverse/TestExcludeTestFs: improve comments & code style
...
No functional changes.
2021-08-18 11:04:40 +02:00
Jakob Unterwurzacher
022c169c39
MANPAGE: -ew: make gitignore syntax more prominent
...
https://github.com/rfjakob/gocryptfs/issues/588
2021-08-18 10:37:53 +02:00
Jakob Unterwurzacher
b8ddc49ede
tests/cli/TestBadname: make sure case 5 is never decodable
...
Sometimes, by chance, case 5 resulted in valid decrypted data:
--- FAIL: TestBadname (0.08s)
cli_test.go:885: Case 5 failed: "J7Rbo1BvfXojpBEr0Qrt_invalid_file GOCRYPTFS_BAD_NAME" in ["file GOCRYPTFS_BAD_NAME,\x9e$O\xc3j\x8c\xd0\x06\x01#\f%k\x02\xcanvalid_file GOCRYPTFS_BAD_NAME,mzaZRF9_0IU-_5vv2wPC_invalid_file GOCRYPTFS_BAD_NAME,file,file_invalid_file GOCRYPTFS_BAD_NAME,mzaZRF9_0IU-_5vv2wP_invalid_file GOCRYPTFS_BAD_NAME"]
Add percent signs so base64 decoding always fails.
Fixes https://github.com/rfjakob/gocryptfs/runs/3347883728
2021-08-17 15:17:36 +02:00
Jakob Unterwurzacher
8d5b4c5177
github actions ci: test different Go versions
2021-08-17 09:08:26 +02:00
Jakob Unterwurzacher
eeb267950a
tests/reverse: replace os.ReadDir to support older Go versions
2021-08-16 22:05:33 +02:00
Jakob Unterwurzacher
e2d3834b1c
tests/root_test: show failing command detail
...
https://github.com/kdave/btrfs-progs/issues/392
2021-08-16 19:24:04 +02:00
Jakob Unterwurzacher
b2724070d9
reverse mode: implement -one-file-system
...
Fixes https://github.com/rfjakob/gocryptfs/issues/475
2021-08-16 19:23:58 +02:00
Jakob Unterwurzacher
ad4b99170b
tests/cli: escape filenames in TestBadname logs
...
I just got this message (not reproducible) with unescaped
binary garbage.
UnmountErr: "/var/tmp/gocryptfs-test-parent-1026/114471933/TestMountBackground.899727687.mnt" was not found in MountInfo, cannot check for FD leaks
UnmountErr: "/var/tmp/gocryptfs-test-parent-1026/114471933/TestConfigPipe.212912444.mnt" was not found in MountInfo, cannot check for FD leaks
DecryptName "mzaZRF9_0IU-_5vv2wPC_i": unPad16 error: Padding too long, padLen=49 > 16
OpenDir ".": invalid entry "KqQ346cuOAFHv_qSta5PhAwrongPattern": bad message
DecryptName "mzaZRF9_0IU-_5vv2wP_in": unPad16 error: Padding byte at i=10 is invalid
--- FAIL: TestBadname (0.11s)
cli_test.go:885: Case 5 failed: 'KqQ346cuOAFHv_qSta5P_invalid_file GOCRYPTFS_BAD_NAME' in [file_invalid_file GOCRYPTFS_BAD_NAME,file,mzaZRF9_0IU-_5vv2wPC_invalid_file GOCRYPTFS_BAD_NAME,file GOCRYPTFS_BAD_NAME,�*A���y���Gfnvalid_file GOCRYPTFS_BAD_NAME,mzaZRF9_0IU-_5vv2wP_invalid_file GOCRYPTFS_BAD_NAME]
Invalid cipherdir: directory /var/tmp/gocryptfs-test-parent-1026/114471933/TestInitNotEmpty not empty
FAIL
FAIL github.com/rfjakob/gocryptfs/tests/cli 4.817s
2021-08-16 17:15:07 +02:00
Jakob Unterwurzacher
763499ee80
inomap: update outdated wording in comments
2021-08-16 17:14:14 +02:00
Jakob Unterwurzacher
b8d78d6a31
inomap: warn on first use of spillMap
...
We normally should not need it, warn if we do.
As the tests run with -wpanic, we would catch it.
2021-08-16 17:13:14 +02:00
Jakob Unterwurzacher
dd24fed532
Makefile: add uninstall target
2021-08-13 10:41:48 +02:00
Jakob Unterwurzacher
9a8dfd98ef
main: accept magic /dev/fd/ mountpoint
...
https://github.com/rfjakob/gocryptfs/issues/590
2021-08-12 19:19:50 +02:00
Jakob Unterwurzacher
831e225616
syscallcompat: use BTRFS_SUPER_MAGIC from unix lib
2021-08-11 20:28:20 +02:00
Jakob Unterwurzacher
4e7efb1dff
Makefile: don't ever run "git clean -dxff"
...
"make ci" almost made me lose the new quirks files.
Let's not do that anymore.
2021-08-11 20:23:46 +02:00
Jakob Unterwurzacher
2d386fc92e
syscallcompat: move quirks logic here & fix darwin
...
We need to look at f_fstypename acc. to
https://stackoverflow.com/a/52299141/1380267 :
> As filesystem type numbers are now assigned at runtime in
> recent versions of MacOS, you must use f_fstypename to
> determine the type.
https://github.com/rfjakob/gocryptfs/issues/585
2021-08-11 20:23:35 +02:00
Jakob Unterwurzacher
0c16616117
main: add testcases for convertToDoubleDash & parseCliOpts
2021-08-10 19:42:33 +02:00
Jakob Unterwurzacher
463f6e8962
main: take advantage of pflag slice types
...
Our multipleStrings type is now built in.
2021-08-10 19:09:58 +02:00
Jakob Unterwurzacher
88f5e8d76e
main: show specific error on command line parse failure
2021-08-10 19:09:12 +02:00
Jakob Unterwurzacher
527e72bf80
main: autoformat import block
...
The autoformatter now always wants to move the ensurefds012
import into the import block. Accept it and fix the spelling
of "alphabetically".
2021-08-10 18:28:27 +02:00
Jakob Unterwurzacher
f53f52b046
main: switch from flag to pflag
...
Need support for flags at any position for
https://github.com/rfjakob/gocryptfs/issues/590
2021-08-10 18:24:35 +02:00
Jakob Unterwurzacher
8c9a1c1121
main: push TestPrefixOArgs testcase struct into TestPrefixOArgs
...
No need to have it declared globally.
2021-08-10 09:33:19 +02:00
Jakob Unterwurzacher
c3c9513e65
fusefrontend: add quirks for MacOS ExFAT
...
This also moves the quirks logic into fusefrontend.
Fixes https://github.com/rfjakob/gocryptfs/issues/585
2021-08-02 20:01:26 +02:00
Jakob Unterwurzacher
75cf36fe7b
go mod: upgrade go-fuse
...
Let's not crash anymore when we see inode number 1
( 0aaef6dde4
)
https://github.com/rfjakob/gocryptfs/issues/585
2021-08-02 19:16:53 +02:00
Jakob Unterwurzacher
c6b0c777a1
README: Update Changelog
2021-07-31 17:48:44 +02:00
Jakob Unterwurzacher
1bc1db620b
fusefrontend: -sharedstorage: present stable inode numbers
...
Use the Gen field (inode generation) to distinguish hard links
while passing the real inode numbers to userspace.
Fixes https://github.com/rfjakob/gocryptfs/issues/584
2021-07-31 13:24:25 +02:00
Jakob Unterwurzacher
eecbcbb090
tests: matrix: add TestPwd
...
https://github.com/rfjakob/gocryptfs/issues/584
2021-07-31 13:23:05 +02:00
Jakob Unterwurzacher
1dfd6b7b76
fusefrontend: prepareAtSyscall: handle error when opening ourselves
...
Error handling was missing here, so we would later get confusing
EBADF errors due to dirfd being -1.
2021-07-31 10:53:32 +02:00
Jakob Unterwurzacher
0ca302f12a
fusefrontend: implement fsync on directories
...
Fixes https://github.com/rfjakob/gocryptfs/issues/587
2021-07-29 20:39:50 +02:00
Jakob Unterwurzacher
e83b79b4c2
fido2: actually drop -v
flag
...
Commit 2a9d70d48f
only
dropped the flag on mount but not on `-init`.
Also drop it on `-init`.
Fixes https://github.com/rfjakob/gocryptfs/issues/571 (part II)
2021-07-29 12:47:40 +02:00
Jakob Unterwurzacher
51bddd826e
go mod: set version to 1.16 & drop explicit "-mod=vendor" from ci
...
This makes "go build" automatically use the vendor
directory, if present.
See https://golang.org/doc/modules/gomod-ref#go for details.
Up to now, we ignored the vendor dir completely!
Fixes https://github.com/rfjakob/gocryptfs/issues/581
2021-07-29 12:36:53 +02:00
Jakob Unterwurzacher
6f0ed4b8c4
github ci: Add Github Actions CI
...
Add Github Actions and delete defunct Travis CI.
2021-07-29 12:36:05 +02:00
Jakob Unterwurzacher
db81614cd6
canonical-benchmarks.bash: handle relative paths
...
Passing a relative path was broken because we cd'ed
away first.
2021-06-27 11:48:41 +02:00
Jakob Unterwurzacher
2a9d70d48f
fido2: drop -v
option (PIN request)
...
We used to pass `-v` on `gocryptfs -init` but not for
mount, which seems strange by itself, but more importantly,
`-v` does not work on Yubikeys.
Drop `-v`.
Fixes https://github.com/rfjakob/gocryptfs/issues/571
2021-06-27 11:17:29 +02:00
Jakob Unterwurzacher
d6c8d892ff
fido2: pretty-print fidoCommand in debug output
...
Related: https://github.com/rfjakob/gocryptfs/issues/571
2021-06-27 11:12:40 +02:00
Jakob Unterwurzacher
fe616ddad5
doc: update performance.txt
2021-06-26 20:57:39 +02:00
Jakob Unterwurzacher
49507ea869
tests/fsck: delete obsolete script run_fsck.bash
...
Not called by anybody.
2021-06-26 19:27:58 +02:00
Jakob Unterwurzacher
ad3eeaedc5
tests, maxlen.bash: speed up TestMaxlen using QUICK=1
...
From >6 to <1 second.
2021-06-26 19:13:24 +02:00
Jakob Unterwurzacher
446c3d7e93
tests: matrix: show content detail on mismatch
2021-06-26 18:58:29 +02:00
Jakob Unterwurzacher
4fd95b718b
fusefrontend: delete openBackingDir
2021-06-26 18:49:54 +02:00
Jakob Unterwurzacher
5306fc345b
fusefrontend: convert last callers from openBackingDir to prepareAtSyscall
2021-06-26 18:49:54 +02:00