<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/cryptocore, branch v1.4.3</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4.3</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4.3'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2017-08-21T19:06:05+00:00</updated>
<entry>
<title>Fix misspellings reported by goreportcard.com</title>
<updated>2017-08-21T19:06:05+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-08-21T19:06:05+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ed046aa35978c835d79f9cb3ee359349ee9145c5'/>
<id>urn:sha1:ed046aa35978c835d79f9cb3ee359349ee9145c5</id>
<content type='text'>
https://goreportcard.com/report/github.com/rfjakob/gocryptfs#misspell
</content>
</entry>
<entry>
<title>cryptocore: add urandom + randprefetch benchmarks</title>
<updated>2017-08-16T16:33:00+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-08-16T16:33:00+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=312ea32bb70abb93be315d0b7c442d5c4ae571d9'/>
<id>urn:sha1:312ea32bb70abb93be315d0b7c442d5c4ae571d9</id>
<content type='text'>
The benchmark that supported the decision for 512-byte
prefetching previously lived outside the repo.

Let's add it where it belongs so it cannot get lost.
</content>
</entry>
<entry>
<title>main: purge masterkey from memory as soon as possible</title>
<updated>2017-08-11T17:02:26+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-08-11T16:42:30+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=0c520845f3623eff28f0277a52e3ccffd928f5c2'/>
<id>urn:sha1:0c520845f3623eff28f0277a52e3ccffd928f5c2</id>
<content type='text'>
Remove the "Masterkey" field from fusefrontend.Args because it
should not be stored longer than neccessary. Instead pass the
masterkey as a separate argument to the filesystem initializers.

Then overwrite it with zeros immediately so we don't have
to wait for garbage collection.

Note that the crypto implementation still stores at least a
masterkey-derived value, so this change makes it harder, but not
impossible, to extract the encryption keys from memory.

Suggested at https://github.com/rfjakob/gocryptfs/issues/137
</content>
</entry>
<entry>
<title>macos: make testing without openssl work properly</title>
<updated>2017-07-14T21:22:15+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-07-14T21:22:15+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ccf1a84e417e9f7d83f31c61c44cf3851703b1e4'/>
<id>urn:sha1:ccf1a84e417e9f7d83f31c61c44cf3851703b1e4</id>
<content type='text'>
On MacOS, building and testing without openssl is much easier.
The tests should skip tests that fail because of missing openssl
instead of aborting.

Fixes https://github.com/rfjakob/gocryptfs/issues/123
</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>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>cryptocore: improve comments and add tests for hkdfDerive</title>
<updated>2017-05-27T12:41:20+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-27T12:41:20+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=d6ef283c3f076ba45dd873d69e1c7d86ed29b14a'/>
<id>urn:sha1:d6ef283c3f076ba45dd873d69e1c7d86ed29b14a</id>
<content type='text'>
These should make it easier to re-implement the key derivation
that was enabled with the "HKDF" feature flag.
</content>
</entry>
<entry>
<title>fix golint complaints</title>
<updated>2017-04-29T12:50:58+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-04-29T12:50:58+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=edb3e19cb5543c580261052395d461fa47c7cf58'/>
<id>urn:sha1:edb3e19cb5543c580261052395d461fa47c7cf58</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add -forcedecode</title>
<updated>2017-04-23T21:11:56+00:00</updated>
<author>
<name>danim7</name>
</author>
<published>2017-04-08T00:09:28+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=f1945c4daae65074cfca8f0ab5b97ac5a50c24a0'/>
<id>urn:sha1:f1945c4daae65074cfca8f0ab5b97ac5a50c24a0</id>
<content type='text'>
Force decode of encrypted files even if the integrity check fails, instead of
failing with an IO error. Warning messages are still printed to syslog if corrupted
files are encountered.
It can be useful to recover files from disks with bad sectors or other corrupted
media.

Closes https://github.com/rfjakob/gocryptfs/pull/102 .
</content>
</entry>
</feed>
