<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openssl/include/arch, 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>Remove VXE from requirements of S390X_VX_CAPABLE</title>
<updated>2026-09-29T16:46:54Z</updated>
<author>
<name>Timo Keller</name>
<email>tkeller@linux.ibm.com</email>
</author>
<published>2026-08-19T07:34:14Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=ce27d68f092614d756d53b0051e4663c54151b18'/>
<id>urn:sha1:ce27d68f092614d756d53b0051e4663c54151b18</id>
<content type='text'>
Note that in all instances where we check for VX using S390X_VX_CAPABLE
for s390x, we do not need VXE.

Signed-off-by: Timo Keller &lt;tkeller@linux.ibm.com&gt;
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:12 2026
Merged-from: https://github.com/openssl/openssl/pull/31929
</content>
</entry>
<entry>
<title>Copyright year updates</title>
<updated>2026-09-09T13:12:46Z</updated>
<author>
<name>openssl-machine</name>
<email>openssl-machine@openssl.org</email>
</author>
<published>2026-09-09T13:12:46Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=e074eab6c45587864f169a1c70bcaccae7517dc0'/>
<id>urn:sha1:e074eab6c45587864f169a1c70bcaccae7517dc0</id>
<content type='text'>
Reviewed-by: Daniel Kubec &lt;kubec@openssl.foundation&gt;
Reviewed-by: Eugene Syromiatnikov &lt;esyr@openssl.org&gt;
Merge-date: Wed Sep  9 13:12:46 2026
Release: yes
</content>
</entry>
<entry>
<title>aarch64: Declare support for Armv9.4-A GCS in assembly</title>
<updated>2026-09-01T13:43:52Z</updated>
<author>
<name>Guillaume Gardet</name>
<email>guillaume.gardet@arm.com</email>
</author>
<published>2025-10-23T15:19:01Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=336f5cfb53f763932f0a1cba4ff8e2aeec100a24'/>
<id>urn:sha1:336f5cfb53f763932f0a1cba4ff8e2aeec100a24</id>
<content type='text'>
Guarded Control Stack (FEAT_GCS) is an architectural feature introduced
in Armv9.4-A and is optionally supported by Armv9.3-A implementations.

Signal that AArch64 assembly code is compliant with the Armv9.4-A GCS
feature by emitting the appropriate .gnu.note.property. GCS can be
turned on using the toolchain flag -mbranch-protection=standard with
Clang 18+ and GCC 15+.

The only requirement for assembly code to be compatible with GCS is
that functions return to the address from which they were called. GCS
enforces this requirement at run time using a protected shadow stack.

Signed-off-by: Guillaume Gardet &lt;guillaume.gardet@arm.com&gt;
Signed-off-by: Gowtham Suresh Kumar &lt;gowtham.sureshkumar@arm.com&gt;
Reviewed-by: Simo Sorce &lt;simo@redhat.com&gt;
Reviewed-by: Tom Cosgrove &lt;tom.cosgrove@arm.com&gt;
Merge-date: Tue Sep  1 13:44:18 2026
Merged-from: https://github.com/openssl/openssl/pull/31162
</content>
</entry>
<entry>
<title>Vectorize (inverse) NTT in ML-DSA</title>
<updated>2026-06-10T09:25:56Z</updated>
<author>
<name>Timo Keller</name>
<email>tkeller@linux.ibm.com</email>
</author>
<published>2026-03-16T06:18:26Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=24486294f7e8ec69318c3608edb191d7377735f1'/>
<id>urn:sha1:24486294f7e8ec69318c3608edb191d7377735f1</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
the builtin `vec_mulh` for the high part of a multiplication.

Enable this for s390x.

The speed-up factor on z17 is around 2--3.4.

Signed-off-by: Timo Keller &lt;tkeller@linux.ibm.com&gt;

Reviewed-by: Shane Lontis &lt;shane.lontis@oracle.com&gt;
Reviewed-by: Saša Nedvědický &lt;sashan@openssl.org&gt;
MergeDate: Wed Jun 10 09:25:58 2026
(Merged from https://github.com/openssl/openssl/pull/30812)
</content>
</entry>
<entry>
<title>Move *_arch.h to include/arch</title>
<updated>2026-05-10T09:53:33Z</updated>
<author>
<name>Norbert Pocs</name>
<email>norbertp@openssl.org</email>
</author>
<published>2026-04-09T11:38:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=4124d150697e7e4114015c2b35b2323be0b2bc89'/>
<id>urn:sha1:4124d150697e7e4114015c2b35b2323be0b2bc89</id>
<content type='text'>
Move all the architecture specific header files under a single directory
in include/

Signed-off-by: Norbert Pocs &lt;norbertp@openssl.org&gt;

Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Reviewed-by: Eugene Syromiatnikov &lt;esyr@openssl.org&gt;
MergeDate: Sun May 10 09:53:34 2026
(Merged from https://github.com/openssl/openssl/pull/30751)
</content>
</entry>
</feed>
