<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openbsd/src/lib/libssl/s3_lib.c, branch OPENBSD_7_9_BASE</title>
<subtitle>A mirror of https://github.com/libressl/openbsd.git
</subtitle>
<id>https://git.lua4.win/openbsd/atom?h=OPENBSD_7_9_BASE</id>
<link rel='self' href='https://git.lua4.win/openbsd/atom?h=OPENBSD_7_9_BASE'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/'/>
<updated>2025-12-04T21:16:17+00:00</updated>
<entry>
<title>Hook up X25519MKLEM768 to the TLS 1.3 handshake</title>
<updated>2025-12-04T21:16:17+00:00</updated>
<author>
<name>beck</name>
<email></email>
</author>
<published>2025-12-04T21:16:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=dccd1f43a0c2de3852d9515f57353d756629c97a'/>
<id>urn:sha1:dccd1f43a0c2de3852d9515f57353d756629c97a</id>
<content type='text'>
This does the following:

1) Adds a second key share prediction to the TLS 1.3 handshake.
   We only add one as we are unlikely to want to send more than
   one PQ one, and one classical one and are unlikely to waste
   bytes on a second PQ algorithm (anything that wants something
   else that we support can HRR to get it)

2) Adds X25519MLKEM768 (4588) to our list of supported groups.
   We add this to our preferred client and server key shares for TLS 1.3
   and we now have a separate list for TLS 1.2 which does not do this,
   cleaning up the old "full list" from the comments.

3) Updates the golden magic numbers in the regression tests to allow
   for the above two things changing the handshake, so the regress
   tests pass.

With this you can successfully hybrid PQ with servers and clients
that support it.

ok tb@ kenjiro@
</content>
</entry>
<entry>
<title>Remove get_cipher from SSL_METHOD.</title>
<updated>2024-07-23T14:40:54+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2024-07-23T14:40:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=db84a0d6a236726c87d7c4ee86e95e65452b429e'/>
<id>urn:sha1:db84a0d6a236726c87d7c4ee86e95e65452b429e</id>
<content type='text'>
Inline the get_cipher implementation (including the special handling
for DTLS) in ssl_cipher_collect_ciphers() (the only consumer), remove
the get_cipher member of SSL_METHOD and mop up dtls1_get_cipher().

ssl3_get_cipher() has always had a strange property of being a reverse
index, which is relied on by the cipher list ordering code, since it
currently assumes that high cipher suite values are preferable. Rather
than complicating ssl3_get_cipher() (and regress), change the iteration
order in ssl_cipher_collect_ciphers() to match what it requires. Lastly,
rename ssl3_get_cipher() to be more descriptive.

ok tb@
</content>
</entry>
<entry>
<title>Use cipher suite values instead of IDs.</title>
<updated>2024-07-22T14:47:15+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2024-07-22T14:47:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=bad64c687dbea7670efcb08ff393fe641d0e673d'/>
<id>urn:sha1:bad64c687dbea7670efcb08ff393fe641d0e673d</id>
<content type='text'>
OpenSSL has had the concept of cipher IDs, which were a way of working
around overlapping cipher suite values between SSLv2 and SSLv3. Given
that we no longer have to deal with this issue, replace the use of IDs
with cipher suite values. In particular, this means that we can stop
mapping back and forth between the two, simplifying things considerably.

While here, remove the 'valid' member of the SSL_CIPHER. The ssl3_ciphers[]
table is no longer mutable, meaning that ciphers cannot be disabled at
runtime (and we have `#if 0' if we want to do it at compile time).

Clean up the comments and add/update RFC references for cipher suites.

ok tb@
</content>
</entry>
<entry>
<title>Move client ciphers from SSL_SESSION to SSL_HANDSHAKE.</title>
<updated>2024-07-19T08:54:31+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2024-07-19T08:54:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=f5a7be1aa230b5dad73001a01843e188c2475c6a'/>
<id>urn:sha1:f5a7be1aa230b5dad73001a01843e188c2475c6a</id>
<content type='text'>
SSL_SESSION has a 'ciphers' member which contains a list of ciphers
that were advertised by the client. Move this from SSL_SESSION to
SSL_HANDSHAKE and rename it to match reality.

ok tb@
</content>
</entry>
<entry>
<title>Clean up SSL_HANDSHAKE_MAC_DEFAULT.</title>
<updated>2024-07-16T14:38:04+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2024-07-16T14:38:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=ea3c4b33c8da0b7467a6306a9c964b492f836294'/>
<id>urn:sha1:ea3c4b33c8da0b7467a6306a9c964b492f836294</id>
<content type='text'>
The handshake MAC needs to be upgraded when TLSv1.0 and TLSv1.1
ciphersuites are used with TLSv1.2. Since we no longer support TLSv1.0
and TLSv1.1, we can simply upgrade the handshake MAC in the ciphersuite
table and remove the various defines/macros/code that existed to handle
the upgrade.

ok tb@
</content>
</entry>
<entry>
<title>Mop up TLS1_PRF* defines.</title>
<updated>2024-07-15T14:45:15+00:00</updated>
<author>
<name>jsing</name>
<email></email>
</author>
<published>2024-07-15T14:45:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=2559a9bfe12a58a7e0e7cd03ecc37b5722e8f7ef'/>
<id>urn:sha1:2559a9bfe12a58a7e0e7cd03ecc37b5722e8f7ef</id>
<content type='text'>
These have not been used for a long time, however SSL_CIPHER was not opaque
at the time, hence they had to stick around. Now that SSL_CIPHER is opaque
we can simply mop them up.

ok tb@
</content>
</entry>
<entry>
<title>Remove fixed nonce length information from algorithm2</title>
<updated>2024-05-10T05:08:05+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2024-05-10T05:08:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=81cb1327882739d862da4759f598b847fa0ce90e'/>
<id>urn:sha1:81cb1327882739d862da4759f598b847fa0ce90e</id>
<content type='text'>
This information has been part of tls12_key_block_generate() for a while
now. It remained in this table because at that point SSL_CIPHER was still
public. Nothing can access algorithm2 anymore from the outside, so this is
dead weight.

ok jsing
</content>
</entry>
<entry>
<title>Make {SSL3,TLS}_CT_* internal</title>
<updated>2024-03-02T11:46:55+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2024-03-02T11:46:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=a0b9f13997d3fef1ae0bb36ea3411779fd154d72'/>
<id>urn:sha1:a0b9f13997d3fef1ae0bb36ea3411779fd154d72</id>
<content type='text'>
And here goes a bunch of unused macros that just had to be in two
headers so they could get out of sync. Three of these constants
are used in a single function...

ok jsing
</content>
</entry>
<entry>
<title>Export SSL_get_{peer_,}signature_type_nid()</title>
<updated>2024-03-02T11:44:47+00:00</updated>
<author>
<name>tb</name>
<email></email>
</author>
<published>2024-03-02T11:44:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=e6ba1ba77c418a957100a7562bf08d1ab8eb012e'/>
<id>urn:sha1:e6ba1ba77c418a957100a7562bf08d1ab8eb012e</id>
<content type='text'>
Also move the prototypes to the correct header.

Oversight reported by Frank Lichtenheld, thanks!
Fixes https://github.com/libressl/openbsd/issues/147

ok jsing
</content>
</entry>
<entry>
<title>Remove GOST and STREEBOG support from libssl.</title>
<updated>2024-02-03T15:58:34+00:00</updated>
<author>
<name>beck</name>
<email></email>
</author>
<published>2024-02-03T15:58:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/openbsd/commit/?id=20afa90e552d2efed2187dbafc92170a3895e921'/>
<id>urn:sha1:20afa90e552d2efed2187dbafc92170a3895e921</id>
<content type='text'>
This version of GOST is old and not anywhere close to compliant with
modern GOST standards. It is also very intrusive in libssl and
makes a mess everywhere.  Efforts to entice a suitably minded anyone
to care about it have been unsuccessful.

At this point it is probably best to remove this, and if someone
ever showed up who truly needed a working version, it should be
a clean implementation from scratch, and have it use something
closer to the typical API in libcrypto so it would integrate less
painfully here.

This removes it from libssl in preparation for it's removal from
libcrypto with a future major bump

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