OpenSSL Algorithm Support - crt26/pqc-evaluation-tools GitHub Wiki
Algorithm Support Summary
OpenSSL 3.5.0 introduces native support for the NIST-standardised PQC algorithms ML-KEM, ML-DSA, and SLH-DSA. This project integrates these algorithms for TLS benchmarking where possible. However, some limitations affect their usage in performance testing and handshake scenarios:
Known Limitations
-
ML-DSA and SLH-DSA are currently not supported by the OpenSSL
speed
utility, making them unavailable for cryptographic performance benchmarking. -
SLH-DSA while supported at the provider level (e.g., for certificate generation), has not yet been integrated into OpenSSL's TLS stack (
s_client
,s_server
,speed
). Its inclusion in TLS 1.3 is under consideration via this IETF draft. Until then, SPHINCS+ from the OQS-Provider will be used as a placeholder for stateless hash-based signatures in TLS tests. -
The X448MLKEM1024 Hybrid-PQC KEM is implemented and supported by OpenSSL's
speed
tool, but not registered as a TLS group. It is excluded from handshake testing, though it remains available for TLS speed testing within this project.
Classical Algorithm Benchmarks
To provide performance baselines for comparison, classical algorithms are also included in TLS benchmarking:
- RSA-2048, RSA-3072, RSA-4096
- prime256v1, secp384r1, secp521r1
These schemes help assess the overhead and feasibility of PQC adoption in real-world contexts.
Supported KEM Algorithms
Algorithm Name | Hybrid Algorithm (*) | TLS Handshake Test Support (*) | OpenSSL Speed Test Support (*) |
---|---|---|---|
MLKEM512 | * | * | |
MLKEM768 | * | ||
MLKEM1024 | * | * | |
X25519MLKEM768 | * | * | * |
X448MLKEM1024 | * | * | |
SecP256r1MLKEM768 | * | * | * |
SecP384r1MLKEM1024 | * | * | * |
Supported Digital Signature Algorithms
Algorithm Name | Hybrid Algorithm (*) | TLS Handshake Test Support (*) | OpenSSL Speed Test Support (*) |
---|---|---|---|
MLDSA44 | * | ||
MLDSA65 | * | ||
MLDSA87 | * |
Supported Classical Algorithms
Algorithm Name | TLS Handshake Test Support (*) | OpenSSL Speed Test Support (*) |
---|---|---|
RSA-2048 | * | * |
RSA-3072 | * | * |
RSA-4096 | * | * |
prime256v1 | * | * |
secp384r1 | * | * |
secp521r1 | * | * |