<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/nametransform/names.go, branch LockSharedStorage_rebase2</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=LockSharedStorage_rebase2</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=LockSharedStorage_rebase2'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2026-01-24T19:12:18+00:00</updated>
<entry>
<title>macos: normalize unicode file names in forward mode (#992)</title>
<updated>2026-01-24T19:12:18+00:00</updated>
<author>
<name>rfjakob</name>
</author>
<published>2026-01-24T19:12:18+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=5185e92ec80a9998ae00cb799dfdfbb93247dfaf'/>
<id>urn:sha1:5185e92ec80a9998ae00cb799dfdfbb93247dfaf</id>
<content type='text'>
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.</content>
</entry>
<entry>
<title>nametransform: reject non-canonical base64</title>
<updated>2023-09-15T20:29:07+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-07-21T17:31:38+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=7fff33a1e2560c8f4eb1f477c1e220eeb14291ab'/>
<id>urn:sha1:7fff33a1e2560c8f4eb1f477c1e220eeb14291ab</id>
<content type='text'>
The test added in the earlier commit passes with this
change.
</content>
</entry>
<entry>
<title>make format</title>
<updated>2022-08-28T09:11:36+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2022-08-28T09:11:36+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=003a7fa2e53ac15d2c94a34102ae12b69b23c586'/>
<id>urn:sha1:003a7fa2e53ac15d2c94a34102ae12b69b23c586</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add comment to pass Codacy Static Code Analysis</title>
<updated>2022-08-28T09:09:06+00:00</updated>
<author>
<name>NekoGirlSAIKOU</name>
</author>
<published>2022-04-25T13:27:08+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=4808adc761783e93d6b6d91a9ed4727089f66688'/>
<id>urn:sha1:4808adc761783e93d6b6d91a9ed4727089f66688</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix invalid -longnamemax for reverse mode</title>
<updated>2022-08-28T09:09:01+00:00</updated>
<author>
<name>NekoGirlSAIKOU</name>
</author>
<published>2022-04-24T17:35:30+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=1bff80b46cf3cdd2d6934ebf905fca96dde7af97'/>
<id>urn:sha1:1bff80b46cf3cdd2d6934ebf905fca96dde7af97</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fusefrontend: allow slashes in xattr names</title>
<updated>2021-12-19T13:43:56+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-12-19T13:43:56+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=64be5de75f42e415198ff5e77de509680b69e0e1'/>
<id>urn:sha1:64be5de75f42e415198ff5e77de509680b69e0e1</id>
<content type='text'>
xattr names have fewer restrictions than file names,
relax the validation.

Fixes https://github.com/rfjakob/gocryptfs/issues/627
</content>
</entry>
<entry>
<title>nametransform: fix math.MaxInt build failure on older Go</title>
<updated>2021-10-21T14:44:05+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-10-21T14:42:00+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=87a6bb370acc3690e89a8b0d5109fcb0dab0a374'/>
<id>urn:sha1:87a6bb370acc3690e89a8b0d5109fcb0dab0a374</id>
<content type='text'>
Failure is:

  # github.com/rfjakob/gocryptfs/v2/internal/nametransform
  internal/nametransform/names.go:47:33: undefined: math.MaxInt

math.MaxInt was only introduced in Go 1.17. Use MaxInt32 instead,
which is good enough, even on amd64. It only has to be larger than
any name we might encounter.
</content>
</entry>
<entry>
<title>nametransform: add longNameMax parameter</title>
<updated>2021-10-21T12:55:30+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-10-21T07:37:04+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=dc32710045f6f46913ae336b6fb77bf90b6bdb85'/>
<id>urn:sha1:dc32710045f6f46913ae336b6fb77bf90b6bdb85</id>
<content type='text'>
Determines when to start hashing long names instead
of hardcoded 255. Will be used to alleviate "name too long"
issues some users see on cloud storage.

https://github.com/rfjakob/gocryptfs/issues/499
</content>
</entry>
<entry>
<title>go mod: declare module version v2</title>
<updated>2021-08-23T13:05:15+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-23T13:05:15+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=69d88505fd7f4cb0d9e4f1918de296342fe05858'/>
<id>urn:sha1:69d88505fd7f4cb0d9e4f1918de296342fe05858</id>
<content type='text'>
Our git version is v2+ for some time now, but go.mod
still declared v1. Hopefully making both match makes
https://pkg.go.dev/github.com/rfjakob/gocryptfs/v2 work.

All the import paths have been fixed like this:

  find . -name \*.go | xargs sed -i s%github.com/rfjakob/gocryptfs/%github.com/rfjakob/gocryptfs/v2/%
</content>
</entry>
<entry>
<title>Implement -deterministic-names: extended -zerodiriv</title>
<updated>2021-08-20T08:58:42+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-20T08:57:26+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=195d9d18a90d88ff2cb0530d832c59d98934fd1f'/>
<id>urn:sha1:195d9d18a90d88ff2cb0530d832c59d98934fd1f</id>
<content type='text'>
-deterministc-names uses all-zero dirivs but does not write
them to disk anymore.
</content>
</entry>
</feed>
