mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-10-24 04:09:07 +03:00
379 lines
30 KiB
JSON
379 lines
30 KiB
JSON
[
|
|
{"name": "all-pq-small-smallstack-noasm", "minutes": 35.7,
|
|
"configure": ["--disable-intelasm", "--enable-smallstack",
|
|
"--enable-smallstackcache", "--enable-all", "--enable-testcert",
|
|
"--enable-acert", "--enable-dtls13", "--enable-dtls-mtu",
|
|
"--enable-dtls-frag-ch", "--enable-dtlscid", "--enable-quic",
|
|
"--with-sys-crypto-policy", "--enable-experimental",
|
|
"--enable-mlkem=yes,kyber,ml-kem,small", "--enable-lms=yes,small",
|
|
"--enable-xmss=yes,small", "--enable-slhdsa=yes,small",
|
|
"--enable-dilithium=yes,small", "--enable-dual-alg-certs",
|
|
"--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_MLKEM_MAKEKEY_SMALL_MEM -DWOLFSSL_MLKEM_ENCAPSULATE_SMALL_MEM -DWOLFSSL_MLKEM_NO_LARGE_CODE -DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_VERIFY_SMALL_MEM -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM -DWOLFSSL_MLDSA_NO_LARGE_CODE"]},
|
|
{"name": "all-pq-small-noasm", "minutes": 33.8,
|
|
"configure": ["--disable-intelasm", "--enable-all",
|
|
"--enable-testcert", "--enable-acert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-quic", "--with-sys-crypto-policy",
|
|
"--enable-experimental", "--enable-mlkem=yes,kyber,ml-kem,small",
|
|
"--enable-lms=yes,small", "--enable-xmss=yes,small",
|
|
"--enable-slhdsa=yes,small", "--enable-dilithium=yes,small",
|
|
"--enable-dual-alg-certs", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_MLKEM_MAKEKEY_SMALL_MEM -DWOLFSSL_MLKEM_ENCAPSULATE_SMALL_MEM -DWOLFSSL_MLKEM_NO_LARGE_CODE -DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_VERIFY_SMALL_MEM -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM -DWOLFSSL_MLDSA_NO_LARGE_CODE"]},
|
|
{"name": "slhdsa-pqc-only", "minutes": 22.3,
|
|
"comment": "PQC-only TLS 1.3: ML-KEM key exchange + SLH-DSA (FIPS 205) auth with RSA, ECC and DH disabled; exercises the SLH-DSA CertificateVerify path",
|
|
"configure": ["--enable-mlkem", "--enable-slhdsa",
|
|
"--enable-tls-mlkem-standalone", "--enable-session-ticket",
|
|
"--disable-rsa", "--disable-ecc", "--disable-dh"]},
|
|
{"name": "all-pq-quic", "minutes": 11.3,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-acert",
|
|
"--enable-dtls13", "--enable-dtls-mtu", "--enable-dtls-frag-ch",
|
|
"--enable-dtlscid", "--enable-quic", "--with-sys-crypto-policy",
|
|
"--enable-experimental", "--enable-mlkem=yes,kyber,ml-kem",
|
|
"--enable-tls-mlkem-standalone", "--enable-extra-pqc-hybrids",
|
|
"--enable-lms", "--enable-xmss", "--enable-slhdsa",
|
|
"--enable-dilithium", "--enable-dual-alg-certs", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_BLIND_PRIVATE_KEY -DWOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ"]},
|
|
{"name": "all-pq-smallstack", "minutes": 11.2,
|
|
"configure": ["--enable-smallstack", "--enable-smallstackcache",
|
|
"--enable-intelasm", "--enable-sp-asm", "--enable-all",
|
|
"--enable-testcert", "--enable-acert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-quic", "--with-sys-crypto-policy",
|
|
"--enable-experimental", "--enable-mlkem=yes,kyber,ml-kem",
|
|
"--enable-lms", "--enable-xmss", "--enable-slhdsa",
|
|
"--enable-dilithium", "--enable-dual-alg-certs", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-pq-mldsa-no-ctx", "minutes": 10.7,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-acert",
|
|
"--enable-dtls13", "--enable-dtls-mtu", "--enable-dtls-frag-ch",
|
|
"--enable-dtlscid", "--enable-quic", "--with-sys-crypto-policy",
|
|
"--enable-experimental", "--enable-mlkem=yes,kyber,ml-kem",
|
|
"--enable-lms", "--enable-xmss", "--enable-slhdsa",
|
|
"--enable-dilithium=yes,no-ctx", "--enable-dual-alg-certs",
|
|
"--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-pq-cxx", "minutes": 10.4,
|
|
"cc": "ccache c++",
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-acert",
|
|
"--enable-dtls13", "--enable-dtls-mtu", "--enable-dtls-frag-ch",
|
|
"--enable-dtlscid", "--enable-quic", "--with-sys-crypto-policy",
|
|
"--enable-experimental", "--enable-mlkem=yes,kyber,ml-kem",
|
|
"--enable-lms", "--enable-xmss", "--enable-slhdsa",
|
|
"--enable-dilithium", "--enable-dual-alg-certs", "--disable-qt",
|
|
"CPPFLAGS=-Wdeclaration-after-statement -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "pq-cryptocbutils", "minutes": 10.3,
|
|
"comment": "The only config pairing --enable-cryptocbutils with the PQC algorithms. --enable-all already turns cryptocb on, but the utility callbacks (copy, free, setkey, export) default to off, so without this entry WOLF_CRYPTO_CB_FREE is never compiled alongside a PQC algorithm and the free-callback tests for ML-DSA, SLH-DSA and ML-KEM all skip. Falcon and FrodoKEM are named explicitly: experimental only auto-enables them under --enable-all-quantum-crypto, which nothing here sets.",
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-experimental",
|
|
"--enable-mlkem=yes,kyber,ml-kem", "--enable-slhdsa",
|
|
"--enable-dilithium", "--enable-falcon", "--enable-frodokem",
|
|
"--enable-cryptocb", "--enable-cryptocbutils",
|
|
"--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-pq-sp-math", "minutes": 10.1,
|
|
"configure": ["--enable-intelasm", "--enable-sp-math",
|
|
"--enable-sp-asm", "--enable-all", "--enable-testcert",
|
|
"--enable-acert", "--enable-dtls13", "--enable-dtls-mtu",
|
|
"--enable-dtls-frag-ch", "--enable-dtlscid", "--disable-quic",
|
|
"--with-sys-crypto-policy", "--enable-experimental",
|
|
"--enable-mlkem=yes,kyber,ml-kem", "--enable-tls-mlkem-standalone",
|
|
"--enable-extra-pqc-hybrids", "--enable-lms", "--enable-xmss",
|
|
"--enable-slhdsa", "--enable-dilithium", "--enable-dual-alg-certs",
|
|
"--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_BLIND_PRIVATE_KEY -DWOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ"]},
|
|
{"name": "pq-asynccrypt-dual-alg", "minutes": 9.1,
|
|
"comment": "Async crypto with dual-algorithm certs and PQC signatures. WOLFSSL_ASYNC_CRYPT turns off the streaming CertificateVerify path, so this is the only config that compiles the in-place fragmented send and the async args holder that Scv13Args must fit.",
|
|
"configure": ["--enable-asynccrypt-sw", "--enable-dual-alg-certs",
|
|
"--enable-slhdsa", "--enable-dilithium", "--enable-experimental",
|
|
"--enable-testcert"]},
|
|
{"name": "all-pq-verify-only-noasm", "minutes": 6.3,
|
|
"configure": ["--disable-intelasm", "--enable-all",
|
|
"--disable-mlkem", "--enable-lms=yes,small,verify-only",
|
|
"--enable-xmss=yes,small,verify-only",
|
|
"--enable-slhdsa=yes,small,verify-only",
|
|
"--enable-dilithium=yes,small,verify-only", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_MLDSA_VERIFY_SMALL_MEM -DWOLFSSL_MLDSA_NO_LARGE_CODE"]},
|
|
{"name": "slhdsa-sha2-only", "minutes": 6.2,
|
|
"comment": "SHA2-only SLH-DSA build (SHAKE family disabled) across all 128/192/256 SHA2 parameter sets. A SHAKE-off build must still size the FORS/XMSS buffers for the 192/256-bit SHA2 parameters via the combined SLHDSA_ALL_NO_* maxima guards rather than collapsing to the 128-bit level; running the SHA2-256 sign/verify tests exercises that sizing.",
|
|
"configure": ["--enable-slhdsa=sha2", "--enable-testcert"]},
|
|
{"name": "all-mlkem-1024-standalone", "minutes": 6.1,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-mlkem=make,enc,dec,1024",
|
|
"--enable-tls-mlkem-standalone", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-mlkem-768-standalone", "minutes": 6,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-mlkem=make,enc,dec,768", "--enable-tls-mlkem-standalone",
|
|
"--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-mlkem-512-standalone", "minutes": 5.6,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-mlkem=make,enc,dec,512", "--enable-tls-mlkem-standalone",
|
|
"--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-frodokem", "minutes": 5.3,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-experimental",
|
|
"--enable-mlkem=yes,kyber,ml-kem",
|
|
"--enable-frodokem=aes,ephemeral", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-mlkem-1024", "minutes": 4.9,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-mlkem=make,enc,dec,1024", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-mlkem-768-standalone-no-hybrids", "minutes": 4.7,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-mlkem=make,enc,dec,768", "--enable-tls-mlkem-standalone",
|
|
"--disable-pqc-hybrids", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-mlkem-1024-standalone-no-hybrids", "minutes": 4.2,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-mlkem=make,enc,dec,1024",
|
|
"--enable-tls-mlkem-standalone", "--disable-pqc-hybrids",
|
|
"--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "all-mlkem-768", "minutes": 4,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-all", "--enable-testcert", "--enable-dtls13",
|
|
"--enable-dtls-mtu", "--enable-dtls-frag-ch", "--enable-dtlscid",
|
|
"--enable-mlkem=make,enc,dec,768", "--disable-qt",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"]},
|
|
{"name": "mldsa-no-asn1-opensslextra", "minutes": 2.8,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-dilithium=yes", "--enable-opensslextra",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_NO_ASN1"]},
|
|
{"name": "mldsa-small-dynamic-keys", "minutes": 2.4,
|
|
"configure": ["--disable-intelasm", "--enable-dilithium=yes,small",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_DYNAMIC_KEYS"]},
|
|
{"name": "ubsan-mldsa-mlkem", "minutes": 2.4,
|
|
"configure": ["--disable-shared", "--enable-dilithium",
|
|
"--enable-mlkem",
|
|
"CFLAGS=-fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer",
|
|
"LDFLAGS=-fsanitize=undefined",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_ALIGNMENT=4"]},
|
|
{"name": "ubsan-mldsa-small-smallmem", "minutes": 2.4,
|
|
"comment": "Leaves WOLFSSL_MLDSA_ALIGNMENT at its default of 0 so the small-mem scratch layout is checked at its odd MLDSA_REJ_NTT_POLY_H_SIZE; WOLFSSL_MLDSA_TEST_REJ_NTT_FAIL lets the API tests fail key generation part-way; WOLFSSL_MLDSA_CHECK_INVNTT_BOUND fails the operation if a pre-inverse-NTT reduction goes missing",
|
|
"configure": ["--disable-shared", "--disable-intelasm",
|
|
"--enable-dilithium=yes,small",
|
|
"CFLAGS=-fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer",
|
|
"LDFLAGS=-fsanitize=undefined",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_VERIFY_SMALL_MEM -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM -DWOLFSSL_MLDSA_TEST_REJ_NTT_FAIL -DWOLFSSL_MLDSA_CHECK_INVNTT_BOUND"]},
|
|
{"name": "ubsan-mldsa-small-smallmem-poly64", "minutes": 2.4,
|
|
"comment": "As ubsan-mldsa-small-smallmem, with the 64-bit t64 accumulator layout; WC_MLDSA_CACHE_MATRIX_A makes CheckKey allocate matrix A after small-mem key generation",
|
|
"configure": ["--disable-shared", "--disable-intelasm",
|
|
"--enable-dilithium=yes,small",
|
|
"CFLAGS=-fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer",
|
|
"LDFLAGS=-fsanitize=undefined",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_VERIFY_SMALL_MEM -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM -DWOLFSSL_MLDSA_SMALL_MEM_POLY64 -DWOLFSSL_MLDSA_TEST_REJ_NTT_FAIL -DWOLFSSL_MLDSA_CHECK_INVNTT_BOUND -DWC_MLDSA_CACHE_MATRIX_A"]},
|
|
{"name": "ubsan-mldsa-sign-precalc", "minutes": 2.4,
|
|
"comment": "Runs the WOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC scratch layout, and the non-SMALL key generation and verify small-mem paths, at the default alignment of 0, where MLDSA_REJ_NTT_POLY_H_SIZE is odd",
|
|
"configure": ["--disable-shared", "--disable-intelasm", "--enable-dilithium",
|
|
"CFLAGS=-fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer",
|
|
"LDFLAGS=-fsanitize=undefined",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM -DWOLFSSL_MLDSA_VERIFY_SMALL_MEM -DWOLFSSL_MLDSA_TEST_REJ_NTT_FAIL -DWOLFSSL_MLDSA_CHECK_INVNTT_BOUND"]},
|
|
{"name": "ubsan-mldsa-sign-precalc-a", "minutes": 2.4,
|
|
"comment": "Runs the WOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC_A scratch layout at the default alignment of 0, where MLDSA_REJ_NTT_POLY_H_SIZE is odd; key generation and verify stay on their non-small-mem paths",
|
|
"configure": ["--disable-shared", "--disable-intelasm", "--enable-dilithium",
|
|
"CFLAGS=-fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer",
|
|
"LDFLAGS=-fsanitize=undefined",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC_A -DWOLFSSL_MLDSA_CHECK_INVNTT_BOUND"]},
|
|
{"name": "ubsan-mldsa-small-sign-precalc-a", "minutes": 2.4,
|
|
"comment": "As ubsan-mldsa-sign-precalc-a with the small implementation, so WOLFSSL_MLDSA_CHECK_INVNTT_BOUND covers the reduction the small PRECALC_A signer does before its inverse NTT",
|
|
"configure": ["--disable-shared", "--disable-intelasm",
|
|
"--enable-dilithium=yes,small",
|
|
"CFLAGS=-fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer",
|
|
"LDFLAGS=-fsanitize=undefined",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC_A -DWOLFSSL_MLDSA_CHECK_INVNTT_BOUND"]},
|
|
{"name": "ubsan-mldsa-sign-precalc-poly64", "minutes": 2.4,
|
|
"comment": "As ubsan-mldsa-sign-precalc, with the 64-bit t64 accumulator layout",
|
|
"configure": ["--disable-shared", "--disable-intelasm", "--enable-dilithium",
|
|
"CFLAGS=-fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer",
|
|
"LDFLAGS=-fsanitize=undefined",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM -DWOLFSSL_MLDSA_VERIFY_SMALL_MEM -DWOLFSSL_MLDSA_SMALL_MEM_POLY64 -DWOLFSSL_MLDSA_TEST_REJ_NTT_FAIL -DWOLFSSL_MLDSA_CHECK_INVNTT_BOUND"]},
|
|
{"name": "mldsa-no-asn1-fips204-draft-opensslextra", "minutes": 2.3,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-dilithium=yes,draft", "--enable-opensslextra",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_NO_ASN1"]},
|
|
{"name": "frodokem-976-only-noasm", "minutes": 2.2,
|
|
"comment": "976-only builds D=16 (q=2^16) alone; no-asm the C path",
|
|
"configure": ["--disable-intelasm", "--enable-experimental",
|
|
"--enable-frodokem=aes,ephemeral,no-640,no-1344",
|
|
"CPPFLAGS=-Wdeclaration-after-statement"]},
|
|
{"name": "frodokem-small-smallstack-noasm", "minutes": 2.1,
|
|
"configure": ["--disable-intelasm", "--enable-smallstack",
|
|
"--enable-smallstackcache", "--enable-experimental",
|
|
"--enable-frodokem=aes,ephemeral,small",
|
|
"CPPFLAGS=-Wdeclaration-after-statement"]},
|
|
{"name": "pqc-only", "minutes": 2.1,
|
|
"comment": "PQC-only TLS 1.3: ML-KEM key exchange + ML-DSA auth with RSA, ECC and DH disabled (CNSA 2.0); session tickets exercise ML-KEM-only resumption",
|
|
"configure": ["--enable-mlkem", "--enable-mldsa",
|
|
"--enable-tls-mlkem-standalone", "--enable-session-ticket",
|
|
"--disable-rsa", "--disable-ecc", "--disable-dh"]},
|
|
{"name": "mldsa-verify-only-smallest-mem-no-asn1", "minutes": 2.0,
|
|
"comment": "The combination an embedded verifier actually ships: verify only, the smallest-memory verify path, and no ASN.1. Only this config reaches benchmark.c's no-sign branch, which verifies the baked bench_mldsa_NN_sig arrays rather than a signature it just made, so the signature and the imported public key have to be the same key pair. The existing no-ASN.1 rows build signing too, so they never take that branch. The benchmark exits 0 whether or not verification succeeded, and a level whose key import fails prints and moves on to the next one, so the run asserts a verify row for each of the three levels rather than just one. Built with -Werror=unused-function, as a verify-only build is where a helper loses its last caller.",
|
|
"check": false,
|
|
"extra_cflags": "-Werror=unused-function",
|
|
"configure": ["--disable-intelasm", "--enable-experimental",
|
|
"--enable-dilithium=yes,small,verify-only",
|
|
"CPPFLAGS=-pedantic -Wdeclaration-after-statement -Wnull-dereference -DWOLFSSL_MLDSA_VERIFY_SMALLEST_MEM -DWOLFSSL_MLDSA_NO_ASN1 -DWOLFSSL_MLDSA_NO_LARGE_CODE"],
|
|
"run": [["sh", "-c", "out=$(./wolfcrypt/benchmark/benchmark -ml-dsa 2>&1) || exit 1; printf '%s\\n' \"$out\"; if printf '%s\\n' \"$out\" | grep -qE 'VerifyCtx failed|Failed to load (public|private) key'; then echo 'ML-DSA verify or key load failed' >&2; exit 1; fi; for lvl in 44 65 87; do printf '%s\\n' \"$out\" | grep -qE \"^ML-DSA +$lvl +verify\" || { echo \"no ML-DSA-$lvl verify row reported\" >&2; exit 1; }; done"]]},
|
|
{"name": "mldsa-dynamic-keys", "minutes": 1.8,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-dilithium=yes", "CPPFLAGS=-DWOLFSSL_MLDSA_DYNAMIC_KEYS"]},
|
|
{"name": "mldsa-verify-only-dynamic-keys", "minutes": 1.7,
|
|
"configure": ["--disable-intelasm",
|
|
"--enable-dilithium=44,65,87,verify-only",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_DYNAMIC_KEYS"]},
|
|
{"name": "mlkem-old-ids", "minutes": 1.7,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-mlkem=yes,kyber,ml-kem",
|
|
"CPPFLAGS=-DWOLFSSL_ML_KEM_USE_OLD_IDS"]},
|
|
{"name": "mlkem-dynamic-keys", "minutes": 1.6,
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-mlkem=yes,kyber,ml-kem,cache-a",
|
|
"CPPFLAGS=-DWOLFSSL_MLKEM_DYNAMIC_KEYS"]},
|
|
{"name": "frodokem-640-shake-only", "minutes": 1.5,
|
|
"comment": "640-only builds D=15 (q=2^15); shake-only, with asm",
|
|
"configure": ["--enable-intelasm", "--enable-sp-asm",
|
|
"--enable-experimental",
|
|
"--enable-frodokem=no-976,no-1344,no-aes",
|
|
"CPPFLAGS=-Wdeclaration-after-statement"]},
|
|
{"name": "frodokem-aarch64-armasm", "minutes": 0.8, "check": false,
|
|
"cc": "ccache aarch64-linux-gnu-gcc",
|
|
"comment": "Cross-build only (no ARM runner): catches ARM asm link/compile breaks. sve+sme+aes A-gen all live in the .S.",
|
|
"configure": ["--host=aarch64-linux-gnu", "--enable-cryptonly",
|
|
"--enable-armasm", "--enable-experimental",
|
|
"--enable-frodokem=aes,ephemeral,sve,sme", "--disable-examples"]},
|
|
{"name": "frodokem-arm32-armasm", "minutes": 0.8, "check": false,
|
|
"cc": "ccache arm-linux-gnueabihf-gcc",
|
|
"comment": "Cross-build only: AArch32 NEON matrix ops + AES-crypto A-gen.",
|
|
"configure": ["--host=arm-linux-gnueabihf", "--enable-cryptonly",
|
|
"--enable-armasm", "--enable-experimental",
|
|
"--enable-frodokem=aes,ephemeral", "--disable-examples"]},
|
|
{"name": "frodokem-aarch64-armasm-inline", "minutes": 0.6,
|
|
"check": false, "cc": "ccache aarch64-linux-gnu-gcc",
|
|
"comment": "Inline armasm: sve/sme/aes are .S-only, so they must fall back to NEON/C; guards the inline-asm link break.",
|
|
"configure": ["--host=aarch64-linux-gnu", "--enable-cryptonly",
|
|
"--enable-armasm=inline", "--enable-experimental",
|
|
"--enable-frodokem=aes,ephemeral,sve,sme", "--disable-examples"]},
|
|
{"name": "pkcs7-mldsa-only", "minutes": 0.5,
|
|
"comment": "PKCS#7 SignedData with ML-DSA as the only signature algorithm (no RSA, no ECC); guards the ML-DSA-only PKCS7 build path",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"--enable-pkcs7", "--disable-rsa", "--disable-ecc"]},
|
|
{"name": "mldsa-verify-only-cryptocb",
|
|
"comment": "ML-DSA cryptocb with keygen and sign compiled out: VERIFY_ONLY derives NO_MAKE_KEY and NO_SIGN, so those callback branches must compile away and only the verify hit counter is enforced.",
|
|
"configure": ["--disable-intelasm", "--enable-cryptocb",
|
|
"--enable-mldsa=verify-only"]},
|
|
{"name": "mldsa-draft-cryptocb",
|
|
"comment": "ML-DSA cryptocb with WOLFSSL_MLDSA_NO_CTX derived from FIPS204_DRAFT, where the no-context verify is indistinguishable from VerifyCtx with an empty context, so the sign and verify branches decline. Needs yes,draft: =draft alone enables none of make/sign/verify.",
|
|
"configure": ["--disable-intelasm", "--enable-cryptocb",
|
|
"--enable-mldsa=yes,draft"]},
|
|
{"name": "mldsa-sign-verify-cryptocb",
|
|
"comment": "NO_MAKE_KEY without NO_SIGN, so the sign callback branch compiles but mldsa_param_test is compiled out and no signature is ever produced. Guards the sign hit counter against a build that cannot sign.",
|
|
"configure": ["--disable-intelasm", "--enable-cryptocb",
|
|
"--enable-mldsa=sign,verify"]},
|
|
{"name": "mldsa-smallest-mem", "minutes": 2,
|
|
"comment": "Smallest memory ML-DSA signing and verification; the only functional coverage of WOLFSSL_MLDSA_SIGN_SMALLEST_MEM and of VERIFY_SMALLEST_MEM with malloc",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALLEST_MEM -DWOLFSSL_MLDSA_VERIFY_SMALLEST_MEM -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM -DWOLFSSL_MLDSA_CHECK_INVNTT_BOUND"]},
|
|
{"name": "mldsa-smallest-mem-checks", "minutes": 2,
|
|
"comment": "Smallest memory ML-DSA signing with the optional y and w0 rejection checks and the small code arms, which are otherwise never compiled",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa=yes,small",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALLEST_MEM -DWOLFSSL_MLDSA_SIGN_CHECK_Y -DWOLFSSL_MLDSA_SIGN_CHECK_W0"]},
|
|
{"name": "mldsa-44-precalc-a-intelasm", "minutes": 2,
|
|
"comment": "ML-DSA-44 with one pre-calculated row of matrix A on the Intel assembly paths; the q88 decompose and w1 encode kernels take no dimension, so this pins that w is sized for a full vector",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa=44", "--enable-intelasm",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC_A=1"]},
|
|
{"name": "mldsa-precalc-a-saturated", "minutes": 2,
|
|
"comment": "Pre-calculated matrix A with more rows than any parameter set has, so maxK saturates at k and the streaming loops do not run at all",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC_A=8"]},
|
|
{"name": "mldsa-precalc-a-split", "minutes": 2,
|
|
"comment": "Pre-calculated matrix A split part way, which is neither the single row nor the saturated case",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC_A=2"]},
|
|
{"name": "mldsa-checks-default-signer", "minutes": 2,
|
|
"comment": "The y and w0 rejection checks on the default signer, the only combination that compiles the vector range check helper and its two call sites",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_CHECK_Y -DWOLFSSL_MLDSA_SIGN_CHECK_W0"]},
|
|
{"name": "mldsa-cache-pub-vectors-verify-no-malloc", "minutes": 2,
|
|
"comment": "Cached public vectors alongside the pinned verify buffers, the combination whose key structure member clash stopped it building; the clashing member only exists when the small memory verify is selected too",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWC_MLDSA_CACHE_PUB_VECTORS -DWOLFSSL_MLDSA_VERIFY_NO_MALLOC -DWOLFSSL_MLDSA_VERIFY_SMALL_MEM"]},
|
|
{"name": "mldsa-cache-matrix", "minutes": 2,
|
|
"comment": "Cached matrix A on the default full vector signer, the only build where the signing cache allocation test's key->a and aSet assertions are compiled",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWC_MLDSA_CACHE_MATRIX_A"]},
|
|
{"name": "mldsa-cache-matrix-precalc-a", "minutes": 2,
|
|
"comment": "Cached matrix A with a pre-calculated row; the small memory signer streams A, so this exercises the sign and verify round trip rather than the cache assertions",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWC_MLDSA_CACHE_MATRIX_A -DWOLFSSL_MLDSA_SIGN_SMALL_MEM_PRECALC_A=1"]},
|
|
{"name": "mldsa-cache-small-keygen", "minutes": 2,
|
|
"comment": "Every key cache alongside the small memory key generation, which must drop the caches of the key it replaces; under UBSan",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa", "--disable-shared",
|
|
"CFLAGS=-fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer",
|
|
"LDFLAGS=-fsanitize=undefined",
|
|
"CPPFLAGS=-DWC_MLDSA_CACHE_PRIV_VECTORS -DWC_MLDSA_CACHE_PUB_VECTORS -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM"]},
|
|
{"name": "mldsa-no-check-key-small-mem", "minutes": 2,
|
|
"comment": "Key pair checking compiled out alongside the small memory key generation and the smallest memory signer, which leaves the whole vector helpers with no caller",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_NO_CHECK_KEY -DWOLFSSL_MLDSA_MAKE_KEY_SMALL_MEM -DWOLFSSL_MLDSA_SIGN_SMALLEST_MEM"]},
|
|
{"name": "mldsa-verify-only-no-malloc", "minutes": 2,
|
|
"comment": "Heapless verify-only ML-DSA named only by the canonical options; the no-malloc gate must select the pinned small memory verify or every verification fails with MEMORY_E",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa=verify-only",
|
|
"CPPFLAGS=-DWOLFSSL_NO_DILITHIUM_LEGACY_GATES -DWOLFSSL_NO_MALLOC"]},
|
|
{"name": "mldsa-no-check-key", "minutes": 3,
|
|
"comment": "Key pair checking compiled out, which is the only build that reaches the NOT_COMPILED_IN arm of wc_CheckPrivateKey; needs the OpenSSL compatibility layer so the X509_check_private_key callers and their tests are compiled too",
|
|
"configure": ["--enable-opensslall", "--enable-mldsa", "--enable-certgen",
|
|
"--enable-certreq", "CPPFLAGS=-DWOLFSSL_MLDSA_NO_CHECK_KEY"]},
|
|
{"name": "mldsa-no-legacy-gates-smallest", "minutes": 2,
|
|
"comment": "Canonical option names only; pins that SIGN_SMALLEST_MEM still implies SIGN_SMALL_MEM when the legacy name gates are opted out",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_NO_DILITHIUM_LEGACY_GATES -DWOLFSSL_MLDSA_SIGN_SMALLEST_MEM"]},
|
|
{"name": "mldsa-smallest-checks-no-verify", "minutes": 2,
|
|
"comment": "Smallest memory signing with the y and w0 checks and verify compiled out, which leaves neither vector range check helper with a caller",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALLEST_MEM -DWOLFSSL_MLDSA_SIGN_CHECK_Y -DWOLFSSL_MLDSA_SIGN_CHECK_W0 -DWOLFSSL_MLDSA_NO_VERIFY"]},
|
|
{"name": "mldsa-sign-only", "minutes": 2,
|
|
"comment": "Default signer with verify compiled out; the non constant time vector range check has no caller here",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa=make,sign"]},
|
|
{"name": "mldsa-verify-smallest-default-sign", "minutes": 2,
|
|
"comment": "Smallest memory verify paired with the default signer, a combination every other row avoids",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_VERIFY_SMALLEST_MEM"]},
|
|
{"name": "mldsa-small-check-w0-only", "minutes": 2,
|
|
"comment": "Small memory signing with the w0 check but not the y check, which decides whether the vector range check helper is reachable",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_SIGN_SMALL_MEM -DWOLFSSL_MLDSA_SIGN_CHECK_W0"]},
|
|
{"name": "hbs-verify-only-bench",
|
|
"comment": "Verify-only LMS, XMSS and SLH-DSA with no other asymmetric algorithm. The benchmark verifies the baked bench_* vectors and exits 0 on failure, so the run asserts a verify row per vector.",
|
|
"check": false,
|
|
"extra_cflags": "-Werror=unused-function",
|
|
"configure": ["--enable-cryptonly", "--disable-rsa", "--disable-ecc",
|
|
"--disable-dh", "--disable-curve25519", "--disable-ed25519",
|
|
"--disable-mlkem", "--disable-mldsa", "--enable-lms=yes,verify-only",
|
|
"--enable-xmss=yes,verify-only",
|
|
"--enable-slhdsa=yes,sha2,verify-only"],
|
|
"run": [["sh", "-c", "out=$(./wolfcrypt/benchmark/benchmark -lms_hss -xmss_xmssmt -slhdsa 2>&1) || exit 1; printf '%s\\n' \"$out\"; if printf '%s\\n' \"$out\" | grep -qE 'wc_(Lms|Xmss|SlhDsa)Key_Verify failed|Benchmark .* failed:'; then echo 'HBS benchmark failed' >&2; exit 1; fi; for row in 'LMS/HSS_L1_H10_W8 +[0-9]+' 'XMSS-SHA2_10_256 +[0-9]+' 'SLH-DSA-SHAKE-S +128' 'SLH-DSA-SHA2-S +128'; do printf '%s\\n' \"$out\" | grep -qE \"^$row +verify\" || { echo \"no $row verify row reported\" >&2; exit 1; }; done"]]},
|
|
{"name": "mldsa-weak-prehash", "minutes": 2,
|
|
"comment": "Opt-in acceptance of a HashML-DSA pre-hash weaker than the parameter set",
|
|
"configure": ["--enable-cryptonly", "--enable-mldsa",
|
|
"CPPFLAGS=-DWOLFSSL_MLDSA_ALLOW_WEAK_PREHASH"]}
|
|
]
|