<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src/lib/crypt.c, branch 0.17.2</title>
<subtitle>Ouroboros main repository</subtitle>
<id>http://www.ouroboros.rocks/cgit/ouroboros/atom?h=0.17.2</id>
<link rel='self' href='http://www.ouroboros.rocks/cgit/ouroboros/atom?h=0.17.2'/>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/'/>
<updated>2020-02-25T07:21:09Z</updated>
<entry>
<title>lib, ipcpd: piggyback ECDHE on flow allocation</title>
<updated>2020-02-25T07:21:09Z</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-02-24T21:30:22Z</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=fe6b60909d455abdac7885ceaba1097749e7aeb1'/>
<id>urn:sha1:fe6b60909d455abdac7885ceaba1097749e7aeb1</id>
<content type='text'>
The initial implementation for the ECDHE key exchange was doing the
key exchange after a flow was established. The public keys are now
sent allowg on the flow allocation messages, so that an encrypted
tunnel can be created within 1 RTT. The flow allocation steps had to
be extended to pass the opaque data ('piggybacking').

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>build: Update copyright to 2020</title>
<updated>2020-01-02T14:07:36Z</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2020-01-01T08:48:07Z</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=435a91165a3c1f8ca715b22ee2c2361d9bd853dd'/>
<id>urn:sha1:435a91165a3c1f8ca715b22ee2c2361d9bd853dd</id>
<content type='text'>
Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Fix swapped ECDH crypt calls</title>
<updated>2019-08-09T17:44:06Z</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2019-08-05T00:28:24Z</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=4cb5f64cd5455f0b6a99bbfc7f6e36b1987a4007'/>
<id>urn:sha1:4cb5f64cd5455f0b6a99bbfc7f6e36b1987a4007</id>
<content type='text'>
The client and server side were swapped. This wasn't a big issue, but
now we are sure that the flow allocation response for the server has
arrived at the client (packet reordering could cause the server key to
arrive before the flow is allocated at the client).

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Fix free in key derivation</title>
<updated>2019-08-09T17:43:27Z</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2019-08-05T00:15:50Z</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=8114ba43c09ebb45ee6e1c608f23e27577130ebf'/>
<id>urn:sha1:8114ba43c09ebb45ee6e1c608f23e27577130ebf</id>
<content type='text'>
The wrong pointer was being free'd in case of a derivation error.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Add per-message encryption with OpenSSL</title>
<updated>2019-08-03T10:10:57Z</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2019-08-02T17:12:34Z</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=9e8d603d14561095fb8d08871319a315d3bf6763'/>
<id>urn:sha1:9e8d603d14561095fb8d08871319a315d3bf6763</id>
<content type='text'>
This adds a per-message symmetric encryption using the OpenSSL
library. At flow allocation, an Elliptic Curve Diffie-Hellman exchange
is performed to derive a shared secret, which is then hashed using
SHA3-256 to be used as a key for symmetric AES-256 encryption. Each
message on an encrypted flow adds a small crypto header that includes
a random 128-bit Initialization Vector (IV). If the server does not
have OpenSSL enabled, the flow allocation will fail with an -ECRYPT
error.

Future optimizations are to piggyback the public keys on the flow
allocation message, and to enable per-flow encryption that maintains
the context of the encryption over multiple packets and doesn't
require sending IVs.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
</feed>
