<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openssl/crypto, branch master</title>
<subtitle>TLS/SSL and crypto library.</subtitle>
<id>http://git.bktus.com/gpgfrontend/openssl/atom?h=master</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/openssl/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/'/>
<updated>2026-10-23T15:19:41Z</updated>
<entry>
<title>s390x: Display 'cex_min_bits' and 'nocex' as part of CPUINFO</title>
<updated>2026-10-23T15:19:41Z</updated>
<author>
<name>Ingo Franzki</name>
<email>ifranzki@linux.ibm.com</email>
</author>
<published>2026-06-22T09:53:31Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=82f312e8de598d1d72da20d4c4a8906531134949'/>
<id>urn:sha1:82f312e8de598d1d72da20d4c4a8906531134949</id>
<content type='text'>
Command 'openssl version -c' as well as other commands (e.g. 'openssl speed')
display the CPU information. For s390x, this includes the OPENSSL_s390xcap
settings that are currently in place.

Also display the 'cex_min_bits:&lt;bits&gt;' and 'nocex' settings there.

The 'cex_min_bits' setting is always displayed, showing the default value if
it was not explicitly specified via the OPENSSL_s390xcap environment variable.

The 'nocex' setting is only displayed when it was explicitly set via the
OPENSSL_s390xcap environment variable, or if offloading is disabled because
no crypto adapters are available or the file descriptor has been closed
by other means.

Signed-off-by: Ingo Franzki &lt;ifranzki@linux.ibm.com&gt;

Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
MergeDate: Fri Oct 23 15:20:46 2026
(Merged from https://github.com/openssl/openssl/pull/31630)
</content>
</entry>
<entry>
<title>s390x: Disable mod-expo offloading to a crypto card for small exponents</title>
<updated>2026-10-23T15:19:37Z</updated>
<author>
<name>Ingo Franzki</name>
<email>ifranzki@linux.ibm.com</email>
</author>
<published>2026-05-19T13:12:24Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=b8e2dba6bbaa1b1817f17097b57bc2598ecb3df3'/>
<id>urn:sha1:b8e2dba6bbaa1b1817f17097b57bc2598ecb3df3</id>
<content type='text'>
Add a new keyword 'cex_min_bits:&lt;bits&gt;' for the OPENSSL_s390xcap environment
variable to specify the minimum number of bits that the exponent must have
to offload the operation to the crypto card. Operations with smaller exponents
fall back to software calculation. Mod-expo operations with small exponents
are faster in software than via the crypto card.

The default minimum exponent size is 2048 bits, but this can be changed via
the OPENSSL_s390xcap environment variable.

For mod-expo operations the exponent is checked, and for RSA CRT operations
the modulus is checked to have the minimum bit size. RSA public key operations
usually have small exponents, so they are most likely always performed in
software.

Checking the bit size of a BIGNUM may or may not be constant-time, dependent
on the BN_FLG_CONSTTIME flag of the BIGNUM. For RSA CRT operations, the bit
size of the modulus is checked. The modulus is public information, so no
constant-time issue here. For mod-expo operations with the public exponent
it is also not a constant-time issue, because the public exponent is also
public information. For mod-expo operations with the private exponent, the
size of the private exponent is usually the same as the size of the modulus,
which is public information. For DH mod-expo operations with the private key,
the size of the private key is usually dependent on the DH group that is
used, and this is also public information. Nevertheless, private exponents
better have the BN_FLG_CONSTTIME flag set. For RSA this is the case, and for
DH it is also the case when flag DH_FLAG_CACHE_MONT_P is set, which is always
done (dh_init() sets the flag unconditionally). Furthermore, flag
BN_FLG_CONSTTIME is set for the private key in ossl_dh_generate_public_key().

Signed-off-by: Ingo Franzki &lt;ifranzki@linux.ibm.com&gt;

Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
MergeDate: Fri Oct 23 15:20:45 2026
(Merged from https://github.com/openssl/openssl/pull/31630)
</content>
</entry>
<entry>
<title>poly1305-armv9-sve2.pl: close STDOUT before exiting</title>
<updated>2026-10-23T12:49:38Z</updated>
<author>
<name>t0kubetsu</name>
<email>alexis.danjon@nc3.lu</email>
</author>
<published>2026-10-20T09:00:49Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=11d83607b8152c77e1175190e42034c5a6f6e77c'/>
<id>urn:sha1:11d83607b8152c77e1175190e42034c5a6f6e77c</id>
<content type='text'>
The last line of the script was " STDOUT or die ...", without the
"close" keyword, so the pipe to arm-xlate.pl was never closed
explicitly. Perl could then exit before arm-xlate.pl had written the
output file, and make compiled poly1305-armv9-sve2.S before it existed:

    gcc: error: crypto/poly1305/poly1305-armv9-sve2.S: No such file or directory

This was seen on linux-aarch64 builds in the manylinux2014 image
(perl 5.16.3) under QEMU. Running the generator alone 5 times in that
image, the output file was missing right after perl exited 5 times out
of 5; with this change, 0 times out of 5.

The other perlasm scripts, for example poly1305-armv8.pl and
chacha-armv8-sve.pl, already end with "close STDOUT or die ...".

CLA: trivial
Assisted-by: Claude Code:claude-opus-5-5
Reviewed-by: Shane Lontis &lt;shane.lontis@oracle.com&gt;
Reviewed-by: Tom Cosgrove &lt;tom.cosgrove@arm.com&gt;
Merge-date: Fri Oct 23 12:49:47 2026
Merged-from: https://github.com/openssl/openssl/pull/33276
</content>
</entry>
<entry>
<title>ml_kem: add AVX2 base multiplication and accumulation</title>
<updated>2026-10-21T16:38:18Z</updated>
<author>
<name>Paul Dale</name>
<email>paul.dale@oracle.com</email>
</author>
<published>2026-09-30T01:22:59Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=809b8180c1b0a041fda20f9bd0f18f3a29802d4f'/>
<id>urn:sha1:809b8180c1b0a041fda20f9bd0f18f3a29802d4f</id>
<content type='text'>
Use AVX2 NTT-domain multiplication and accumulation for ML-KEM inner
products, matrix products, and the transposed matrix product used in
key generation.

Rename the x86_64 perlasm source to reflect its wider scope.

Assisted-by: ChatGPT:gpt-6-Sol
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Wed Oct 21 16:38:25 2026
Merged-from: https://github.com/openssl/openssl/pull/33023
</content>
</entry>
<entry>
<title>ml_kem: add AVX2 NTT and inverse NTT</title>
<updated>2026-10-21T16:38:18Z</updated>
<author>
<name>Paul Dale</name>
<email>paul.dale@oracle.com</email>
</author>
<published>2026-09-29T03:43:14Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=8ce96d5b158bd29625c6a3bcd727412a1443734d'/>
<id>urn:sha1:8ce96d5b158bd29625c6a3bcd727412a1443734d</id>
<content type='text'>
Implement the FIPS 203 transforms in x86_64 perlasm with AVX2 runtime dispatch.

Assisted-by: ChatGPT:gpt-6-Sol
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Wed Oct 21 16:38:25 2026
Merged-from: https://github.com/openssl/openssl/pull/33023
</content>
</entry>
<entry>
<title>aes: fix riscv64 constant-time fallback selection</title>
<updated>2026-10-21T16:17:29Z</updated>
<author>
<name>peter941221</name>
<email>peter941221@gmail.com</email>
</author>
<published>2026-09-10T01:15:32Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=77e38ea1269c033a4ae6b5c8649a72747ac1b3aa'/>
<id>urn:sha1:77e38ea1269c033a4ae6b5c8649a72747ac1b3aa</id>
<content type='text'>
Reviewed-by: Andrew Dinh &lt;andrewd@openssl.org&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Wed Oct 21 16:17:44 2026
Merged-from: https://github.com/openssl/openssl/pull/31080
</content>
</entry>
<entry>
<title>aes: remove unused riscv64 assembly generation</title>
<updated>2026-10-21T16:17:29Z</updated>
<author>
<name>peter941221</name>
<email>peter941221@gmail.com</email>
</author>
<published>2026-07-20T22:19:55Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=92b650743db3fbd655fff36988ab7aac7775521d'/>
<id>urn:sha1:92b650743db3fbd655fff36988ab7aac7775521d</id>
<content type='text'>
Reviewed-by: Andrew Dinh &lt;andrewd@openssl.org&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Wed Oct 21 16:17:44 2026
Merged-from: https://github.com/openssl/openssl/pull/31080
</content>
</entry>
<entry>
<title>aes: make riscv64 no-Zkn fallback constant time</title>
<updated>2026-10-21T16:17:28Z</updated>
<author>
<name>peter941221</name>
<email>peter941221@gmail.com</email>
</author>
<published>2026-05-05T00:45:14Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=10eed54603ad35dea0429e841641259d91d73b69'/>
<id>urn:sha1:10eed54603ad35dea0429e841641259d91d73b69</id>
<content type='text'>
Reviewed-by: Andrew Dinh &lt;andrewd@openssl.org&gt;
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Merge-date: Wed Oct 21 16:17:44 2026
Merged-from: https://github.com/openssl/openssl/pull/31080
</content>
</entry>
<entry>
<title>x509: key the duplicate-extension hash with SipHash to resist flooding</title>
<updated>2026-10-21T15:58:47Z</updated>
<author>
<name>Daniel Kubec</name>
<email>kubec@openssl.foundation</email>
</author>
<published>2026-10-20T11:15:46Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=66fdbb1ca51bc10ac5fa1a8843365c48f1263df0'/>
<id>urn:sha1:66fdbb1ca51bc10ac5fa1a8843365c48f1263df0</id>
<content type='text'>
scan_ext_flags() deduplicates certificate extensions. Standard extensions have
an assigned NID and are handled by an O(1) bitset, but unknown or dynamically
registered OIDs fall back to an hash table.

Hash the OID with SipHash under a random key drawn once per scan, so the bucket
an OID lands in is unpredictable to an attacker. This mirrors the existing
defense for attacker-controlled keys in ssl/quic/quic_lcidm.c.

If the table cannot be set up or an insert fails, fail closed with
EXFLAG_INVALID, as ossl_x509v3_cache_extensions() does for any other extension
it cannot process. Leaving the loop silently would skip not only the duplicate
check but also the unsupported-critical check for this and every later
extension.

Discovered by Anthropic's OSS Scanner (finding ANT-2026-7UKRZ2MY).

Assisted-by: Claude:claude-opus-4-8
Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Matt Caswell &lt;matt@openssl.foundation&gt;
Merge-date: Wed Oct 21 15:58:52 2026
Merged-from: https://github.com/openssl/openssl/pull/33281
</content>
</entry>
<entry>
<title>CMS_get0_signers() returns only the signers that passed verification</title>
<updated>2026-10-21T15:38:13Z</updated>
<author>
<name>Igor Ustinov</name>
<email>igus@openssl.foundation</email>
</author>
<published>2026-10-20T10:39:47Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=d218dcf1bc23916db58c386c656c213da193e0f6'/>
<id>urn:sha1:d218dcf1bc23916db58c386c656c213da193e0f6</id>
<content type='text'>
With CMS_VERIFY_PARTIAL, CMS_verify() succeeds as long as at least
one SignerInfo verifies, but CMS_get0_signers() still returned the
certificate of every SignerInfo, defeating "signed by X" or
"signed by N signers" policies. The same applied to the certificates
written by "openssl cms -verify -verify_partial -signer".

This commit fixes CMS_get0_signers() behaviour returning only
certificates of signers that passed verification.
Nothing changes if CMS_VERIFY_PARTIAL isn't set.

Reported-by: Anthropic OSS scan id ANT-2026-GF4OIPVH

Assisted-by: Claude:claude-opus-5-5
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Reviewed-by: Matt Caswell &lt;matt@openssl.foundation&gt;
Merge-date: Wed Oct 21 15:39:29 2026
Merged-from: https://github.com/openssl/openssl/pull/33279
</content>
</entry>
</feed>
