<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libssl/s3_lib.c, branch OPENBSD_6_8_BASE</title>
<subtitle>A mirror of https://github.com/libressl/openbsd.git
</subtitle>
<id>https://git.lua4.win/openbsd/atom?h=OPENBSD_6_8_BASE</id>
<link rel='self' href='https://git.lua4.win/openbsd/atom?h=OPENBSD_6_8_BASE'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/'/>
<updated>2020-09-17T15:42:14+00:00</updated>
<entry>
<title>Prepare to provide SSL_get_peer_tmp_key().</title>
<updated>2020-09-17T15:42:14+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-09-17T15:42:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=181e322485985db2e19534d34ecc9005bd54c698'/>
<id>urn:sha1:181e322485985db2e19534d34ecc9005bd54c698</id>
<content type='text'>
OpenSSL effectively renamed SSL_get_server_tmp_key() to
SSL_get_peer_tmp_key() and removed the client-side restriction. Prepare
for a matching rename.

ok tb@
</content>
</entry>
<entry>
<title>Move state initialisation from SSL_clear() to ssl3_clear().</title>
<updated>2020-09-14T18:34:12+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-09-14T18:34:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=19d5c8d7425a9d4517537df292f7643d0ee9a618'/>
<id>urn:sha1:19d5c8d7425a9d4517537df292f7643d0ee9a618</id>
<content type='text'>
If we use the default method (now TLSv1.3) and end up talking to a TLSv1.2
server that gives us a session ticket, then try to resume that session,
we end up trying to talk TLS without doing a handshake.

This is caused by the state (S3I(s)-&gt;hs.state) getting cleared, which
results in SSL_do_handshake() and others thinking they do not need to do
anything (as SSL_in_init() and SSL_in_before() are not true).

The reason this occurs is due to SSL_set_ssl_method() calling ssl_free()
and ssl_new() when switching methods. The end result is that the S3I(s)
has been freed and reallocated, losing the state in the process.

Since the state is part of the S3I(s) structure, move its initialisation
into ssl3_clear() - this ensures it gets correctly reinitialised across a
SSL_set_ssl_method() call.

Issue noticed by sthen@ with nginx and unifi.

ok beck@ tb@
</content>
</entry>
<entry>
<title>Implement a rolling hash of the ClientHello message, Enforce RFC 8446</title>
<updated>2020-06-06T01:40:09+00:00</updated>
<author>
<name>beck</name>
<email></email>
</author>
<published>2020-06-06T01:40:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=2d835ca8318d9ce502e9fd2dced3ef440decb39d'/>
<id>urn:sha1:2d835ca8318d9ce502e9fd2dced3ef440decb39d</id>
<content type='text'>
section 4.1.2 to ensure subsequent ClientHello messages after a
HelloRetryRequest messages must be unchanged from the initial
ClientHello.

ok tb@ jsing@
</content>
</entry>
<entry>
<title>Use IANA allocated GOST ClientCertificateTypes.</title>
<updated>2020-06-05T18:14:05+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-06-05T18:14:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=95fc51a1214a75a79263e9b85906e144612c01f1'/>
<id>urn:sha1:95fc51a1214a75a79263e9b85906e144612c01f1</id>
<content type='text'>
IANA has allocated numbers for GOST ClientCertificateType. Use them in
addition to private values (left in place for compatibility).

Diff from Dmitry Baryshkov &lt;dbaryshkov@gmail.com&gt;

Sponsored by ROSA Linux

ok inoguchi@ tb@
</content>
</entry>
<entry>
<title>Stop sending GOST R 34.10-94 as a CertificateType.</title>
<updated>2020-06-05T17:58:32+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-06-05T17:58:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=d68c251a6eeb40d0059c1f1ccd61d723efd45973'/>
<id>urn:sha1:d68c251a6eeb40d0059c1f1ccd61d723efd45973</id>
<content type='text'>
GOST R 34.10-94 is an obsolete certificate type, unsupported by
LibreSSL and by the rest of current software, so there is no point in
sending in the CertificateTypes.

Diff from Dmitry Baryshkov &lt;dbaryshkov@gmail.com&gt;

Sponsored by ROSA Linux

ok inoguchi@ tb@
</content>
</entry>
<entry>
<title>Use size_t for OCSP response length.</title>
<updated>2020-05-10T14:17:48+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-05-10T14:17:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=4749b6f55a603d6923ae5901d112961ff3c56b38'/>
<id>urn:sha1:4749b6f55a603d6923ae5901d112961ff3c56b38</id>
<content type='text'>
The OCSP response length is currently an integer, which is overloaded with
-1 meaning "unset". Use a size_t for the OCSP response length and infer
unset from the OCSP response being NULL. This makes code more readable,
simpler and less error prone.

ok beck@
</content>
</entry>
<entry>
<title>Expose the peer ephemeral public key used for TLSv1.3 key exchange.</title>
<updated>2020-04-18T14:07:56+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-04-18T14:07:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=45ae045ccf3a3740b07e9b2ecbbbbb3320d2f36d'/>
<id>urn:sha1:45ae045ccf3a3740b07e9b2ecbbbbb3320d2f36d</id>
<content type='text'>
SSL_get_server_tmp_key() provides the peer ephemeral public key used
for key exchange. In the case of TLSv1.3 this is essentially the peer
public key from the key share used for TLSv1.3 key exchange, hence make it
availaable via SSL_get_server_tmp_key().

ok inoguchi@ tb@
</content>
</entry>
<entry>
<title>Avoid leak for tmp.x25519</title>
<updated>2020-02-16T14:33:04+00:00</updated>
<author>
<name>inoguchi</name>
<email></email>
</author>
<published>2020-02-16T14:33:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=fa0b5b94cc25e2b4dd64fd2788b5be80ec542d59'/>
<id>urn:sha1:fa0b5b94cc25e2b4dd64fd2788b5be80ec542d59</id>
<content type='text'>
Changed to use local variable to hold malloc address rather than directly
set to S3I(s)-&gt;tmp.x25519, and set that private_key pointer to
S3I(s)-&gt;tmp.x25519 after all the "goto err;".

Also added freezero for S3I(s)-&gt;tmp.x25519 to ssl3_free() and ssl3_clear().

ok jsing@ tb@
</content>
</entry>
<entry>
<title>Provide struct/functions for handling TLSv1.3 key shares.</title>
<updated>2020-01-30T17:09:23+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-01-30T17:09:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=8c4b49ffef3b61d982a273df3cd92b2e017aa065'/>
<id>urn:sha1:8c4b49ffef3b61d982a273df3cd92b2e017aa065</id>
<content type='text'>
Pull out the key share handling code and provide a clean/self contained
interface. This will make it easier to support groups other than X25519.

ok beck@ inoguchi@ tb@
</content>
</entry>
<entry>
<title>Correctly handle TLSv1.3 ciphers suites in ssl3_choose_cipher().</title>
<updated>2020-01-23T10:40:59+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-01-23T10:40:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=e923e6a6e5ee7ab0943514d73b7f609470b200a5'/>
<id>urn:sha1:e923e6a6e5ee7ab0943514d73b7f609470b200a5</id>
<content type='text'>
Currently, TLSv1.3 cipher suites are filtered out by the fact that
they have authentication and key exchange algorithms that are not
being set in ssl_set_cert_masks(). Fix this so that ssl3_choose_cipher()
works for TLSv1.3, however we also now need to ensure that we filter out
TLSv1.3 for non-TLSv1.3 and only select TLSv1.3 for TLSv1.3.

ok beck@ tb@
</content>
</entry>
</feed>
