Conversation
af2fa59 to
4d541e7
Compare
|
retest this please |
0d6a066 to
d8ac9da
Compare
There was a problem hiding this comment.
Pull request overview
Adds initial SLH-DSA (FIPS 205) support to wolfCrypt, wiring it into build systems, benchmarks, and both unit/API tests.
Changes:
- Introduces the SLH-DSA public API header and integrates SLH-DSA into core build/packaging (autotools/CMake) and CI configs.
- Adds SLH-DSA coverage to wolfcrypt test runner plus dedicated API unit tests.
- Adds SLH-DSA benchmark support and extends SHA3 AVX2 assembly gating for SLH-DSA builds.
Reviewed changes
Copilot reviewed 17 out of 22 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| wolfssl/wolfcrypt/wc_slhdsa.h | New public SLH-DSA API header, parameter constants, key struct and function prototypes. |
| wolfssl/wolfcrypt/types.h | Adds DYNAMIC_TYPE_SLHDSA for memory tracking. |
| wolfssl/wolfcrypt/include.am | Installs the new wc_slhdsa.h header. |
| wolfcrypt/test/test.h | Declares slhdsa_test() for the wolfcrypt test runner. |
| wolfcrypt/test/test.c | Hooks SLH-DSA into test execution and adds SLH-DSA test vectors / sign-verify tests. |
| wolfcrypt/src/sha3_asm.S | Enables SHA3 AVX2 multi-block symbols when SLH-DSA is enabled. |
| wolfcrypt/src/poly1305_asm.asm | Comment header formatting change. |
| wolfcrypt/src/chacha_asm.asm | Comment header formatting change. |
| wolfcrypt/src/aes_xts_asm.asm | Comment header formatting change. |
| wolfcrypt/src/aes_gcm_asm.asm | Comment header formatting change. |
| wolfcrypt/benchmark/benchmark.h | Adds SLH-DSA benchmark prototype. |
| wolfcrypt/benchmark/benchmark.c | Adds SLH-DSA benchmark flags/CLI options and implements bench_slhdsa(). |
| tests/api/test_slhdsa.h | New API test declarations for SLH-DSA. |
| tests/api/test_slhdsa.c | New API unit tests for init, sizing, keygen, sign/verify, hash-signing, import/export, checkkey. |
| tests/api/include.am | Adds SLH-DSA API tests to automake build and dist. |
| tests/api.c | Registers SLH-DSA API tests in the test case list. |
| src/include.am | Adds wolfcrypt/src/wc_slhdsa.c to library sources under BUILD_WC_SLHDSA. |
| configure.ac | Adds --enable-slhdsa handling, flags, and BUILD_WC_SLHDSA conditional. |
| CMakeLists.txt | Adds CMake option for WOLFSSL_HAVE_SLHDSA and includes SLH-DSA API test source. |
| .wolfssl_known_macro_extras | Adds SLH-DSA-related macro names to the known-macro list. |
| .github/workflows/pq-all.yml | Enables SLH-DSA in PQ CI matrix configurations. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
retest this please |
douzzer
left a comment
There was a problem hiding this comment.
All tests run with --enable-slhdsa added to config:
succeeded: quantum-safe-wolfssl-all-g++-latest-debug quantum-safe-wolfssl-all-clang++-latest quantum-safe-wolfssl-all-cppcheck quantum-safe-wolfssl-all-gcc-latest quantum-safe-wolfssl-all-gcc-latest-MLKEM_CACHE_A quantum-safe-wolfssl-all-gcc-latest-MLKEM_ENCAPSULATE_SMALL_MEM quantum-safe-wolfssl-all-gcc-latest-m32 quantum-safe-wolfssl-all-gcc-latest-c23-debug quantum-safe-wolfssl-all-clang-latest-c23-debug quantum-safe-wolfssl-all-g++-latest quantum-safe-wolfssl-all-fortify-source-asm quantum-safe-wolfssl-all-fortify-source-noasm quantum-safe-wolfssl-all-intelasm-sp-asm-valgrind quantum-safe-wolfssl-all-intelasm-sp-asm-helgrind quantum-safe-wolfssl-all-intelasm-sp-asm-valgrind-Os
failed: quantum-safe-all-crypt-sp-math-vector-register-access quantum-safe-wolfssl-all-clang-tidy quantum-safe-wolfssl-all-noasm-clang-tidy quantum-safe-wolfssl-all-smallstack-clang-tidy quantum-safe-wolfssl-all-fips204-clang-tidy quantum-safe-wolfssl-all-no-asm-clang-tidy quantum-safe-wolfssl-all-linuxkm-defaults-clang-tidy quantum-safe-wolfssl-all-intelasm-sp-asm-sanitizer
representative subset of failing test transcripts:
[quantum-safe-all-crypt-sp-math-vector-register-access] [11 of 60] [60c13c15c8]
configure... real 0m6.217s user 0m3.784s sys 0m3.152s
build... real 0m10.708s user 2m10.652s sys 0m6.921s
check...FAIL: testsuite/testsuite.test
FAIL: scripts/unit.test
real 0m6.112s user 0m5.339s sys 0m3.049s
testsuite/testsuite.log tail:
CURVE25519 test passed!
ED25519 test passed!
CURVE448 test passed!
ED448 test passed!
MLKEM test passed!
DILITHIUM test passed!
XMSS Vfy test passed!
XMSS test passed!
wolfcrypt/src/wc_slhdsa.c @ L450 : incr : wc_svr_count 6 (last op wolfcrypt/src/wc_slhdsa.c L4863)
FAIL testsuite/testsuite.test (exit status: 1)
[quantum-safe-wolfssl-all-clang-tidy] [14 of 60] [60c13c15c8]
configure... real 0m12.886s user 0m7.869s sys 0m6.143s
build...f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 12052) XSNPRINTF(name, sizeof(name), "SLH-DSA-%c", ((param & 1) == 0) ? 'S' : 'F');
/tmp/tmp.4346_28411/wolfssl_test_workdir.40936/wolfssl/wolfcrypt/benchmark/benchmark.c:12052:5: warning: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value]
12052 | XSNPRINTF(name, sizeof(name), "SLH-DSA-%c", ((param & 1) == 0) ? 'S' : 'F');
| ^
a22b2085b1 (<hide@wolfssl.com> 2020-09-14 20:02:21 +0900 1111) #define XSNPRINTF snprintf
./wolfssl/wolfcrypt/types.h:1111:35: note: expanded from macro 'XSNPRINTF'
1111 | #define XSNPRINTF snprintf
| ^
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 12052) XSNPRINTF(name, sizeof(name), "SLH-DSA-%c", ((param & 1) == 0) ? 'S' : 'F');
/tmp/tmp.4346_28411/wolfssl_test_workdir.40936/wolfssl/wolfcrypt/benchmark/benchmark.c:12052:5: note: cast the expression to void to silence this warning
12052 | XSNPRINTF(name, sizeof(name), "SLH-DSA-%c", ((param & 1) == 0) ? 'S' : 'F');
| ^
a22b2085b1 (<hide@wolfssl.com> 2020-09-14 20:02:21 +0900 1111) #define XSNPRINTF snprintf
./wolfssl/wolfcrypt/types.h:1111:35: note: expanded from macro 'XSNPRINTF'
1111 | #define XSNPRINTF snprintf
| ^
Suppressed 49 warnings (18 in non-user code, 31 NOLINT).
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 189) do { (a)[1] = t[0]; (a)[2] = t[1]; (a)[3] = t[2]; } while (0)
/tmp/tmp.4346_28411/wolfssl_test_workdir.40936/wolfssl/wolfcrypt/src/wc_slhdsa.c:189:19: warning: macro argument should be enclosed in parentheses [bugprone-macro-parentheses]
189 | do { (a)[1] = t[0]; (a)[2] = t[1]; (a)[3] = t[2]; } while (0)
| ^
| ()
[and ~100 more]
[quantum-safe-wolfssl-all-intelasm-sp-asm-sanitizer] [20 of 60] [60c13c15c8]
configure... real 0m10.826s user 0m6.970s sys 0m4.938s
build... real 0m50.234s user 11m0.517s sys 0m11.179s
check... real 0m33.520s user 0m24.767s sys 0m11.874s
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1170) ((word64*)seed)[i];
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1170:32: runtime error: load of misaligned address 0x7b06fd1c007c for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1359) SHAKE256_SET_SEED_HA_X4_16(fixed, pk_seed, addr);
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1359:9: runtime error: load of misaligned address 0x7b06fd1c007c for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1359:9: runtime error: load of misaligned address 0x7b06fd1c007c for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1203) ((word64*)hash)[i];
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1203:28: runtime error: load of misaligned address 0x7b06fd1c04ec for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1590) SHAKE256_SET_SEED_HA_X4_16(fixed, pk_seed, addr);
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1590:9: runtime error: load of misaligned address 0x7b06fd1c050c for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1590:9: runtime error: load of misaligned address 0x7b06fd1c050c for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1650) SHAKE256_SET_SEED_HA_X4_24(fixed, pk_seed, addr);
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1650:9: runtime error: load of misaligned address 0x7b06fd3d00dc for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1650:9: runtime error: load of misaligned address 0x7b06fd3d00dc for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1650:9: runtime error: load of misaligned address 0x7b06fd3d00dc for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1420) SHAKE256_SET_SEED_HA_X4_24(fixed, pk_seed, addr);
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1420:9: runtime error: load of misaligned address 0x7b06fd3d00dc for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1420:9: runtime error: load of misaligned address 0x7b06fd3d00dc for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1420:9: runtime error: load of misaligned address 0x7b06fd3d00dc for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1710) SHAKE256_SET_SEED_HA_X4_32(fixed, pk_seed, addr);
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1710:9: runtime error: load of misaligned address 0x7b06fd2f00ec for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1710:9: runtime error: load of misaligned address 0x7b06fd2f00ec for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1710:9: runtime error: load of misaligned address 0x7b06fd2f00ec for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1710:9: runtime error: load of misaligned address 0x7b06fd2f00ec for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1481) SHAKE256_SET_SEED_HA_X4_32(fixed, pk_seed, addr);
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1481:9: runtime error: load of misaligned address 0x7b06fd2f00ec for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1481:9: runtime error: load of misaligned address 0x7b06fd2f00ec for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1481:9: runtime error: load of misaligned address 0x7b06fd2f00ec for type 'word64', which requires 8 byte alignment
testsuite/testsuite.log:wolfcrypt/src/wc_slhdsa.c:1481:9: runtime error: load of misaligned address 0x7b06fd2f00ec for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1170) ((word64*)seed)[i];
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1170:32: runtime error: load of misaligned address 0x7ba8c656407c for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1359) SHAKE256_SET_SEED_HA_X4_16(fixed, pk_seed, addr);
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1359:9: runtime error: load of misaligned address 0x7ba8c656407c for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1359:9: runtime error: load of misaligned address 0x7ba8c656407c for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1203) ((word64*)hash)[i];
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1203:28: runtime error: load of misaligned address 0x7ba8c65644ec for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1590) SHAKE256_SET_SEED_HA_X4_16(fixed, pk_seed, addr);
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1590:9: runtime error: load of misaligned address 0x7ba8c656450c for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1590:9: runtime error: load of misaligned address 0x7ba8c656450c for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1650) SHAKE256_SET_SEED_HA_X4_24(fixed, pk_seed, addr);
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1650:9: runtime error: load of misaligned address 0x7ba8c67e00dc for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1650:9: runtime error: load of misaligned address 0x7ba8c67e00dc for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1650:9: runtime error: load of misaligned address 0x7ba8c67e00dc for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1420) SHAKE256_SET_SEED_HA_X4_24(fixed, pk_seed, addr);
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1420:9: runtime error: load of misaligned address 0x7ba8c67e00dc for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1420:9: runtime error: load of misaligned address 0x7ba8c67e00dc for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1420:9: runtime error: load of misaligned address 0x7ba8c67e00dc for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1710) SHAKE256_SET_SEED_HA_X4_32(fixed, pk_seed, addr);
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1710:9: runtime error: load of misaligned address 0x7ba8c67000ec for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1710:9: runtime error: load of misaligned address 0x7ba8c67000ec for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1710:9: runtime error: load of misaligned address 0x7ba8c67000ec for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1710:9: runtime error: load of misaligned address 0x7ba8c67000ec for type 'word64', which requires 8 byte alignment
f96044f32c (<sean@wolfssl.com> 2026-02-27 11:51:05 +1000 1481) SHAKE256_SET_SEED_HA_X4_32(fixed, pk_seed, addr);
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1481:9: runtime error: load of misaligned address 0x7ba8c67000ec for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1481:9: runtime error: load of misaligned address 0x7ba8c67000ec for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1481:9: runtime error: load of misaligned address 0x7ba8c67000ec for type 'word64', which requires 8 byte alignment
scripts/unit.log:wolfcrypt/src/wc_slhdsa.c:1481:9: runtime error: load of misaligned address 0x7ba8c67000ec for type 'word64', which requires 8 byte alignment
scenario started 2026-03-05T17:19:42.101134Z, real elapsed 1m34.823358s
quantum-safe-wolfssl-all-intelasm-sp-asm-sanitizer fail_analytic_check
failed config: 'EXTRA_CPPFLAGS=-Werror' '--srcdir' '.' '--disable-jobserver' '--enable-option-checking=fatal' '--enable-all' '--enable-acert' '--enable-dtls13' '--enable-dtls-mtu' '--enable-dtls-frag-ch' '--enable-dtlscid' '--enable-quic' '--with-sys-crypto-policy' '--enable-intelasm' '--enable-sp-asm' '--enable-experimental' '--enable-kyber=yes,original' '--enable-lms' '--enable-xmss' '--enable-dilithium' '--enable-slhdsa' '--enable-dual-alg-certs' '--disable-qt' 'CC=gcc-16' 'LDFLAGS=-g -fno-omit-frame-pointer -fsanitize-recover=all -fsanitize=address,pointer-subtract,leak,undefined,float-cast-overflow,float-divide-by-zero,bounds-strict -fsanitize-recover=all ' 'CFLAGS=-DTEST_ALWAYS_RUN_TO_END -DWC_SIPHASH_NO_ASM -DWC_DEBUG_CIPHER_LIFECYCLE -g -fno-omit-frame-pointer -fsanitize=address,pointer-subtract,leak,undefined,float-cast-overflow,float-divide-by-zero,bounds-strict -fsanitize-recover=all --param=max-vartrack-size=128000000' 'CPPFLAGS=-DNO_WOLFSSL_CIPHER_SUITE_TEST -DWOLFSSL_OLD_PRIME_CHECK -pedantic -Wdeclaration-after-statement -Wnull-dereference -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE'
BUILD_ENV: 'FAIL_BUILD_CODENAME=fail_analytic_build' 'MAX_FIPS_CODE_SZ=10000000'
RUN_ENV: 'LD_LIBRARY_PATH=/tmp/tmp.4346_28411/wolfssl_test_workdir.40936/wolfssl/src/.libs:/usr/lib/gcc/x86_64-pc-linux-gnu/16:/usr/lib/gcc/x86_64-pc-linux-gnu/16/32' 'ASAN_OPTIONS=halt_on_error=0 color=always log_path=sanitizer_log.asan ' 'UBSAN_OPTIONS=halt_on_error=0 color=always log_path=sanitizer_log.ubsan ' 'LSAN_OPTIONS=halt_on_error=0 color=always log_path=sanitizer_log.lsan ' 'MSAN_OPTIONS=halt_on_error=0 color=always log_path=sanitizer_log.msan ' 'TSAN_OPTIONS=halt_on_error=0 color=always log_path=sanitizer_log.tsan '
CMakeLists.txt
Outdated
| "no" "yes;no") | ||
|
|
||
| # SLH-DSA | ||
| add_option(WOLFSSL_HAVE_SLHDSA |
There was a problem hiding this comment.
This should be WOLFSSL_SLHDSA, not WOLFSSL_HAVE_SLHDSA.
|
|
||
| if test "$ENABLED_SLHDSA" != "no" | ||
| then | ||
| AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_HAVE_LMS" |
There was a problem hiding this comment.
Whoops, you removed the setup for -DWOLFSSL_HAVE_LMS. Need to restore this, and the if line that preceded it., and the setup that follows.
| ] | ||
| ) | ||
|
|
||
| if test "$ENABLED_LMS" != "no" |
| # Use hash-sigs LMS lib if enabled. | ||
| if test "$ENABLED_LIBLMS" = "yes"; then | ||
| ENABLED_WC_LMS=no |
| AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_SLHDSA_PARAM_192F" | ||
| else | ||
| ENABLED_WC_LMS=yes | ||
| AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_WC_LMS" |
|
Unaligned access only compiled when Intel x64 |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 17 out of 22 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
JacobBarthelmeh
left a comment
There was a problem hiding this comment.
Had a nit. comment about the dates in comments for copyright. Compiled and tested the addition this is the results of benchmarks on my Mac.
bash-3.2$ ./wolfcrypt/benchmark/benchmark -slhdsa-shake256f -slhdsa-shake256s -slhdsa-shake128s -slhdsa-shake128f -slhdsa-shake192s -slhdsa-shake192f
------------------------------------------------------------------------------
wolfSSL version 5.8.4
------------------------------------------------------------------------------
Math: Multi-Precision: Wolf(SP) no-dyn-stack word-size=64 bits=4096 sp_int.c
Single Precision: ecc 256 384 521 rsa/dh 2048 3072 4096 asm sp_x86_64.c
Assembly Speedups: INTELASM ALIGN X86_64_BUILD
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
SLH-DSA-S 128 gen 17 ops took 1.031 sec, avg 60.640 ms, 16.491 ops/sec, 2474040126 cycles 145531772.1 Cycles/op
SLH-DSA-S 128 sign 3 ops took 1.427 sec, avg 475.805 ms, 2.102 ops/sec, 3425702316 cycles 1141900772.0 Cycles/op
SLH-DSA-S 128 verify 1967 ops took 1.000 sec, avg 0.509 ms, 1966.455 ops/sec, 2400599522 cycles 1220437.0 Cycles/op
SLH-DSA-F 128 gen 924 ops took 1.001 sec, avg 1.083 ms, 923.175 ops/sec, 2402081194 cycles 2599655.0 Cycles/op
SLH-DSA-F 128 sign 35 ops took 1.005 sec, avg 28.712 ms, 34.829 ops/sec, 2411744528 cycles 68906986.5 Cycles/op
SLH-DSA-F 128 verify 632 ops took 1.001 sec, avg 1.584 ms, 631.359 ops/sec, 2402369678 cycles 3801217.8 Cycles/op
SLH-DSA-S 192 gen 11 ops took 1.080 sec, avg 98.175 ms, 10.186 ops/sec, 2591753444 cycles 235613949.5 Cycles/op
SLH-DSA-S 192 sign 2 ops took 1.920 sec, avg 959.918 ms, 1.042 ops/sec, 4607478188 cycles 2303739094.0 Cycles/op
SLH-DSA-S 192 verify 971 ops took 1.000 sec, avg 1.030 ms, 970.884 ops/sec, 2400222072 cycles 2471907.4 Cycles/op
SLH-DSA-F 192 gen 513 ops took 1.001 sec, avg 1.950 ms, 512.703 ops/sec, 2401324050 cycles 4680943.6 Cycles/op
SLH-DSA-F 192 sign 18 ops took 1.013 sec, avg 56.291 ms, 17.765 ops/sec, 2431718560 cycles 135095475.6 Cycles/op
SLH-DSA-F 192 verify 306 ops took 1.003 sec, avg 3.277 ms, 305.194 ops/sec, 2406272708 cycles 7863636.3 Cycles/op
SLH-DSA-S 256 gen 14 ops took 1.032 sec, avg 73.684 ms, 13.571 ops/sec, 2475709534 cycles 176836395.3 Cycles/op
SLH-DSA-S 256 sign 2 ops took 1.904 sec, avg 951.945 ms, 1.050 ops/sec, 4569213460 cycles 2284606730.0 Cycles/op
SLH-DSA-S 256 verify 777 ops took 1.000 sec, avg 1.287 ms, 776.756 ops/sec, 2400688410 cycles 3089689.1 Cycles/op
SLH-DSA-F 256 gen 210 ops took 1.004 sec, avg 4.781 ms, 209.165 ops/sec, 2409512442 cycles 11473868.8 Cycles/op
SLH-DSA-F 256 sign 10 ops took 1.009 sec, avg 100.869 ms, 9.914 ops/sec, 2420792050 cycles 242079205.0 Cycles/op
SLH-DSA-F 256 verify 319 ops took 1.002 sec, avg 3.141 ms, 318.355 ops/sec, 2404798402 cycles 7538553.0 Cycles/op
Benchmark complete
tests/api/test_slhdsa.c
Outdated
| @@ -0,0 +1,1174 @@ | |||
| /* test_slhdsa.c | |||
| * | |||
| * Copyright (C) 2006-2025 wolfSSL Inc. | |||
There was a problem hiding this comment.
Nit. should be 2026 now.
Adding implementation of SLH-DSA. Included optimizations for Intel x64. Some tests added.
|
retest this please |
Description
Adding implementation of SLH-DSA.
Some tests added.
Testing
Regression tested SLH-DSA including:
--enable-slhdsa
--enable-slhdsa=yes,verify-only
--enable-slhdsa=yes,small
--enable-intelasm
Checklist