OpenSSL on IBM Z - out of the box
OpenSSL implicitly offers features to accelerate cryptographic operations on IBM Z and IBM LinuxONE cryptographic hardware by a built-in use of CPACF or optimized IBM Z assembler code. No specific OpenSSL configuration is required for exploiting these features.
Hardware acceleration with OpenSSL out of the box
Algorithm or function | Method of acceleration | HW generation or MSA version | available with OpenSSL version |
---|---|---|---|
AES-CBC | CPACF | MSA 4 - since IBM z114 | ≥ 1.1.1 |
AES-CCM | CPACF | MSA 4 - since IBM z114 | ≥ 1.1.1 |
AES-CFB (only CFB8 and CFB128) | CPACF | MSA 4 - since IBM z114 | ≥ 1.1.1 |
AES-ECB | CPACF | MSA 4 - since IBM z114 | ≥ 1.1.1 |
AES-GCM | CPACF | MSA 8 - since IBM z14®
If MSA 8 (KMA) is not available, an alternative CPACF based implementation requiring MSA 4 (KIMD and KM) is used. |
≥ 1.1.1 |
AES-OFB | CPACF | MSA 4 - since IBM z114 | ≥ 1.1.1 |
AES-XTS | CPACF |
MSA 4 - since IBM z114,
MSA 10 - since IBM z17 |
≥ 1.1.1
≥ 3.5.0 |
HMAC | CPACF | MSA 11 - since IBM z17 | ≥ 3.4.0 |
SHA-1 | CPACF | since 06/2003 | ≥ 1.1.1 |
SHA-2 | CPACF | since 09/2005 | ≥ 1.1.1 |
SHA-3 | CPACF |
MSA 6 - since IBM z14
MSA 12 - since IBM z17 |
≥ 1.1.1
≥ 3.4.0 |
SHAKE | CPACF |
MSA 6 - since IBM z14
MSA 12 - since IBM z17 |
≥ 1.1.1
≥ 3.4.0 |
GHASH | CPACF | MSA 4 - since IBM z114 | ≥ 1.1.1 |
Poly1305 | SIMD | IBM z13® | ≥ 1.1.1 |
Keccak-1600 | CPACF | MSA 6 - since IBM z14 | ≥ 1.1.1 |
ChaCha20 | SIMD | IBM z13 | ≥ 1.1.1 |
ECDSA/ECDH (for curves P-256, P-384, P-521) | CPACF | MSA 9 - since IBM z15 | ≥ 3.0.0 |
EdDSA and EdDH (for curves Curve25519, Curve448) | CPACF | MSA 9 - since IBM z15 | ≥ 3.0.0 |
BN GF2m | Assembler | independent from MSA | ≥ 1.1.1 |
BN Montgomery Multiplication | Assembler | independent from MSA | ≥ 1.1.1 |
Modular exponentiation and CRT operations (used by RSA and DH) | Crypto Express adapter in CCA coprocessor mode or in accelerator mode. | independent from MSA | ≥ 3.2.0 |
You can use cpacfinfo -m or cpacfinfo
--msa to find out which MSA levels are available. Combining the options
--msa and --functions with the cpacfinfo
command, like
cpacfinfo --msa --functions (or short: cpacfinfo
-mf) shows you, which functions are available for which MSA level (see Using the cpacfinfo utility).
For testing or debugging purposes, you can define the set of z/Architecture® algorithms and functions available to an application using
the OPENSSL_s390xcap
environment variable.
For further selective disabling features, see the OpenSSL web site:
OPENSSL_s390xcap