Skip to content

Commit f96044f

Browse files
committed
FIPS 205, SLH-DSA: implementation
Adding implementation of SLH-DSA. Included optimizations for Intel x64. Some tests added.
1 parent ff84de2 commit f96044f

22 files changed

Lines changed: 10423 additions & 22 deletions

.github/workflows/pq-all.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ jobs:
1919
config: [
2020
# Add new configs here
2121
'--enable-intelasm --enable-sp-asm --enable-mlkem=yes,kyber,ml-kem CPPFLAGS="-DWOLFSSL_ML_KEM_USE_OLD_IDS"',
22-
'--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-dilithium --enable-dual-alg-certs --disable-qt CPPFLAGS="-pedantic -Wdeclaration-after-statement -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"',
23-
'--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-dilithium --enable-dual-alg-certs --disable-qt CPPFLAGS="-pedantic -Wdeclaration-after-statement -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"',
24-
'--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-dilithium --enable-dual-alg-certs --disable-qt CPPFLAGS="-Wdeclaration-after-statement -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE" CC=c++',
25-
'--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-dilithium --disable-qt CPPFLAGS="-pedantic -Wdeclaration-after-statement -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_BLIND_PRIVATE_KEY"',
26-
'--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-dilithium --enable-dual-alg-certs --disable-qt CPPFLAGS="-pedantic -Wdeclaration-after-statement -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_BLIND_PRIVATE_KEY"',
27-
'--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-dilithium --enable-dual-alg-certs --disable-qt CPPFLAGS="-pedantic -Wdeclaration-after-statement -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ"',
28-
'--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-dilithium=yes,small --enable-dual-alg-certs --disable-qt CPPFLAGS="-pedantic -Wdeclaration-after-statement -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_DILITHIUM_SIGN_SMALL_MEM -DWOLFSSL_DILITHIUM_VERIFY_SMALL_MEM -DWOLFSSL_DILITHIUM_MAKE_KEY_SMALL_MEM -DWOLFSSL_DILITHIUM_NO_LARGE_CODE"',
29-
'--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-dilithium=yes,small --enable-dual-alg-certs --disable-qt CPPFLAGS="-pedantic -Wdeclaration-after-statement -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_DILITHIUM_SIGN_SMALL_MEM -DWOLFSSL_DILITHIUM_VERIFY_SMALL_MEM -DWOLFSSL_DILITHIUM_MAKE_KEY_SMALL_MEM -DWOLFSSL_DILITHIUM_NO_LARGE_CODE"',
22+
'--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 -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"',
23+
'--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 -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"',
24+
'--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" CC=c++',
25+
'--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 --disable-qt CPPFLAGS="-pedantic -Wdeclaration-after-statement -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_BLIND_PRIVATE_KEY"',
26+
'--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 -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_BLIND_PRIVATE_KEY"',
27+
'--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 -DWOLFCRYPT_TEST_LINT -DNO_WOLFSSL_CIPHER_SUITE_TEST -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFSSL_TLSX_PQC_MLKEM_STORE_OBJ"',
28+
'--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 -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_DILITHIUM_SIGN_SMALL_MEM -DWOLFSSL_DILITHIUM_VERIFY_SMALL_MEM -DWOLFSSL_DILITHIUM_MAKE_KEY_SMALL_MEM -DWOLFSSL_DILITHIUM_NO_LARGE_CODE"',
29+
'--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 -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_DILITHIUM_SIGN_SMALL_MEM -DWOLFSSL_DILITHIUM_VERIFY_SMALL_MEM -DWOLFSSL_DILITHIUM_MAKE_KEY_SMALL_MEM -DWOLFSSL_DILITHIUM_NO_LARGE_CODE"',
3030
]
3131
name: make check
3232
if: github.repository_owner == 'wolfssl'

.wolfssl_known_macro_extras

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,7 @@ WOLFSSL_RSA_DECRYPT_TO_0_LEN
879879
WOLFSSL_RW_THREADED
880880
WOLFSSL_SAKKE_SMALL
881881
WOLFSSL_SAKKE_SMALL_MODEXP
882+
WOLFSSL_SLHDSA_FULL_HASH
882883
WOLFSSL_SE050_AUTO_ERASE
883884
WOLFSSL_SE050_CRYPT
884885
WOLFSSL_SE050_HASH
@@ -935,6 +936,7 @@ WOLFSSL_USE_FORCE_ZERO
935936
WOLFSSL_USE_OPTIONS_H
936937
WOLFSSL_VALIDATE_DH_KEYGEN
937938
WOLFSSL_WC_LMS_SERIALIZE_STATE
939+
WOLFSSL_WC_SLHDSA_RECURSIVE
938940
WOLFSSL_WC_XMSS_NO_SHA256
939941
WOLFSSL_WC_XMSS_NO_SHAKE256
940942
WOLFSSL_WICED_PSEUDO_UNIX_EPOCH_TIME

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -777,6 +777,11 @@ add_option(WOLFSSL_XMSS
777777
"Enable the wolfSSL XMSS implementation (default: disabled)"
778778
"no" "yes;no")
779779

780+
# SLH-DSA
781+
add_option(WOLFSSL_HAVE_SLHDSA
782+
"Enable the wolfSSL SLH-DSA implementation (default: disabled)"
783+
"no" "yes;no")
784+
780785
# TODO: - Lean PSK
781786
# - Lean TLS
782787
# - Low resource
@@ -2816,6 +2821,7 @@ if(WOLFSSL_EXAMPLES)
28162821
tests/api/test_ed448.c
28172822
tests/api/test_mlkem.c
28182823
tests/api/test_mldsa.c
2824+
tests/api/test_slhdsa.c
28192825
tests/api/test_signature.c
28202826
tests/api/test_dtls.c
28212827
tests/api/test_ocsp.c

configure.ac

Lines changed: 103 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2131,17 +2131,111 @@ AC_ARG_WITH([liblms],
21312131
]
21322132
)
21332133

2134-
if test "$ENABLED_LMS" != "no"
2134+
# SLH-DSA
2135+
ENABLED_SLHDSA=yes
2136+
AC_ARG_ENABLE([slhdsa],
2137+
[AS_HELP_STRING([--enable-slhdsa],[Enable SLH-DSA signatures (default: disabled)])],
2138+
[ ENABLED_SLHDSA=$enableval ],
2139+
[ ENABLED_SLHDSA=no ]
2140+
)
2141+
2142+
for v in `echo $ENABLED_SLHDSA | tr "," " "`
2143+
do
2144+
case $v in
2145+
yes)
2146+
SLHDSA_PARAM_128S=yes
2147+
SLHDSA_PARAM_128F=yes
2148+
SLHDSA_PARAM_192S=yes
2149+
SLHDSA_PARAM_192F=yes
2150+
SLHDSA_PARAM_256S=yes
2151+
SLHDSA_PARAM_256F=yes
2152+
;;
2153+
no)
2154+
;;
2155+
verify-only)
2156+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_VERIFY_ONLY"
2157+
;;
2158+
small)
2159+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_WC_SLHDSA_SMALL"
2160+
;;
2161+
small-mem)
2162+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_WC_SLHDSA_SMALL_MEM"
2163+
;;
2164+
128s)
2165+
SLHDSA_PARAM_128S=yes
2166+
;;
2167+
128f)
2168+
SLHDSA_PARAM_128F=yes
2169+
;;
2170+
192s)
2171+
SLHDSA_PARAM_192S=yes
2172+
;;
2173+
192f)
2174+
SLHDSA_PARAM_192F=yes
2175+
;;
2176+
256s)
2177+
SLHDSA_PARAM_256S=yes
2178+
;;
2179+
256f)
2180+
SLHDSA_PARAM_256F=yes
2181+
;;
2182+
no-s)
2183+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_NO_SMALL"
2184+
;;
2185+
no-f)
2186+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_NO_FAST"
2187+
;;
2188+
*)
2189+
AC_MSG_ERROR([Invalid choice for SLH-DSA []: $ENABLED_SLHDSA.])
2190+
break;;
2191+
esac
2192+
done
2193+
2194+
if test "$ENABLED_SLHDSA" != "no"
21352195
then
2136-
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_HAVE_LMS"
2196+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_HAVE_SLHDSA"
2197+
AM_CCASFLAGS="$AM_CCASFLAGS -DWOLFSSL_HAVE_SLHDSA"
2198+
2199+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_WC_SLHDSA"
21372200

2138-
# Use hash-sigs LMS lib if enabled.
2139-
if test "$ENABLED_LIBLMS" = "yes"; then
2140-
ENABLED_WC_LMS=no
2201+
if test "$SLHDSA_PARAM_128S" = "yes"
2202+
then
2203+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_128S"
2204+
else
2205+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_NO_128S"
2206+
fi
2207+
if test "$SLHDSA_PARAM_128F" = "yes"
2208+
then
2209+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_128F"
2210+
else
2211+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_NO_128F"
2212+
fi
2213+
if test "$SLHDSA_PARAM_192S" = "yes"
2214+
then
2215+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_192S"
2216+
else
2217+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_NO_192S"
2218+
fi
2219+
if test "$SLHDSA_PARAM_192F" = "yes"
2220+
then
2221+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_192F"
21412222
else
2142-
ENABLED_WC_LMS=yes
2143-
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_WC_LMS"
2223+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_NO_192F"
21442224
fi
2225+
if test "$SLHDSA_PARAM_256S" = "yes"
2226+
then
2227+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_256S"
2228+
else
2229+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_NO_256S"
2230+
fi
2231+
if test "$SLHDSA_PARAM_256F" = "yes"
2232+
then
2233+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_256F"
2234+
else
2235+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_NO_256F"
2236+
fi
2237+
2238+
enable_shake256=yes
21452239
fi
21462240

21472241
# SINGLE THREADED
@@ -11225,6 +11319,7 @@ AM_CONDITIONAL([BUILD_CURVE448],[test "x$ENABLED_CURVE448" = "xyes" || test "x$E
1122511319
AM_CONDITIONAL([BUILD_CURVE448_SMALL],[test "x$ENABLED_CURVE448_SMALL" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
1122611320
AM_CONDITIONAL([BUILD_WC_LMS],[test "x$ENABLED_WC_LMS" != "xno" || test "x$ENABLED_USERSETTINGS" = "xyes"])
1122711321
AM_CONDITIONAL([BUILD_WC_XMSS],[test "x$ENABLED_WC_XMSS" != "xno" || test "x$ENABLED_USERSETTINGS" = "xyes"])
11322+
AM_CONDITIONAL([BUILD_WC_SLHDSA],[test "x$ENABLED_SLHDSA" != "xno" || test "x$ENABLED_USERSETTINGS" = "xyes"])
1122811323
AM_CONDITIONAL([BUILD_WC_MLKEM],[test "x$ENABLED_WC_MLKEM" != "xno" || test "x$ENABLED_USERSETTINGS" = "xyes"])
1122911324
AM_CONDITIONAL([BUILD_DILITHIUM],[test "x$ENABLED_DILITHIUM" != "xno" || test "x$ENABLED_USERSETTINGS" = "xyes"])
1123011325
AM_CONDITIONAL([BUILD_ECCSI],[test "x$ENABLED_ECCSI" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
@@ -11775,6 +11870,7 @@ echo " * XMSS wolfSSL impl: $ENABLED_WC_XMSS"
1177511870
if test "$ENABLED_LIBXMSS" = "yes"; then
1177611871
echo " * XMSS_ROOT: $XMSS_ROOT"
1177711872
fi
11873+
echo " * SLH-DSA $ENABLED_SLHDSA"
1177811874
echo " * MLKEM: $ENABLED_MLKEM"
1177911875
echo " * MLKEM wolfSSL impl: $ENABLED_WC_MLKEM"
1178011876
echo " * DILITHIUM: $ENABLED_DILITHIUM"

src/include.am

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,6 +1418,10 @@ src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_xmss.c
14181418
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_xmss_impl.c
14191419
endif
14201420

1421+
if BUILD_WC_SLHDSA
1422+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_slhdsa.c
1423+
endif
1424+
14211425
if !BUILD_FIPS_V6_PLUS
14221426
if BUILD_CURVE25519
14231427
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/curve25519.c

tests/api.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@
207207
#include <tests/api/test_ed448.h>
208208
#include <tests/api/test_mlkem.h>
209209
#include <tests/api/test_mldsa.h>
210+
#include <tests/api/test_slhdsa.h>
210211
#include <tests/api/test_signature.h>
211212
#include <tests/api/test_dtls.h>
212213
#include <tests/api/test_ocsp.h>
@@ -32633,6 +32634,8 @@ TEST_CASE testCases[] = {
3263332634
TEST_MLKEM_DECLS,
3263432635
/* Dilithium */
3263532636
TEST_MLDSA_DECLS,
32637+
/* SLH-DSA */
32638+
TEST_SLHDSA_DECLS,
3263632639
/* Signature API */
3263732640
TEST_SIGNATURE_DECLS,
3263832641

tests/api/include.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ tests_unit_test_SOURCES += tests/api/test_curve448.c
4646
tests_unit_test_SOURCES += tests/api/test_ed448.c
4747
tests_unit_test_SOURCES += tests/api/test_mlkem.c
4848
tests_unit_test_SOURCES += tests/api/test_mldsa.c
49+
tests_unit_test_SOURCES += tests/api/test_slhdsa.c
4950
tests_unit_test_SOURCES += tests/api/test_signature.c
5051
# TLS Protocol
5152
tests_unit_test_SOURCES += tests/api/test_dtls.c
@@ -148,6 +149,7 @@ EXTRA_DIST += tests/api/test_curve448.h
148149
EXTRA_DIST += tests/api/test_ed448.h
149150
EXTRA_DIST += tests/api/test_mlkem.h
150151
EXTRA_DIST += tests/api/test_mldsa.h
152+
EXTRA_DIST += tests/api/test_slhdsa.h
151153
EXTRA_DIST += tests/api/test_signature.h
152154
EXTRA_DIST += tests/api/test_dtls.h
153155
EXTRA_DIST += tests/api/test_ocsp.h

0 commit comments

Comments
 (0)