<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal, branch det</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=det</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=det'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2017-05-28T18:44:54+00:00</updated>
<entry>
<title>fusefrontend: aessiv: enable deterministiv file id and block iv</title>
<updated>2017-05-28T18:44:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-28T18:44:54+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=791c78b203be199960274053ea2b1d44c63b07c6'/>
<id>urn:sha1:791c78b203be199960274053ea2b1d44c63b07c6</id>
<content type='text'>
Seems to work ok:

 $ echo aaaaaaaaaaaaaaaaaaa &gt; b/foo
 $ gocryptfs-xray a/LAh7EiK-kjleJhStVZ1JGg
 Header: Version: 2, Id: 8d76d368438112fb00cb807fa8210a74
 Block  0: IV: b05bb152f77816678230885d09a4a596, Tag: c1c7d580fe01dd1eb543efd9d8eda8ad, Offset:    18 Len: 52
 $ &gt; b/foo
 $ echo aaaaaaaaaaaaaaaaaaa &gt; b/foo
 $ gocryptfs-xray a/LAh7EiK-kjleJhStVZ1JGg
 Header: Version: 2, Id: 8d76d368438112fb00cb807fa8210a74
 Block  0: IV: b05bb152f77816678230885d09a4a596, Tag: c1c7d580fe01dd1eb543efd9d8eda8ad, Offset:    18 Len: 52

Deterministic diriv generation is still missing.

Part of https://github.com/rfjakob/gocryptfs/issues/108
</content>
</entry>
<entry>
<title>pathiv: move block IV algorithm into this package</title>
<updated>2017-05-28T18:43:48+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-28T18:43:48+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e2341c93d5b113457905b338b414e41892113ec4'/>
<id>urn:sha1:e2341c93d5b113457905b338b414e41892113ec4</id>
<content type='text'>
This was implemented in fusefrontend_reverse, but we need it
in fusefrontend as well. Move the algorithm into pathiv.BlockIV().
</content>
</entry>
<entry>
<title>pathiv: move derivedIVContainer into the package</title>
<updated>2017-05-28T16:33:05+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-28T16:33:05+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=35f4f8af56ec4da9952df4feba4981f5d148b2cf'/>
<id>urn:sha1:35f4f8af56ec4da9952df4feba4981f5d148b2cf</id>
<content type='text'>
...under the new name "FileIVs".

This will also be used by forward mode.
</content>
</entry>
<entry>
<title>fusefrontend_reverse: move pathiv to its own package</title>
<updated>2017-05-28T16:09:02+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-28T16:09:02+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ab10cf63ed21d09e239986ac125b990fe06b5572'/>
<id>urn:sha1:ab10cf63ed21d09e239986ac125b990fe06b5572</id>
<content type='text'>
We will also need it in forward mode.
</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>fusefrontend_reverse: store derived values for hard-linked files</title>
<updated>2017-05-25T19:33:16+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-25T19:33:16+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=9ecf2d1a3f69e3d995012073afe3fc664bd928f2'/>
<id>urn:sha1:9ecf2d1a3f69e3d995012073afe3fc664bd928f2</id>
<content type='text'>
With hard links, the path to a file is not unique. This means
that the ciphertext data depends on the path that is used to access
the files.

Fix that by storing the derived values when we encounter a hard-linked
file. This means that the first path wins.
</content>
</entry>
<entry>
<title>nametransform: reject all-zero dirIV</title>
<updated>2017-05-25T12:21:55+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-25T12:21:55+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=9a3f9350fe29083de04bbbe71e20ea169b2e691e'/>
<id>urn:sha1:9a3f9350fe29083de04bbbe71e20ea169b2e691e</id>
<content type='text'>
This should never happen in normal operation and is a sign of
data corruption. Catch it early.
</content>
</entry>
<entry>
<title>contenenc: reject all-zero file ID</title>
<updated>2017-05-25T12:20:27+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-25T12:20:17+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=2ce269ec63e0a9c87b2fce45a5bf0cf09abf5bba'/>
<id>urn:sha1:2ce269ec63e0a9c87b2fce45a5bf0cf09abf5bba</id>
<content type='text'>
This should never happen in normal operation and is a sign of
data corruption. Catch it early.
</content>
</entry>
<entry>
<title>contentenc: better error reporting in ParseHeader</title>
<updated>2017-05-25T12:18:44+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-25T12:18:44+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=c0e411f81d01607fa59338365933232231738581'/>
<id>urn:sha1:c0e411f81d01607fa59338365933232231738581</id>
<content type='text'>
Log the message ourselves and return EINVAL.

Before:

	gocryptfs[26962]: go-fuse: can't convert error type: ParseHeader: invalid version: got 0, want 2

After:

	gocryptfs[617]: ParseHeader: invalid version: want 2, got 0. Returning EINVAL.
</content>
</entry>
<entry>
<title>nametransform: harden name decryption against invalid input</title>
<updated>2017-05-23T19:26:38+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-05-23T18:46:24+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e827763f2e6226d9f5778d56c28270264950c0f5'/>
<id>urn:sha1:e827763f2e6226d9f5778d56c28270264950c0f5</id>
<content type='text'>
This fixes a few issues I have found reviewing the code:

1) Limit the amount of data ReadLongName() will read. Previously,
you could send gocryptfs into out-of-memory by symlinking
gocryptfs.diriv to /dev/zero.

2) Handle the empty input case in unPad16() by returning an
error. Previously, it would panic with an out-of-bounds array
read. It is unclear to me if this could actually be triggered.

3) Reject empty names after base64-decoding in DecryptName().
An empty name crashes emeCipher.Decrypt().
It is unclear to me if B64.DecodeString() can actually return
a non-error empty result, but let's guard against it anyway.
</content>
</entry>
</feed>
