<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/cryptocore/nonce.go, branch xattr_user_buffer</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=xattr_user_buffer</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=xattr_user_buffer'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2025-08-03T19:25:24+00:00</updated>
<entry>
<title>cryptocore: add note about crypto/rand.Read errors</title>
<updated>2025-08-03T19:25:24+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-08-03T11:40:49+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ae23a04951780377a7d7ede6af476eaee9efa49e'/>
<id>urn:sha1:ae23a04951780377a7d7ede6af476eaee9efa49e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cryptocore: prefetch nonces in 512-byte blocks</title>
<updated>2017-06-09T20:05:14+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-09T19:52:26+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=80516ed3351477793eec882508969b6b29b69b0a'/>
<id>urn:sha1:80516ed3351477793eec882508969b6b29b69b0a</id>
<content type='text'>
On my machine, reading 512-byte blocks from /dev/urandom
(same via getentropy syscall) is a lot faster in terms of
throughput:

Blocksize    Throughput
 16          28.18 MB/s
512          83.75 MB/s

For a single-threaded streaming write, this drops the CPU usage of
nonceGenerator.Get to almost 1/3:

        flat  flat%   sum%        cum   cum%
Before     0     0% 95.08%      0.35s  2.92%  github.com/rfjakob/gocryptfs/internal/cryptocore.(*nonceGenerator).Get
After  0.01s 0.092% 92.34%      0.13s  1.20%  github.com/rfjakob/gocryptfs/internal/cryptocore.(*nonceGenerator).Get

This change makes the nonce reading single-threaded, which may
hurt massively-parallel writes.
</content>
</entry>
<entry>
<title>cryptocore: remove lastNonce check</title>
<updated>2017-06-07T21:08:43+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-07T21:08:43+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=d2be22a07f32d5c41223419314c9fb6b8ad2ab42'/>
<id>urn:sha1:d2be22a07f32d5c41223419314c9fb6b8ad2ab42</id>
<content type='text'>
This check would need locking to be multithreading-safe.
But as it is in the fastpath, just remove it.
rand.Read() already guarantees that the value is random.
</content>
</entry>
<entry>
<title>Replace all calls to naked panic() with log.Panic()</title>
<updated>2016-12-10T10:54:36+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2016-12-10T10:50:16+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=c9f4400e6dc71a36df5dc9725f52a8968f5f9803'/>
<id>urn:sha1:c9f4400e6dc71a36df5dc9725f52a8968f5f9803</id>
<content type='text'>
We want all panics to show up in the syslog.
</content>
</entry>
<entry>
<title>lint fixes</title>
<updated>2016-10-04T21:18:33+00:00</updated>
<author>
<name>Valient Gough</name>
</author>
<published>2016-10-02T04:14:18+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b764917cd5c1b1d61b8ce08e7af0b29793fbbb80'/>
<id>urn:sha1:b764917cd5c1b1d61b8ce08e7af0b29793fbbb80</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename internal "toggledlog" package to "tlog"</title>
<updated>2016-06-15T21:30:44+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2016-06-15T21:30:44+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=6c3f97399a01a2d8480b39978209099335efbf7d'/>
<id>urn:sha1:6c3f97399a01a2d8480b39978209099335efbf7d</id>
<content type='text'>
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' {} +
</content>
</entry>
<entry>
<title>Major refactoring: Split up "cryptfs" into several internal packages</title>
<updated>2016-02-06T18:22:35+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2016-02-06T18:20:54+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=2b8cbd944149afe51fadddbd67ee4499d1d86250'/>
<id>urn:sha1:2b8cbd944149afe51fadddbd67ee4499d1d86250</id>
<content type='text'>
"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 -&gt; internal/configfile/config_file.go
renamed:    cryptfs/config_test.go -&gt; internal/configfile/config_test.go
renamed:    cryptfs/config_test/.gitignore -&gt; internal/configfile/config_test/.gitignore
renamed:    cryptfs/config_test/PlaintextNames.conf -&gt; internal/configfile/config_test/PlaintextNames.conf
renamed:    cryptfs/config_test/StrangeFeature.conf -&gt; internal/configfile/config_test/StrangeFeature.conf
renamed:    cryptfs/config_test/v1.conf -&gt; internal/configfile/config_test/v1.conf
renamed:    cryptfs/config_test/v2.conf -&gt; internal/configfile/config_test/v2.conf
renamed:    cryptfs/kdf.go -&gt; internal/configfile/kdf.go
renamed:    cryptfs/kdf_test.go -&gt; internal/configfile/kdf_test.go
renamed:    cryptfs/cryptfs_content.go -&gt; internal/contentenc/content.go
new file:   internal/contentenc/content_api.go
renamed:    cryptfs/content_test.go -&gt; internal/contentenc/content_test.go
renamed:    cryptfs/file_header.go -&gt; internal/contentenc/file_header.go
renamed:    cryptfs/intrablock.go -&gt; internal/contentenc/intrablock.go
renamed:    cryptfs/address_translation.go -&gt; internal/contentenc/offsets.go
new file:   internal/cryptocore/crypto_api.go
renamed:    cryptfs/gcm_go1.4.go -&gt; internal/cryptocore/gcm_go1.4.go
renamed:    cryptfs/gcm_go1.5.go -&gt; internal/cryptocore/gcm_go1.5.go
renamed:    cryptfs/nonce.go -&gt; internal/cryptocore/nonce.go
renamed:    cryptfs/openssl_aead.go -&gt; internal/cryptocore/openssl_aead.go
renamed:    cryptfs/openssl_benchmark.bash -&gt; internal/cryptocore/openssl_benchmark.bash
renamed:    cryptfs/openssl_test.go -&gt; internal/cryptocore/openssl_test.go
new file:   internal/nametransform/name_api.go
new file:   internal/nametransform/names_core.go
renamed:    cryptfs/names_diriv.go -&gt; internal/nametransform/names_diriv.go
renamed:    cryptfs/names_noiv.go -&gt; internal/nametransform/names_noiv.go
renamed:    cryptfs/names_test.go -&gt; internal/nametransform/names_test.go
new file:   internal/nametransform/pad16.go
renamed:    cryptfs/log.go -&gt; internal/toggledlog/log.go
renamed:    cryptfs/log_go1.4.go -&gt; internal/toggledlog/log_go1.4.go
renamed:    cryptfs/log_go1.5.go -&gt; 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
</content>
</entry>
</feed>
