aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
27 hourstests: example_filesystems: more detailed errorsfreebsd-supportJakob Unterwurzacher
27 hoursfreebsd: stub xattr functionsJakob Unterwurzacher
/proc/PID/fd does not exist on freebsd.
27 hourstests: only add -wpanic on linuxJakob Unterwurzacher
9 daysFreebsd-support: Fix go vet "undefined" fixes when running make ciAnkush Patel
9 daysFreebsd-support: Change bash shebang to use /usr/bin/envAnkush Patel
12 daysMerge branch 'master' into freebsd-supportAnkush Patel
12 daysAdded basic support for FreeBSD.Ankush Patel
2026-02-10Fix issue with reverse mode and excluded virtual filesHEADmasterm4rc0d1
This fixes #686. Now the `gocryptfs.longname.*.name` are present and readable in the reverse mount, regardless of the complexity of the exclusion patterns. The main issue was a `cPath` instead of `dPath` for the exclude check in `fusefrontend_reverse/node_helpers.go`. Also added a check to avoid the exclusion of `gocryptfs.conf` in the root directory. The test run results are in line with the main branch. Fixes https://github.com/rfjakob/gocryptfs/issues/686
2026-02-10enable falloc on btrfs if CoW is disabledJared Van Bortel
2026-02-10syscallcompat: delete accidentially-commited debug outputJakob Unterwurzacher
Fixes: ab4c0446d3db0665fc2e9a05c0319541d21811eb
2026-02-10reverse: return ENOTTR when xattr name is not decryptableJakob Unterwurzacher
2026-02-09fusefrontend: convert mangleOpenFlags method to a functionJakob Unterwurzacher
No need to attach it to the root node. Also rename it to mangleOpenCreateFlags.
2026-02-09darwin: syscallcompat: Openat: use O_SYMLINKJakob Unterwurzacher
Also add tests that opening a symlink (using unix.O_PATH | unix.O_NOFOLLOW) works. https://github.com/rfjakob/gocryptfs/issues/993
2026-02-09darwin: fusefrontend: use O_SYMLINK for get,set,remove,listxattrJakob Unterwurzacher
With O_NOFOLLOW we error out with ELOOP when the user tries to manipulate symlinks. https://github.com/rfjakob/gocryptfs/issues/993
2026-02-08tests/reverse: add TestXattrGetMountpointJakob Unterwurzacher
Fails right now: gocryptfs/tests/reverse$ go test -run TestXattrGetMountpoint --- FAIL: TestXattrGetMountpoint (0.00s) xattr_test.go:78: LGet: xattr.get /var/tmp/gocryptfs-test-parent-1026/3269496664/x.3903415542.mnt user.foo453465324: invalid argument xattr_test.go:82: LList: err=<nil> FAIL testcases[0] = struct { plaintextnames bool; deterministic_names bool }{plaintextnames:false, deterministic_names:false} failed exit status 1 FAIL github.com/rfjakob/gocryptfs/v2/tests/reverse 0.091s
2026-02-08Add profiling/tinyfiles.bashJakob Unterwurzacher
https://github.com/rfjakob/gocryptfs/issues/965
2026-02-03performance.txt: add latest numbersJakob Unterwurzacher
Much better
2026-02-03syscallcompat: Listxattr: smart buffer sizingJakob Unterwurzacher
2026-02-03performance.txt: add latest numbersJakob Unterwurzacher
2026-02-03go.mod: bump go-fuse to v2.9.0Jakob Unterwurzacher
2026-02-03performance.txt: fill in missing versionsJakob Unterwurzacher
The LS numbers regressed quite a bit
2026-02-01syscallcompat: DetectQuirks: unbreak darwinJakob Unterwurzacher
Error: internal/syscallcompat/quirks_darwin.go:36:3: undefined: logQuirk
2026-02-01syscallcompat: DetectQuirks: suppress Btrfs message when -noprealloc has ↵Jakob Unterwurzacher
been passed Reported by @Tunoac, https://github.com/rfjakob/gocryptfs/issues/395#issuecomment-3828507487
2026-01-29go.mod: bump emeJakob Unterwurzacher
2026-01-24macos: normalize unicode file names in forward mode (#992)rfjakob
Summary: Store as NFC, read as NFD. This commit resolves https://github.com/rfjakob/gocryptfs/issues/850 by addressing Unicode normalization mismatches on macOS between NFC (used by CLI tools) and NFD (used by GUI apps). The solution is inspired by Cryptomator's approach ( https://github.com/cryptomator/cryptomator/issues/264 ). Forward mode on MacOS now enforces NFC for storage but presents NFD as recommended by https://developer.apple.com/library/archive/qa/qa1173/_index.html and https://github.com/macfuse/macfuse/wiki/File-Names-(Unicode-Normalization-Forms) . See https://github.com/rfjakob/gocryptfs/pull/949 for more info. This commit does nothing for reverse mode as it is not clear if anything can be done. Reverse mode can not influence how the file names are stored, hence mapping normalized names back to what is actually on disk seems difficult.
2026-01-18added -noxattr flag which ignores all xattr operations (#987)Jarek Kowalski
* added -noxattr flag which ignores all xattr operations
2026-01-07Update hkdf.goDMyachin
Use hkdf from stable api instead of eXperimental
2025-12-15build(deps): bump actions/checkout from 5 to 6dependabot[bot]
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15build(deps): bump actions/upload-artifact from 5 to 6dependabot[bot]
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15bump golang.org/x/crypto from 0.33.0 to 0.45.0niloptslinaseu
2025-12-15github ci: drop older Go versionsJakob Unterwurzacher
This has become untenable as the golang.org/x packages started bumping their go.mod go directive automatically: https://github.com/golang/go/issues/69095 https://go.googlesource.com/proposal/+/HEAD/design/69095-x-repo-continuous-go.md
2025-12-14Drop deprecated rand.Seed callsJakob Unterwurzacher
$ staticcheck --version staticcheck 2025.1.1 (0.6.1) $ staticcheck ./... contrib/findholes/holes/holes.go:179:2: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (SA1019) tests/defaults/acl_test.go:24:2: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (SA1019) tests/plaintextnames/file_holes_test.go:143:2: rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator. (SA1019)
2025-12-14Fix go vet 1.25.4 "non-constant format string" issuesJakob Unterwurzacher
$ go version go version go1.25.4 linux/amd64 $ go vet ./... ./init_dir.go:71:21: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf ./main.go:123:19: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf ./masterkey.go:29:20: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf ./masterkey.go:56:20: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf ./mount.go:415:20: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf internal/tlog/log.go:76:18: non-constant format string in call to (*log.Logger).Printf internal/syscallcompat/quirks.go:19:19: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf
2025-11-29quirks: drop tmpfs xattr quirkJakob Unterwurzacher
tmpfs supports user xattrs since Linux 6.6 (anno 2023): https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2daf18a7884dc03d5164ab9c7dc3f2ea70638469
2025-11-22reverse: fix TestXattrList failureJakob Unterwurzacher
On my Fedora I used to get this failure: --- FAIL: TestXattrList (0.00s) xattr_test.go:52: wrong number of names, want=20 have=21 xattr_test.go:58: mismatch on attr "security.selinux": valA = "", valC = "xxxxxxxxyyyyyyyyyyyyyyyzzzzzzzzzzzzz" First step is to print the actual value using xattr.LGet. This improves the error message to this: --- FAIL: TestXattrList (0.00s) xattr_test.go:53: wrong number of names, want=20 have=21 xattr_test.go:59: mismatch on attr "security.selinux": valA = "", valC = "system_u:object_r:fusefs_t:s0\x00" 2nd step is to ignore "security." attribs as we have no control over them.
2025-11-22Xattrs support in reverse modeAleksey Vasenev
Fixes https://github.com/rfjakob/gocryptfs/issues/827
2025-11-11github ci: document why "mount_max = 10000" is neededJakob Unterwurzacher
https://github.com/libfuse/libfuse/commit/bf3dd153fbfcd610d799562490f6555b9d708905
2025-11-04build(deps): bump actions/upload-artifact from 4 to 5dependabot[bot]
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08update link to gocryptfs-create-folderLars Quentin
2025-10-02fusefrontend: Mkdir: Stat after fixing permissionsJakob Unterwurzacher
Fixes https://github.com/rfjakob/gocryptfs/issues/964
2025-10-02tests: matrix: add Test555DirJakob Unterwurzacher
--- FAIL: Test555Dir (0.00s) dir_test.go:90: wrong mode. want 0555 have 0755 FAIL TestMain: matrix[0] = matrix.testcaseMatrix{plaintextnames:false, openssl:"auto", aessiv:false, raw64:false, extraArgs:[]string(nil)} failed FAIL github.com/rfjakob/gocryptfs/v2/tests/matrix 2.109s https://github.com/rfjakob/gocryptfs/issues/964
2025-09-16build(deps): bump actions/setup-go from 5 to 6dependabot[bot]
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5 to 6. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16build(deps): bump actions/checkout from 4 to 5dependabot[bot]
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-08-10README: update changelog for v2.6.1v2.6.1Jakob Unterwurzacher
2025-08-07tests: matrix: use unique ctlsock pathJakob Unterwurzacher
Because the deletion happens asynchronously, a previous iteration can delete the socket of the next one.
2025-08-07tests: matrix: add TestRenameExchangeOnGocryptfsrafjaf
Added testing for RENAME_EXCHANGE https://github.com/rfjakob/gocryptfs/issues/914
2025-08-07darwin: syscallcompat: add RenameatxNp plus flagsrafjaf
Fix macos file saving problem by implementing RENAME_EXCHANGE flag. With test. The dummy value for RENAME_WHITEOUT collides with the new flags. Move it wayyy up. https://github.com/rfjakob/gocryptfs/issues/914
2025-08-07build scripts: use CGO_ENABLED=0 to disable opensslJakob Unterwurzacher
2025-08-07stupidgcm: make build tags consistentJakob Unterwurzacher
This makes building with just CGO_ENABLED=0 work.
2025-08-07stupidcgm: explain what xchacha.go isJakob Unterwurzacher