<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libssl/ssl_ciph.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-13T16:49:05+00:00</updated>
<entry>
<title>Implement SSL_{CTX_,}set_ciphersuites().</title>
<updated>2020-09-13T16:49:05+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-09-13T16:49:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=413d6dece592534652ab298d8c9f26aca9ce2063'/>
<id>urn:sha1:413d6dece592534652ab298d8c9f26aca9ce2063</id>
<content type='text'>
OpenSSL added a separate API for configuring TLSv1.3 ciphersuites. Provide
this API, while retaining the current behaviour of being able to configure
TLSv1.3 via the existing interface.

Note that this is not currently exposed in the headers/exported symbols.

ok beck@ inoguchi@ tb@
</content>
</entry>
<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>Provide TLSv1.3 cipher suite aliases to match the names used in RFC 8446.</title>
<updated>2020-04-19T14:54:14+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-04-19T14:54:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=9718effc62246fbcc4eadcd78c209f7cdb9cbb1c'/>
<id>urn:sha1:9718effc62246fbcc4eadcd78c209f7cdb9cbb1c</id>
<content type='text'>
ok beck@ inoguchi@ tb@
</content>
</entry>
<entry>
<title>Fix wrapping/indentation.</title>
<updated>2020-04-18T14:41:05+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-04-18T14:41:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=9feefdb00593cc485073f55a52a596d2bd59d474'/>
<id>urn:sha1:9feefdb00593cc485073f55a52a596d2bd59d474</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Tweak previous active cipher suite code.</title>
<updated>2020-04-18T13:47:58+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-04-18T13:47:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=58acb3318f8752445a05ed0786831fd86b09f29e'/>
<id>urn:sha1:58acb3318f8752445a05ed0786831fd86b09f29e</id>
<content type='text'>
Use a boolean value rather than using a counter, as suggested by tb@
during the previous review.

ok tb@
</content>
</entry>
<entry>
<title>Only include TLSv1.3 cipher suites if there are active cipher suites.</title>
<updated>2020-04-17T17:26:00+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-04-17T17:26:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=918f1b46ad0c7e24d97486f423774b74e83512e3'/>
<id>urn:sha1:918f1b46ad0c7e24d97486f423774b74e83512e3</id>
<content type='text'>
Revise the previous so that we only include TLSv1.3 cipher suites if the
cipher rule string resulted in at least one active cipher suite. This more
closely matches OpenSSL behaviour.

Noted and fix tested by schwarze@

ok beck@ tb@
</content>
</entry>
<entry>
<title>Include TLSv1.3 cipher suites unless cipher string references TLSv1.3.</title>
<updated>2020-04-09T17:54:38+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-04-09T17:54:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=40d2bd7c8fdb0d23f0152726baf1b34ced73e378'/>
<id>urn:sha1:40d2bd7c8fdb0d23f0152726baf1b34ced73e378</id>
<content type='text'>
OpenSSL has always taken the approach of enabling almost everything by
default. As a result, if you wanted to run a secure TLS client/server
you had to specify your own "secure" cipher string, rather than being
able to trust the defaults as being sensible and secure. The problem
is that with the introduction of TLSv1.3, most of these "secure" cipher
strings result in the new TLSv1.3 cipher suites being excluded.

The "work around" for this issue in OpenSSL was to add a new TLSv1.3
API (SSL_CTX_set_ciphersuites(), SSL_set_ciphersuites()) and have separate
knobs for the pre-TLSv1.3 and TLSv1.3 cipher suites. This of course means
that every application now needs to call two APIs, but it does mean that
applications that only call SSL_CTX_set_cipher_list()/SSL_set_cipher_list()
cannot remove TLSv1.3 cipher suites and prevent TLSv1.3 from working.

We've taken a different approach and have allowed TLSv1.3 cipher suites
to be manipulated via the existing SSL_set_cipher_list() API. However,
in order to avoid problems with hardcoded cipher strings, change this
behaviour so that we always include TLSv1.3 cipher suites unless the
cipher string has a specific reference to the TLSv1.3 protocol or a
TLSv1.3 cipher suite.

This means that:

  $ openssl ciphers -v TLSv1.2:!TLSv1.3

still gives TLSv1.2 only cipher suites and:

  $ openssl ciphers -v AEAD-CHACHA20-POLY1305-SHA256

only lists a single TLSv1.3 cipher, however:

  $ openssl ciphers -v ECDHE-RSA-AES256-GCM-SHA384

now includes both TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 and all TLSv1.3
cipher suites (which also matches OpenSSL's openssl(1) behaviour).

Issue encountered by kn@ with mumble.

ok tb@
</content>
</entry>
<entry>
<title>Tidy line wrapping and remove an extra blank line.</title>
<updated>2020-04-09T17:24:11+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-04-09T17:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=38d3c6539eba71a1443d5d303bbea0db86370657'/>
<id>urn:sha1:38d3c6539eba71a1443d5d303bbea0db86370657</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ssl_aes_is_accelerated() returns a boolean - treat it as such, rather than</title>
<updated>2020-04-09T17:22:52+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2020-04-09T17:22:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=5027693980c0b4343fc638094643368216599d10'/>
<id>urn:sha1:5027693980c0b4343fc638094643368216599d10</id>
<content type='text'>
explicitly comparing against a value.
</content>
</entry>
<entry>
<title>Fix SSL_CIPHER_description</title>
<updated>2020-01-26T12:39:16+00:00</updated>
<author>
<name>inoguchi</name>
<email></email>
</author>
<published>2020-01-26T12:39:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=8c224d682504265008ea457cb981f4d12bc2f9f6'/>
<id>urn:sha1:8c224d682504265008ea457cb981f4d12bc2f9f6</id>
<content type='text'>
ok jsing@
</content>
</entry>
</feed>
