<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/cryptfs/names_diriv.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>2016-02-06T18:22:35+00:00</updated>
<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>
<entry>
<title>Rename DirIVCacheEnc to just DirIVCache</title>
<updated>2016-02-06T11:27:55+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2016-02-06T11:27:09+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=adcfbd79a8b8bb85cbee25996ab622a05de0dbc1'/>
<id>urn:sha1:adcfbd79a8b8bb85cbee25996ab622a05de0dbc1</id>
<content type='text'>
...and unexport dirIVCache
</content>
</entry>
<entry>
<title>Convert fdLock to an RWMutex and protect the whole transaction</title>
<updated>2016-01-24T23:51:28+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2016-01-24T23:51:28+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=4c9e249e3ac1fc2995e01eb1ed24799c3a3bc66b'/>
<id>urn:sha1:4c9e249e3ac1fc2995e01eb1ed24799c3a3bc66b</id>
<content type='text'>
...against concurrent closes.

The testcase

	(set -e; while true; do truncate -s $RANDOM b; done) &amp;
	(set -e; while true; do truncate -s $RANDOM b; done) &amp;

uncovered lots of unnecessary RMW failures that were the result
of concurrent closes.

With this patch, the only remaining error is "Truncate on forgotten file"
that is probably caused by a problem in the go-fuse lib
( https://github.com/hanwen/go-fuse/issues/95 )
</content>
</entry>
<entry>
<title>Downgrade "gocryptfs.diriv not found" warning if the directory was deleted</title>
<updated>2016-01-24T18:40:53+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2016-01-24T18:40:53+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=8fb32aab683959ca8aefac55090dbfa39f827682'/>
<id>urn:sha1:8fb32aab683959ca8aefac55090dbfa39f827682</id>
<content type='text'>
The directory may have been concurrently deleted or moved. Failure to
read the diriv is not an error in that case.

Downgrading the message to debug.
</content>
</entry>
<entry>
<title>Add EME filename encryption &amp; enable it by default</title>
<updated>2015-12-08T15:17:04+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2015-12-08T15:13:29+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=c6dacd6f913b4c6eb7a8917af49190dce32db108'/>
<id>urn:sha1:c6dacd6f913b4c6eb7a8917af49190dce32db108</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fallocate the space needed for the file header beforehand</title>
<updated>2015-12-06T14:05:52+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2015-12-06T14:05:52+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=56888d83dd50a10bad56eaa512ce0b6a2f2d41ed'/>
<id>urn:sha1:56888d83dd50a10bad56eaa512ce0b6a2f2d41ed</id>
<content type='text'>
This makes sure writing to a file fails early if the underlying
filesystem does not support fallocate. It also prevents partial header
write due to ENOSPC.
</content>
</entry>
<entry>
<title>Run go fmt</title>
<updated>2015-11-29T20:55:20+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2015-11-29T20:55:20+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ce42a6f23d9fd50ddf2e66a68e6ec57cad80c018'/>
<id>urn:sha1:ce42a6f23d9fd50ddf2e66a68e6ec57cad80c018</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add single-element cache for DirIV lookup</title>
<updated>2015-11-29T20:41:38+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2015-11-29T20:41:38+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=20b058a33335f48812864513cc13ea0a276aaaa3'/>
<id>urn:sha1:20b058a33335f48812864513cc13ea0a276aaaa3</id>
<content type='text'>
Another 3x performance boost for applications that walk the
directory tree.

Excerpt from performance.txt:

VERSION         UNTAR    LS     RM
v0.4               48     1.5    5
v0.5-rc1           56     7     19
v0.5-rc1-1         54     4.1    9
v0.5-rc1-2         45     1.7	 3.4  &lt;---- THIS VERSION
</content>
</entry>
<entry>
<title>OpenDir performance: Read DirIV once and reuse it for all names</title>
<updated>2015-11-29T19:03:37+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2015-11-29T18:57:48+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=1d0a442405e8fc7a0742a8f8db2ea0f874f750a5'/>
<id>urn:sha1:1d0a442405e8fc7a0742a8f8db2ea0f874f750a5</id>
<content type='text'>
Formerly, we called decryptPath for every name.
That resulted in a directory walk that reads in all diriv files
on the way.

Massive improvement for RM and LS (check performance.txt for details)

VERSION         UNTAR   RM   LS
v0.4               48    5    1.5
v0.5-rc1           56   19    7
v0.5-rc1-1         54    9    4.1   &lt;---- THIS VERSION
</content>
</entry>
<entry>
<title>diriv: fix readdir</title>
<updated>2015-11-28T17:39:45+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2015-11-27T23:07:03+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=3b2143bafc8daeb3a5e77b611b5b5d2060bbdfbe'/>
<id>urn:sha1:3b2143bafc8daeb3a5e77b611b5b5d2060bbdfbe</id>
<content type='text'>
It decrypted all file names using the root directory iv
</content>
</entry>
</feed>
