<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/contentenc, branch v1.4.2</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4.2</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4.2'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2017-10-19T07:23:10+00:00</updated>
<entry>
<title>contentenc: reserve one additional block in CReqPool</title>
<updated>2017-10-19T07:23:10+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-10-19T07:23:10+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=29445c976d200f6e734eae56d9665fd4098f0a43'/>
<id>urn:sha1:29445c976d200f6e734eae56d9665fd4098f0a43</id>
<content type='text'>
...to account for unaligned reads.

I have not seen this happen in the wild because the kernel
always seems to issue 4k-aligned requests. But the cost
of the additional block in the pool is low and prevents
a buffer overrun panic when an unaligned read does happen.
</content>
</entry>
<entry>
<title>fusefrontend: clamp oversized reads</title>
<updated>2017-10-17T19:48:29+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-10-17T19:47:32+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=3009ec9852316c3c696f77f476390ab5a6d8d6d7'/>
<id>urn:sha1:3009ec9852316c3c696f77f476390ab5a6d8d6d7</id>
<content type='text'>
Our byte cache pools are sized acc. to MAX_KERNEL_WRITE, but the
running kernel may have a higher limit set. Clamp to what we can
handle.

Fixes a panic on a Synology NAS reported at
https://github.com/rfjakob/gocryptfs/issues/145
</content>
</entry>
<entry>
<title>contentenc: deduplicate AD packing into new concatAD() func</title>
<updated>2017-09-17T09:21:48+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-09-17T09:21:48+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=885fdcabdacb2d53829e7f96f4c600df0a3e282d'/>
<id>urn:sha1:885fdcabdacb2d53829e7f96f4c600df0a3e282d</id>
<content type='text'>
The encrypt and decrypt path both had a copy that were equivalent
but ordered differently, which was confusing.

Consolidate it in a new dedicated function.
</content>
</entry>
<entry>
<title>contentenc: DecryptBlocks: give block number counter a clearer name</title>
<updated>2017-09-17T08:59:04+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-09-17T08:59:04+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=4bd2c6736afbe20d6aa7d94758082d8c8752af4b'/>
<id>urn:sha1:4bd2c6736afbe20d6aa7d94758082d8c8752af4b</id>
<content type='text'>
Using firstBlockNo as the counter is confusing, create a
copy named "blockNo" and use that.
</content>
</entry>
<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>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>contentenc: MergeBlocks: short-circuit the trivial case</title>
<updated>2017-07-02T14:23:24+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-07-02T14:07:20+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b6bda01c33d27afa1df6bdc2dc9f3e352cc8d16d'/>
<id>urn:sha1:b6bda01c33d27afa1df6bdc2dc9f3e352cc8d16d</id>
<content type='text'>
Saves 3% for the tar extract benchmark because we skip the allocation.
</content>
</entry>
<entry>
<title>contentenc: add PReqPool and use it in DecryptBlocks</title>
<updated>2017-06-30T21:30:57+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-30T21:30:57+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=12c0101a232928e8969f23235ca45506e743d547'/>
<id>urn:sha1:12c0101a232928e8969f23235ca45506e743d547</id>
<content type='text'>
This gets us a massive speed boost in streaming reads.
</content>
</entry>
<entry>
<title>contentenc: add safer "bPool" pool variant; add pBlockPool</title>
<updated>2017-06-29T21:44:32+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-29T20:05:23+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=80676c685fe2b52ce0c48a7d9d922895d0c583b8'/>
<id>urn:sha1:80676c685fe2b52ce0c48a7d9d922895d0c583b8</id>
<content type='text'>
bPool verifies the lengths of slices going in and out.

Also, add a plaintext block pool - pBlockPool - and use
it for decryption.
</content>
</entry>
<entry>
<title>contentenc: use sync.Pool memory pools for encryption</title>
<updated>2017-06-20T19:22:00+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-06-20T19:22:00+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=3c6fe98eb1e5dada2613664182ead18be9e68819'/>
<id>urn:sha1:3c6fe98eb1e5dada2613664182ead18be9e68819</id>
<content type='text'>
We use two levels of buffers:

1) 4kiB+overhead for each ciphertext block
2) 128kiB+overhead for each FUSE write (32 ciphertext blocks)

This commit adds a sync.Pool for both levels.

The memory-efficiency for small writes could be improved,
as we now always use a 128kiB buffer.
</content>
</entry>
</feed>
