<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libssl/tls13_client.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-11T17:36:27+00:00</updated>
<entry>
<title>Remove cipher_list_by_id.</title>
<updated>2020-09-11T17:36:27+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-09-11T17:36:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=cb4349853bf54ac34c4b6615aa3102e8d10f685f'/>
<id>urn:sha1:cb4349853bf54ac34c4b6615aa3102e8d10f685f</id>
<content type='text'>
When parsing a cipher string, a cipher list is created, before being
duplicated and sorted - the second copy being stored as cipher_list_by_id.
This is done only so that a client can ensure that the cipher selected by
a server is in the cipher list. This is pretty pointless given that most
clients are short-lived and that we already had to iterate over the cipher
list in order to build the client hello. Additionally, any update to the
cipher list requires that cipher_list_by_id also be updated and kept in
sync.

Remove all of this and replace it with a simple linear scan - the overhead
of duplicating and sorting the cipher list likely exceeds that of a simple
linear scan over the cipher list (64 maximum, more typically ~9 or so).

ok beck@ tb@
</content>
</entry>
<entry>
<title>Improve argument order for the internal tlsext API</title>
<updated>2020-07-03T04:12:51+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-07-03T04:12:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=3634005e8a2051a239211f692a45371c14e9d8e4'/>
<id>urn:sha1:3634005e8a2051a239211f692a45371c14e9d8e4</id>
<content type='text'>
Move is_server and msg_type right after the SSL object so that CBS
and CBB and alert come last. This brings these functions more in
line with other internal functions and separates state from data.

requested by jsing
</content>
</entry>
<entry>
<title>Improve client certificate selection for TLSv1.3</title>
<updated>2020-06-04T18:41:42+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-06-04T18:41:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=73803d4f9471a320c132894319e7be48ead70aa3'/>
<id>urn:sha1:73803d4f9471a320c132894319e7be48ead70aa3</id>
<content type='text'>
This allows clients to use EC certificates.

ok inoguchi, jsing
</content>
</entry>
<entry>
<title>Wire up SSL_MODE_AUTO_RETRY mode to retrying after PHH messages.</title>
<updated>2020-05-23T11:58:46+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-05-23T11:58:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=b7886785c522527763ee1154ed9eb1f384cb90fe'/>
<id>urn:sha1:b7886785c522527763ee1154ed9eb1f384cb90fe</id>
<content type='text'>
ok beck@ inoguchi@ tb@
</content>
</entry>
<entry>
<title>Replace SSL_PKEY_RSA_ENC/SSL_PKEY_RSA_SIGN with SSL_PKEY_RSA.</title>
<updated>2020-05-19T16:35:21+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-05-19T16:35:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=369bbcd163f15f6e452e14282f0a65dafde2f5ab'/>
<id>urn:sha1:369bbcd163f15f6e452e14282f0a65dafde2f5ab</id>
<content type='text'>
Some time prior to SSLeay 0.8.1b, SSL_PKEY_RSA_SIGN got added with the
intention of handling RSA sign only certificates... this incomplete code
had the following comment:

  /* check to see if this is a signing only certificate */
  /* EAY EAY EAY EAY */

And while the comment was removed in 2005, the incomplete RSA sign-only
handling has remained ever since.

Remove SSL_PKEY_RSA_SIGN and rename SSL_PKEY_RSA_ENC to SSL_PKEY_RSA. While
here also remove the unused SSL_PKEY_DH_RSA.

ok tb@
</content>
</entry>
<entry>
<title>Add support for TLS 1.3 server to send certificate status</title>
<updated>2020-05-19T01:30:34+00:00</updated>
<author>
<name>beck</name>
<email></email>
</author>
<published>2020-05-19T01:30:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=e91cca87b14fd6699247757d10bb6df50becf339'/>
<id>urn:sha1:e91cca87b14fd6699247757d10bb6df50becf339</id>
<content type='text'>
messages with oscp staples.

ok jsing@ tb@
</content>
</entry>
<entry>
<title>Send a decode error alert if a server provides an empty certificate list.</title>
<updated>2020-05-17T14:26:15+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-05-17T14:26:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=ce127c177d706b882344b219271b26080aea2efe'/>
<id>urn:sha1:ce127c177d706b882344b219271b26080aea2efe</id>
<content type='text'>
According to RFC 8446 section 4.4.2.4, a client receiving an empty
certificate list must abort the handshake with a decode error alert.

ok beck@ inoguchi@ tb@ ('it rarely is the alert you'd expect it to be...')
</content>
</entry>
<entry>
<title>Ensure that a TLSv1.3 server has provided a certificate.</title>
<updated>2020-05-16T14:44:55+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-05-16T14:44:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=5c53acc6f2d8bb7bc7f1b005a980ccf36e27df34'/>
<id>urn:sha1:5c53acc6f2d8bb7bc7f1b005a980ccf36e27df34</id>
<content type='text'>
The RFC requires that a server always provide a certificate for
authentication. Ensure that this is the case, rather than proceeding and
attempting validation. In the case where validation was disabled and the
server returned an empty certificate list, this would have previously
resulted in a NULL pointer deference.

Issue reported by otto@

ok inoguchi@ tb@
</content>
</entry>
<entry>
<title>Switch the legacy version to TLS1_2_VERSION when processing server hello.</title>
<updated>2020-05-13T17:51:48+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-05-13T17:51:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=ba1709c6646816bffd9caeb42503abf95c44e3e2'/>
<id>urn:sha1:ba1709c6646816bffd9caeb42503abf95c44e3e2</id>
<content type='text'>
Switch the legacy version when processing the server hello, rather than
when the client hello has been sent. This ensures that we accept a
response from the server that has a record version other than
TLS1_2_VERSION, as is the case where the server is negotiating TLSv1.0
or TLSv1.1.

Issue spotted by inoguchi@

ok inoguchi@ tb@
</content>
</entry>
<entry>
<title>Provide alert defines for TLSv1.3 and use in the TLSv1.3 code.</title>
<updated>2020-05-10T16:56:11+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-05-10T16:56:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=b31d318d829815c32911ba41253883a36be79792'/>
<id>urn:sha1:b31d318d829815c32911ba41253883a36be79792</id>
<content type='text'>
Rather than using a mess of SSL_AL_*, SSL_AD_*, SSL3_AD_* and TLS1_AD_*
defines, provide our own TLS13_ALERT_* defines and use those. This also
provides the alerts that are new to TLSv1.3.

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