<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openssl/include/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:37Z</updated>
<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>Optimize ML-KEM for the s390x architecture</title>
<updated>2026-09-29T16:46:54Z</updated>
<author>
<name>Timo Keller</name>
<email>tkeller@linux.ibm.com</email>
</author>
<published>2026-08-19T07:35:12Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=40a859217a74c540d83052d5a6ad0502e7179bc9'/>
<id>urn:sha1:40a859217a74c540d83052d5a6ad0502e7179bc9</id>
<content type='text'>
The vectorization is implemented using vector extensions (of gcc/clang)
and will work on any architecture with 128 bit vector registers that has
suitable builtins like `vec_mulh` for the high part of a multiplication.

We also optimize the multiplication in `F_{q^2}` using a twisted
Karatsuba multiplication.

Bob has only been used for writing the comments based on a formal
verification of the code, and for the extraction of the constants
at the beginning of `ml_kem_vec128.c`.

Enable this for s390x.

Signed-off-by: Timo Keller &lt;tkeller@linux.ibm.com&gt;
Assisted-by: IBM Bob:2.0.3
Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Merge-date: Tue Sep 29 16:47:13 2026
Merged-from: https://github.com/openssl/openssl/pull/31929
</content>
</entry>
<entry>
<title>ec: make ossl_ec_scalar_mul_ladder() scalar padding constant time</title>
<updated>2026-09-29T11:23:48Z</updated>
<author>
<name>Igor Ustinov</name>
<email>igus@openssl.foundation</email>
</author>
<published>2026-07-28T20:09:29Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=f297baaa1142ab42e628fdd7a54b96592d2559dd'/>
<id>urn:sha1:f297baaa1142ab42e628fdd7a54b96592d2559dd</id>
<content type='text'>
Fixes CVE-2026-54872

Assisted-by: Claude:claude-opus-4-8
Reviewed-by: Alicja Kario &lt;hkario@redhat.com&gt;
Reviewed-by: Viktor Dukhovni &lt;viktor@openssl.org&gt;
Merge-date: Tue Sep 29 11:23:53 2026
</content>
</entry>
<entry>
<title>Defer computation of relative CRLDP names</title>
<updated>2026-09-29T11:11:17Z</updated>
<author>
<name>Viktor Dukhovni</name>
<email>viktor@openssl.org</email>
</author>
<published>2026-09-02T08:53:50Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=94b39d044a2a304adf8ab373248a00beec2d210a'/>
<id>urn:sha1:94b39d044a2a304adf8ab373248a00beec2d210a</id>
<content type='text'>
These are derived just-in-time, during any actual CRL processing.

Fixes CVE-2026-35189

Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Reviewed-by: Bob Beck &lt;beck@openssl.org&gt;
Reviewed-by: Norbert Pocs &lt;norbertp@openssl.org&gt;
Merge-date: Tue Sep 29 11:11:18 2026
</content>
</entry>
<entry>
<title>Re-format code after TypenameMacros and ForEachMacros additions</title>
<updated>2026-09-24T09:00:53Z</updated>
<author>
<name>Eugene Syromiatnikov</name>
<email>esyr@openssl.org</email>
</author>
<published>2026-08-11T12:59:31Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=98089e8145b2b3e6ff081b1c39558a1b97b4eb95'/>
<id>urn:sha1:98089e8145b2b3e6ff081b1c39558a1b97b4eb95</id>
<content type='text'>
Re-formatting was done using the following command:

    for i in `git grep -l 'OSSL_LIST\|PRIORITY_QUEUE_OF\|SPARSE_ARRAY_OF' \
                       -- '*.c' '*.h' '*.c.in' '*.h.in'`; do \
        clang-format-21 --style=file:.clang-format -i "$i"; \
    done

Signed-off-by: Eugene Syromiatnikov &lt;esyr@openssl.org&gt;
Reviewed-by: Milan Broz &lt;mbroz@openssl.org&gt;
Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Merge-date: Thu Sep 24 09:01:06 2026
Merged-from: https://github.com/openssl/openssl/pull/32304
</content>
</entry>
<entry>
<title>aes-ctr-avx512: disable the VAES-512 CTR path for MSVC</title>
<updated>2026-09-21T09:57:30Z</updated>
<author>
<name>Madan mohan Manokar</name>
<email>madanmohan.manokar@amd.com</email>
</author>
<published>2026-09-18T11:37:53Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=99970d351c5168f08b81fb24e7d9d225e997cc8e'/>
<id>urn:sha1:99970d351c5168f08b81fb24e7d9d225e997cc8e</id>
<content type='text'>
MSVC 14.51 builds of the VAES-512 CTR kernel return a wrong keystream for
AES-192 and AES-256 whenever the block count leaves a 4-block (single-zmm)
step.  The default CTR-DRBG runs on AES-256-CTR, so this also corrupts
random byte generation and makes unrelated tests fail.

The same code is correct on VAES hardware built with gcc, so keep the hook
enabled there and off for MSVC until the code generation issue is found.
AES-CBC decryption is unaffected and stays enabled.

Hosted runners rarely have AVX-512, so whether CI exercises this path at all
depends on which host a job lands on.  Run evp_extra_test under Intel SDE as
well, where -icx always reports VAES.

Refs #32873

Reviewed-by: Milan Broz &lt;mbroz@openssl.org&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Merge-date: Mon Sep 21 09:57:35 2026
Merged-from: https://github.com/openssl/openssl/pull/32883
</content>
</entry>
<entry>
<title>NUL-terminate ASN1_STRING data built inside libcrypto</title>
<updated>2026-09-18T09:05:47Z</updated>
<author>
<name>Bob Beck</name>
<email>beck@openssl.org</email>
</author>
<published>2026-09-14T15:56:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=5df7d33922d8a18e77bee28aeadbe2628fc34a7b'/>
<id>urn:sha1:5df7d33922d8a18e77bee28aeadbe2628fc34a7b</id>
<content type='text'>
Add ossl_asn1_string_set1_data() and ossl_asn1_string_set1_string(),
copies of the public setters that also write a NUL byte after the data,
and switch all libcrypto callers to them. The ecosystem still treats
ASN1_STRING data as C strings; this keeps it working while it is fixed.
Removing the terminator later is a one-argument change in one function.

Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Andrew Dinh &lt;andrewd@openssl.org&gt;
Reviewed-by: Milan Broz &lt;mbroz@openssl.org&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
Merge-date: Fri Sep 18 09:05:58 2026
Merged-from: https://github.com/openssl/openssl/pull/32829
</content>
</entry>
<entry>
<title>Use SipHash for the internal fingerprint</title>
<updated>2026-09-17T16:44:11Z</updated>
<author>
<name>Bob Beck</name>
<email>beck@openssl.org</email>
</author>
<published>2026-09-03T23:51:43Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=90c3f5110fc66dce374512738f2667c29eca2c5e'/>
<id>urn:sha1:90c3f5110fc66dce374512738f2667c29eca2c5e</id>
<content type='text'>
Replace SHA-1 with SipHash-2-4 (fixed key, 64-bit output) for the
internal X509 and X509_CRL fingerprint.

Always build crypto/siphash; no-siphash now only removes the provider
MAC.

Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Merge-date: Thu Sep 17 16:44:35 2026
Merged-from: https://github.com/openssl/openssl/pull/32686
</content>
</entry>
<entry>
<title>Compute X509_get_signature_info() on demand, not in the cache</title>
<updated>2026-09-17T16:44:11Z</updated>
<author>
<name>Bob Beck</name>
<email>beck@openssl.org</email>
</author>
<published>2026-09-03T23:28:44Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=403dbe58caa08b30ed2c63dca42db5d952a6ae32'/>
<id>urn:sha1:403dbe58caa08b30ed2c63dca42db5d952a6ae32</id>
<content type='text'>
The signature info was computed once by ossl_x509v3_cache_extensions()
and stored in X509::siginf. Its security bits depend on a digest fetch
under the certificate's libctx/propq, so the cached answer was frozen
to the context the certificate was parsed in.

Compute it in X509_get_signature_info() instead. The siginf field and
ossl_x509_init_sig_info() are removed.

Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Merge-date: Thu Sep 17 16:44:34 2026
Merged-from: https://github.com/openssl/openssl/pull/32686
</content>
</entry>
<entry>
<title>Make the cached SHA-1 fingerprint internal-only</title>
<updated>2026-09-17T16:44:11Z</updated>
<author>
<name>Bob Beck</name>
<email>beck@openssl.org</email>
</author>
<published>2026-09-03T22:48:44Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=647a96676a01b223b500fc14d7dcd93489576ee8'/>
<id>urn:sha1:647a96676a01b223b500fc14d7dcd93489576ee8</id>
<content type='text'>
X509::sha1_hash exists only so X509_cmp() can compare certificates by
identity, yet X509_digest() handed it to callers when asked for SHA-1,
and it was computed under the certificate's libctx/propq, tying an
internal value to the context the certificate was parsed in.

Compute it with the built-in SHA-1 over the DER encoding instead, via
the new ossl_x509_internal_fingerprint(), so it is the same in every
library context; the only remaining failure mode is an allocation
failure. Drop the X509_digest() shortcut so the cached value is never
visible to callers, and rename the field to fingerprint in X509 and
X509_CRL. The CRL side gets the same treatment in a following commit.

Reviewed-by: Mounir Idrassi &lt;mounir.idrassi@idrix.fr&gt;
Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Merge-date: Thu Sep 17 16:44:33 2026
Merged-from: https://github.com/openssl/openssl/pull/32686
</content>
</entry>
</feed>
