<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openssl, branch feature/acert-cli</title>
<subtitle>TLS/SSL and crypto library.</subtitle>
<id>http://git.bktus.com/gpgfrontend/openssl/atom?h=feature%2Facert-cli</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/openssl/atom?h=feature%2Facert-cli'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/'/>
<updated>2026-09-27T09:04:28Z</updated>
<entry>
<title>test: regenerate CMP mock server certs, crosscerts had expired</title>
<updated>2026-09-27T09:04:28Z</updated>
<author>
<name>Norbert Pocs</name>
<email>norbertp@openssl.org</email>
</author>
<published>2026-09-26T15:12:36Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=1e369089f47c6c80a4d00c14cbee3a1300abe9da'/>
<id>urn:sha1:1e369089f47c6c80a4d00c14cbee3a1300abe9da</id>
<content type='text'>
The rootCaCert crosscerts newWithOld.pem and oldWithNew.pem added in
commit 5f38725fce were created by setup-mock.sh with "openssl x509 -new"
and no -days option. They therefore got the default validity of 30 days
and expired on Sep 26 13:02:12 2026 GMT. Since then, the "genm
rootCaCert" cases of test_cmp_http fail with "certificate has expired".

Pass -days $DAYS to every "x509 -new" call in setup-mock.sh, including
the ones in genee_kem() used for PQC. Then regenerate the mock server
credentials with gen_server_credentials. All of them are now valid for
100 years, like the other test certs made by mkcert.sh. The client
(signer) chain is still valid and is not changed.

Assisted-by: Claude Code:claude-opus-5-5

Signed-off-by: Norbert Pocs &lt;norbertp@openssl.org&gt;
Reviewed-by: Daniel Kubec &lt;kubec@openssl.foundation&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Reviewed-by: Milan Broz &lt;mbroz@openssl.org&gt;
Merge-date: Sun Sep 27 09:04:30 2026
Merged-from: https://github.com/openssl/openssl/pull/33003
</content>
</entry>
<entry>
<title>FIPS: Changes FIPS indicators so that all approved algorithms have a gettable indicator</title>
<updated>2026-09-26T21:24:08Z</updated>
<author>
<name>slontis</name>
<email>shane.lontis@oracle.com</email>
</author>
<published>2026-09-22T03:05:09Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=b20968dff56f85c5297343a0de488cdd871bd670'/>
<id>urn:sha1:b20968dff56f85c5297343a0de488cdd871bd670</id>
<content type='text'>
If there is no indicator then an algorithm is not approved. This diverges from
the previous definition which was if an algorithm had "fips=yes" and had no
indicator it was approved.

Assisted-by: OpenAI Codex:gpt-5.6-sol
Reviewed-by: Milan Broz &lt;mbroz@openssl.org&gt;
Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
Reviewed-by: Norbert Pocs &lt;norbertp@openssl.org&gt;
Merge-date: Sat Sep 26 21:24:10 2026
Merged-from: https://github.com/openssl/openssl/pull/32910
</content>
</entry>
<entry>
<title>paramnames: Add support for constant FIPS indicators</title>
<updated>2026-09-26T21:22:57Z</updated>
<author>
<name>Paul Dale</name>
<email>paul.dale@oracle.com</email>
</author>
<published>2026-09-23T01:34:25Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=0025d44f014bf0c5b48554dbc34e23cd061fada3'/>
<id>urn:sha1:0025d44f014bf0c5b48554dbc34e23cd061fada3</id>
<content type='text'>
When the parameter generator sees the special field name "fips indicator", it
adds the indicator to the gettable parameter list only under FIPS_MODULE and
auto-generates decoder code equivalent to:

if (strcmp("fips-indicator", s) == 0) {
    if (!OSSL_PARAM_set_int((OSSL_PARAM *)p, 1))
        return 0;
}

No result structure field is needed for this constant parameter. If no real
fields remain, emit a dummy member to avoid generating an empty C structure.

Reviewed-by: Milan Broz &lt;mbroz@openssl.org&gt;
Reviewed-by: Norbert Pocs &lt;norbertp@openssl.org&gt;
Merge-date: Sat Sep 26 21:24:09 2026
Merged-from: https://github.com/openssl/openssl/pull/32910
</content>
</entry>
<entry>
<title>Add a threads test for concurrent X509_self_signed() on one certificate</title>
<updated>2026-09-26T12:25:52Z</updated>
<author>
<name>Bob Beck</name>
<email>beck@openssl.org</email>
</author>
<published>2026-09-03T20:55:10Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=1b6206d05d63fcb42a3b902e3c2459ae5cf284ff'/>
<id>urn:sha1:1b6206d05d63fcb42a3b902e3c2459ae5cf284ff</id>
<content type='text'>
Reproduces the race from #32609 under TSAN: multiple threads perform the first use of a certificate's cached extension data at the same time.

Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Merge-date: Sat Sep 26 12:31:25 2026
Merged-from: https://github.com/openssl/openssl/pull/32614
</content>
</entry>
<entry>
<title>Don't update the certificate in cache_extensions if we lost the race.</title>
<updated>2026-09-26T12:25:50Z</updated>
<author>
<name>Bob Beck</name>
<email>beck@openssl.org</email>
</author>
<published>2026-08-31T15:57:26Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=3b1acea33c054ae2bebc5689b39e15d37f437539'/>
<id>urn:sha1:3b1acea33c054ae2bebc5689b39e15d37f437539</id>
<content type='text'>
ossl_x509v3_cache_extensions() checks for an unprocessed cert under
a read lock, computes the cached values, then takes a write lock to
install them. Re-check EXFLAG_SET after acquiring the write lock in
case another thread has updated the certificate in the meantime, and
if so, do not install our values over theirs.

Since losing the race requires freeing the temporary objects, convert
the function to a single exit that frees whatever was not installed.
This also fixes a pre-existing leak of the temporaries when acquiring
the write lock failed.

Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Merge-date: Sat Sep 26 12:31:24 2026
Merged-from: https://github.com/openssl/openssl/pull/32614
</content>
</entry>
<entry>
<title>Update ssl/quic/quic_strm_reas.c</title>
<updated>2026-09-26T11:35:08Z</updated>
<author>
<name>Sashan</name>
<email>anedvedicky@gmail.com</email>
</author>
<published>2026-09-25T06:57:36Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=e7b0913ffa94444de3bbf35b5980f0f484ef9e50'/>
<id>urn:sha1:e7b0913ffa94444de3bbf35b5980f0f484ef9e50</id>
<content type='text'>
Co-authored-by: Tomáš Mráz &lt;tm@t8m.info&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Sat Sep 26 11:35:40 2026
Merged-from: https://github.com/openssl/openssl/pull/32038
</content>
</entry>
<entry>
<title>tests: test_dstorage_cleanse() and test_heap_overlap()</title>
<updated>2026-09-26T11:35:08Z</updated>
<author>
<name>Alexandr Nedvedicky</name>
<email>sashan@openssl.org</email>
</author>
<published>2026-09-23T01:16:02Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=2d6c7ced43372ff546e30c04e31e87aadc75a739'/>
<id>urn:sha1:2d6c7ced43372ff546e30c04e31e87aadc75a739</id>
<content type='text'>
Both tests are based on code contributed by Mounir IDRASSI.
In order to reach the code to test, the tests must insert
fill frames to trip packet buffer overhead tresshold. Both
tests also override malloc()/realloc()/free() with
customized implementation to verify the code in QUIC
stack stream reassembly module works as expected.

test_dstorage_cleanse() test verifies the ST_TYPE_DIRECT
storage buffer is properly zeroized when data are read
from stream. The test inserts 16B of stream data to offset
zero. Then it reads 8 bytes from offset 0. The test then
walks all allocated buffers trying to find a pattern of
16B which got written to stream earlier. The test succeeds
when pattern is not found.

test_heap_overlap() test verifies the overlapping chunks
are shrunk and memory is reclaimed. The test inserts
256 frames of 1kB size. There is 1022 bytes of overlap
between frames. The test verifies the overlapping bytes
are released by realloc().

Co-authored-by: Mounir IDRASSI &lt;mounir.idrassi@amcrypto.jp&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Sat Sep 26 11:35:39 2026
Merged-from: https://github.com/openssl/openssl/pull/32038
</content>
</entry>
<entry>
<title>test: cover sc_data_trim_right() function</title>
<updated>2026-09-26T11:35:08Z</updated>
<author>
<name>Alexandr Nedvedicky</name>
<email>sashan@openssl.org</email>
</author>
<published>2026-09-21T15:15:33Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=436edc8f97b807b8909dd006cbd72bf290b3553c'/>
<id>urn:sha1:436edc8f97b807b8909dd006cbd72bf290b3553c</id>
<content type='text'>
sc_data_trim_right() function shrinks heap buffer with
stream data by trimming the buffer from its end.
In order to reclaim unused memory the function uses realloc().

To reach code in the sc_data_trim_right() the test queues the fill
frames first so packet buffer overhead tresshold is reached,
The fill frames are intentionally placed beyond the gap so
they don't interfer with testing done later.

The test creates 3 dis-joint ranges. Each range is 64B long.
The offsets are: 0, 128, 256. Then partial read of 16 bytes happens.
After that the test inserts yet another stream frame that carries
160 bytes of data and lands to offset 63. The frame joins the
first two ranges. The join operation calls to sc_data_trim_right().

Finally to verify things do work as expected The test reads
all available data from stream and verifies those data match
the expected content.

The test is based on code submitted by Mounir IDRASSI

Co-authored-by: Mounir IDRASSI &lt;mounir.idrassi@amcrypto.jp&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Sat Sep 26 11:35:38 2026
Merged-from: https://github.com/openssl/openssl/pull/32038
</content>
</entry>
<entry>
<title>test: cover cleansing of dropped duplicate bytes</title>
<updated>2026-09-26T11:35:08Z</updated>
<author>
<name>Jakub Zelenka</name>
<email>jakub.zelenka@openssl.foundation</email>
</author>
<published>2026-09-08T09:56:39Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=ea6c7f2c6d05237c75fedcf6e03773f0afb36750'/>
<id>urn:sha1:ea6c7f2c6d05237c75fedcf6e03773f0afb36750</id>
<content type='text'>
With cleansing enabled every dropped duplicate byte of an incoming
frame must be wiped in its packet buffer: a retransmit reaching below
the consumed offset, a retransmit consumed entirely, a duplicate
contained in an existing range and the tail trimmed away when a short
frame is prepended to a direct storage chunk. Otherwise the plaintext
stays in the recycled packet buffer which nothing else cleanses.

Assisted-by: Claude:claude-fable-5
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Sat Sep 26 11:35:37 2026
Merged-from: https://github.com/openssl/openssl/pull/32038
</content>
</entry>
<entry>
<title>test: cover two sided overlap of direct tail chunk</title>
<updated>2026-09-26T11:35:08Z</updated>
<author>
<name>Jakub Zelenka</name>
<email>jakub.zelenka@openssl.foundation</email>
</author>
<published>2026-09-07T13:28:13Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=b98e1931a2d46a297263bb831aa0ca5449602732'/>
<id>urn:sha1:b98e1931a2d46a297263bb831aa0ca5449602732</id>
<content type='text'>
A short retransmitted frame which starts below an existing range and
ends past its direct storage tail chunk slips past the full overlap
guard in try_dstorage() because it is not larger than the direct
storage size. The append path then treats every byte below the tail
chunk end as a duplicate and drops the genuinely new bytes below the
range start while reporting success, so the frame is acked and the
gap in the stream becomes permanent.

Assisted-by: Claude:claude-fable-5
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Sat Sep 26 11:35:37 2026
Merged-from: https://github.com/openssl/openssl/pull/32038
</content>
</entry>
</feed>
