<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libtls, branch libressl-v3.8.2</title>
<subtitle>A mirror of https://github.com/libressl/openbsd.git
</subtitle>
<id>https://git.lua4.win/openbsd/atom?h=libressl-v3.8.2</id>
<link rel='self' href='https://git.lua4.win/openbsd/atom?h=libressl-v3.8.2'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/'/>
<updated>2023-09-18T17:25:15+00:00</updated>
<entry>
<title>remove tls_reset(3) from the NAME, SYNOPSIS, and HISTORY sections</title>
<updated>2023-09-18T17:25:15+00:00</updated>
<author>
<name>schwarze</name>
<email></email>
</author>
<published>2023-09-18T17:25:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=b92995f2a1d2dda8c6289e3afb31574b7feec963'/>
<id>urn:sha1:b92995f2a1d2dda8c6289e3afb31574b7feec963</id>
<content type='text'>
because it is documented in the separate tls_client(3) manual page
</content>
</entry>
<entry>
<title>bump libcrypto, libssl, libtls majors</title>
<updated>2023-07-28T10:41:24+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2023-07-28T10:41:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=05c2613cfef27830ae2f1d4c9900241e2b89b444'/>
<id>urn:sha1:05c2613cfef27830ae2f1d4c9900241e2b89b444</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove the ability to do tls 1.0 and 1.1 from libtls.</title>
<updated>2023-07-02T06:37:27+00:00</updated>
<author>
<name>beck</name>
<email></email>
</author>
<published>2023-07-02T06:37:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=908a2337ae4c28163a92b9fda969dbdd36bc634b'/>
<id>urn:sha1:908a2337ae4c28163a92b9fda969dbdd36bc634b</id>
<content type='text'>
With this change any requests from configurations to request
versions of tls before tls 1.2 will use tls 1.2. This prepares
us to deprecate tls 1.0 and tls 1.1 support from libssl.

ok tb@
</content>
</entry>
<entry>
<title>Zap stray space</title>
<updated>2023-06-27T18:19:59+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2023-06-27T18:19:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=0fbd7fe654d8ec5bc487af1a7412d3c479b48fa6'/>
<id>urn:sha1:0fbd7fe654d8ec5bc487af1a7412d3c479b48fa6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Turns out EC_KEY_METHOD_new() has dup built in...</title>
<updated>2023-06-18T19:12:58+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2023-06-18T19:12:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=5b4aa54e60e2d5fe326e551377f5d9278c8fbfb2'/>
<id>urn:sha1:5b4aa54e60e2d5fe326e551377f5d9278c8fbfb2</id>
<content type='text'>
... because RSA_meth_new() doesn't. So we can fortunately lose a few lines
added in the previous commit. Three cheers for the masters of inconsistency.

ok jsing
</content>
</entry>
<entry>
<title>tls_signer: reinstate the default EC_KEY methods</title>
<updated>2023-06-18T17:50:28+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2023-06-18T17:50:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=3bea7303183c6a111955e12c8c213b66ea3f3834'/>
<id>urn:sha1:3bea7303183c6a111955e12c8c213b66ea3f3834</id>
<content type='text'>
Previously, we would set the ECDSA_METHOD on the EC_KEY, which, by way
of lovely indirection in our three crypto/ec* directories ended up having
no effect on the default methods. Now that we set a new EC_KEY_METHOD, we
need to make sure we still have the other handlers that we might need.

Like so many things that were made opaque in the 1.1 re"design", the
accessors were written without actual application code in mind. In
particular, EC_KEY_METHOD lacks a dup(). This means we get to fetch the
default methods with getters and then set them again on the new method.
This is particularly awesome because once someone adds a new method to
the opaque struct, all applications will have to adapt and do a get/set
dance.

So far this is very reminiscent of PostgreSQL with BIO_meth_*

https://github.com/postgres/postgres/blob/a14e75eb0b6a73821e0d66c0d407372ec8376105/src/interfaces/libpq/fe-secure-openssl.c#L1921-L1928

Only it's worse here because someone wanted to be smart and save a few
public functions, so we have to use getters that get several functions
at once. Which in turn means we need to have function pointers with the
precise signatures which are part of the struct that was made opaque.

We will add a EC_KEY_METHOD_dup() in the next bump, but for now this is
the best fix we can have.

Whenever you think you've seen the worst turds in this code base, you find
another one that could serve as an exemplar.

ok jsing op
</content>
</entry>
<entry>
<title>Switch tls_ecdsa_do_sign() to EC_KEY_get_ex_data()</title>
<updated>2023-06-18T17:24:09+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2023-06-18T17:24:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=937d61f9ee1eedd96c77c2fd610a201a40c5776a'/>
<id>urn:sha1:937d61f9ee1eedd96c77c2fd610a201a40c5776a</id>
<content type='text'>
Since libtls now sets the ex_data with EC_KEY_set_ex_data(), the do_sign()
callback needs to have a matching change.

ok jsing op
</content>
</entry>
<entry>
<title>libtls: switch ECDSA_METHOD usage to EC_KEY_METHOD</title>
<updated>2023-06-18T11:43:03+00:00</updated>
<author>
<name>op</name>
<email></email>
</author>
<published>2023-06-18T11:43:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=d4df7cddd1d4ded9778f0ab6b2c234b2d54515c3'/>
<id>urn:sha1:d4df7cddd1d4ded9778f0ab6b2c234b2d54515c3</id>
<content type='text'>
smtpd and the bits it needs in libtls are the only consumer left of
ECDSA_METHOD, which is long deprecated.  This paves the way for the
removal in libcrypto.

The diff is from gilles' work on OpenSMTPD-portable, libretls had a
similar diff.

ok tb@, jsing@
</content>
</entry>
<entry>
<title>Rework tls_check_subject_altname() error handling</title>
<updated>2023-06-01T07:32:25+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2023-06-01T07:32:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=fea987b2d1e959977f04e5f737991f6d06effae3'/>
<id>urn:sha1:fea987b2d1e959977f04e5f737991f6d06effae3</id>
<content type='text'>
Default to having rv = -1 and explicitly goto done to set rv = 0.
This matches other code better.

ok jsing
</content>
</entry>
<entry>
<title>Check for X509_get_ext_d2i() failure</title>
<updated>2023-06-01T07:29:15+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2023-06-01T07:29:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=db144b29c2c0d748705612fa7cb0ef4ecaa7667d'/>
<id>urn:sha1:db144b29c2c0d748705612fa7cb0ef4ecaa7667d</id>
<content type='text'>
X509_get_ext_d2i() (or rather X509V3_get_d2i()) can return NULL for
various reasons. If it fails because the extension wasn't found, it
sets *crit = -1. In any other case, e.g., the cert is bad or we ran
out of memory in X509V3_EXT_d2i(), crit is set to something else, so
we should actually error.

ok jsing
</content>
</entry>
</feed>
