<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libssl/t1_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-12T17:25:11+00:00</updated>
<entry>
<title>Simplify tls1_set_ec_id() a bit</title>
<updated>2020-09-12T17:25:11+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-09-12T17:25:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=5674fe9862c3618ac4163bbdd97519486a8aaba7'/>
<id>urn:sha1:5674fe9862c3618ac4163bbdd97519486a8aaba7</id>
<content type='text'>
Use more descriptive variable names, explain why NID_undef is fine
and simplify the logic.

ok beck jsing
</content>
</entry>
<entry>
<title>Garbage collect renew_ticket in tls_decrypt_ticket</title>
<updated>2020-09-07T08:04:29+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-09-07T08:04:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=d6f7cace81311c472639093f9f77c3806c0e3cb8'/>
<id>urn:sha1:d6f7cace81311c472639093f9f77c3806c0e3cb8</id>
<content type='text'>
This is only set in one place and read in one place to set the badly
named tlsext_ticket_expected flag. It seems preferable to set this
flag directly, thus simplifying the logic. This slightly changes the
behavior in that this flag is now set earlier, but this seems preferable
anyway. Any error between the old and the new position where the flag
is set is either fatal (so the connection will be closed) or a decrypt
error (so the flag will be set).

discussed with jsing
</content>
</entry>
<entry>
<title>copy session id directly in ssl_get_prev_session</title>
<updated>2020-09-01T12:40:53+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-09-01T12:40:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=9f988c795fd8a5ef1dcaff20a0704bca35366cfe'/>
<id>urn:sha1:9f988c795fd8a5ef1dcaff20a0704bca35366cfe</id>
<content type='text'>
ssl_get_prev_session() hands the session id down to tls_decrypt_ticket()
which then copies it into the session pointer that it is about to return.
It's a lot simpler to retrieve the session pointer and copy the session id
inside ssl_get_prev_session().

Also, 'goto err' directly in TLS1_TICKET_NOT_DECRYPTED instead of skipping
a couple of long if clauses before doing so.

ok inoguchi jsing
</content>
</entry>
<entry>
<title>Hoist ERR_clear_error() call into the derr: label</title>
<updated>2020-09-01T05:38:48+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-09-01T05:38:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=e2a9d136c82bfa289087c2fe763aa45f13b8cba1'/>
<id>urn:sha1:e2a9d136c82bfa289087c2fe763aa45f13b8cba1</id>
<content type='text'>
The only path that sets TLS1_TICKET_NOT_DECRPYTED is through this label
and the ERR_clear_error() is called conditionally on this. We clear the
errors to make decrypt errors non-fatal.  The free functions should not
set the errors and if they do, we don't want to hide that.

discussed with jsing
</content>
</entry>
<entry>
<title>simplify tls1_process_ticket() exit path</title>
<updated>2020-09-01T05:32:11+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-09-01T05:32:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=c4e85056430c7717bad800d4e1a6dd84c0fe298f'/>
<id>urn:sha1:c4e85056430c7717bad800d4e1a6dd84c0fe298f</id>
<content type='text'>
tls1_process_ticket() - the only caller of tls_decrypt_ticket() - ends
in a switch over the return value of tls_decrypt_ticket() to decide
whether or not to set s-&gt;internal-&gt;tlsext_ticket_expected = 1.

Since tls_decrypt_ticket() already knows what it will return and
partly bases its decision on what to return on whether or not the
ticket needs to be renewed, it can also take care of setting this flag.
This way we don't need to have a confusing switch that conflates some
return values and sets this flag. Moreover, we can get rid of the ugly
TLS1_TICKET_DECRYPTED_RENEW whose only purpose is to signal that the
flag should be set.

ok jsing
</content>
</entry>
<entry>
<title>Return code tweaks for session ticket handlers</title>
<updated>2020-08-31T14:34:01+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-08-31T14:34:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=cacb5c0088a8650eff463899828ce9a729fa956e'/>
<id>urn:sha1:cacb5c0088a8650eff463899828ce9a729fa956e</id>
<content type='text'>
In tls1_process_ticket() and tls_decrypt_ticket() use #defines with
descriptive names instead of hardcoding -1 1 2 3 4 and occasionally
explaining the magic numbers with comments.

ok beck inoguchi
</content>
</entry>
<entry>
<title>Send alert on ssl_get_prev_session failure</title>
<updated>2020-08-31T14:04:51+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2020-08-31T14:04:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=faa6338eb738dc1ea2775806674119a0fb55b190'/>
<id>urn:sha1:faa6338eb738dc1ea2775806674119a0fb55b190</id>
<content type='text'>
ssl_get_prev_session() can fail for various reasons some of which
may be internal_error others decode_error alerts. Propagate the
appropriate alert up to the caller so we can abort the handshake
by sending a fatal alert instead of rudely closing the pipe.

Currently only 28 of 292 test cases of tlsfuzzer's test-extension.py pass.
With this diff, 272 pass. The rest will require fixes elsewhere.

ok beck inoguchi jsing
</content>
</entry>
<entry>
<title>Add P-521 to the list of curves supported by default in the client.</title>
<updated>2020-08-09T16:25:54+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-08-09T16:25:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=610461717d9e11c24c70d266730243bd58f7c8ac'/>
<id>urn:sha1:610461717d9e11c24c70d266730243bd58f7c8ac</id>
<content type='text'>
A certain VPN provider appears to have configured their servers to only
accept P-521 for TLSv1.3 key exchange. The particular VPN software in use
also does not currently allow for the TLSv1.3 key share groups to be
configured, which means that there is no way to easily use LibreSSL in
this situation.

Include P-521 in the list of curves that are supported by default in the
client, in order to increase interoperability.

Discussed at length with beck@, inoguchi@ and tb@.

ok tb@
</content>
</entry>
<entry>
<title>Remove some unnecessary function pointers from SSL_METHOD_INTERNAL.</title>
<updated>2020-07-07T19:31:11+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-07-07T19:31:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=af06ca6427e355a07e5ee9751f9d0ef96f73e5a7'/>
<id>urn:sha1:af06ca6427e355a07e5ee9751f9d0ef96f73e5a7</id>
<content type='text'>
ssl_version is completely unused and get_timeout is the same everywhere.

ok beck@ inoguchi@ tb@
</content>
</entry>
<entry>
<title>Mop up servername_done, which is unused.</title>
<updated>2020-05-29T17:39:42+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-05-29T17:39:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=0fa647cafcb45ea07c768d172165a3a041e8c58f'/>
<id>urn:sha1:0fa647cafcb45ea07c768d172165a3a041e8c58f</id>
<content type='text'>
ok beck@ inoguchi@ tb@
</content>
</entry>
</feed>
