<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal, branch v1.4</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2017-06-18T13:43:22+00:00</updated>
<entry>
<title>main, syscallcompat: use Dup3 instead of Dup2</title>
<updated>2017-06-18T13:43:22+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-18T13:40:38+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a4563e21ecaf7d2acce64212c96de69707d6f0bb'/>
<id>urn:sha1:a4563e21ecaf7d2acce64212c96de69707d6f0bb</id>
<content type='text'>
Dup2 is not implemented on linux/arm64.

Fixes https://github.com/rfjakob/gocryptfs/issues/121 .

Also adds cross-compilation to CI.
</content>
</entry>
<entry>
<title>contentenc: parallelize encryption for 128kiB writes</title>
<updated>2017-06-11T19:56:16+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-11T11:34:46+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e52594dae67a5f2532a2e65abaafc8c993fb2db4'/>
<id>urn:sha1:e52594dae67a5f2532a2e65abaafc8c993fb2db4</id>
<content type='text'>
128kiB = 32 x 4kiB pages is the maximum we get from the kernel. Splitting
up smaller writes is probably not worth it.

Parallelism is limited to two for now.
</content>
</entry>
<entry>
<title>cryptocore: prefetch nonces in the background</title>
<updated>2017-06-11T19:29:50+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-11T17:56:59+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=9837cb0ddc5c38af9916a2a6a580092caf952e59'/>
<id>urn:sha1:9837cb0ddc5c38af9916a2a6a580092caf952e59</id>
<content type='text'>
Spawn a worker goroutine that reads the next 512-byte block
while the current one is being drained.

This should help reduce waiting times when /dev/urandom is very
slow (like on Linux 3.16 kernels).
</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>Fix missing Owner coercion for already-open files (#117)</title>
<updated>2017-06-09T20:04:56+00:00</updated>
<author>
<name>Charles Duffy</name>
</author>
<published>2017-06-09T19:37:30+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=da1bd742461e397abefc814bb0c0a21a6d8ec3d6'/>
<id>urn:sha1:da1bd742461e397abefc814bb0c0a21a6d8ec3d6</id>
<content type='text'>
</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>contentenc: move EncryptBlocks() loop into its own functions</title>
<updated>2017-06-07T20:09:15+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-07T20:06:28+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=294628b38435698ec63f2b13044ec993af1563f1'/>
<id>urn:sha1:294628b38435698ec63f2b13044ec993af1563f1</id>
<content type='text'>
This allows easy parallelization in the future.
</content>
</entry>
<entry>
<title>Add "-trace" flag (record execution trace)</title>
<updated>2017-06-07T20:09:06+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-05T20:45:11+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=71978ec88a2aa8ec92df080a4a6becf623957c81'/>
<id>urn:sha1:71978ec88a2aa8ec92df080a4a6becf623957c81</id>
<content type='text'>
Uses the runtime/trace functionality.

TODO: add to man page.
</content>
</entry>
<entry>
<title>fusefrontend: write: consolidate and move encryption to contentenc</title>
<updated>2017-06-01T20:19:27+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-01T19:39:47+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a24faa3ba52c66dfc1707da5c8d001f2adff9ccc'/>
<id>urn:sha1:a24faa3ba52c66dfc1707da5c8d001f2adff9ccc</id>
<content type='text'>
Collect all the plaintext and pass everything to contentenc in
one call.

This will allow easier parallization of the encryption.

https://github.com/rfjakob/gocryptfs/issues/116
</content>
</entry>
<entry>
<title>Fix two comments</title>
<updated>2017-06-01T16:53:57+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-01T16:53:57+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=f44902aaaeb8f60060c2f852b66962eca1df6b99'/>
<id>urn:sha1:f44902aaaeb8f60060c2f852b66962eca1df6b99</id>
<content type='text'>
One out-of-date and the other with a typo.
</content>
</entry>
</feed>
