Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/configs/pq-all.json
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,46 @@
"configure": ["--host=aarch64-linux-gnu", "--enable-cryptonly",
"--enable-armasm=inline", "--enable-experimental",
"--enable-frodokem=aes,ephemeral,sve,sme", "--disable-examples"]},
{"name": "mldsa-mlkem-arm32-armasm", "minutes": 0.5, "check": false,
"cc": "ccache arm-linux-gnueabihf-gcc",
"comment": "AArch32 NEON ML-DSA + ML-KEM and the batched Keccak they share. Runs the KATs under qemu: these are wrong-answer risks, so a build-only job would not catch them.",
"configure": ["--host=arm-linux-gnueabihf", "--enable-cryptonly",
"--enable-armasm", "--enable-mldsa", "--enable-mlkem",
"--disable-examples"],
"run": [["env", "QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf",
"./wolfcrypt/test/testwolfcrypt"]]},
{"name": "mldsa-mlkem-arm32-armasm-inline", "minutes": 0.5, "check": false,
"cc": "ccache arm-linux-gnueabihf-gcc",
"comment": "Same, through the inline-asm backend. It is a separate code path from the .S - operand register allocation differs - and has carried defects the .S build did not.",
"configure": ["--host=arm-linux-gnueabihf", "--enable-cryptonly",
"--enable-armasm=inline", "--enable-mldsa", "--enable-mlkem",
"--disable-examples"],
"run": [["env", "QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf",
"./wolfcrypt/test/testwolfcrypt"]]},
{"name": "mldsa-mlkem-arm32-armasm-no-neon", "minutes": 0.5, "check": false,
"cc": "ccache arm-linux-gnueabihf-gcc",
"comment": "WOLFSSL_ARMASM_NO_NEON: scalar SHA-3 assembly with the C ML-DSA, and the only AArch32 job covering the non-NEON dispatch.",
"configure": ["--host=arm-linux-gnueabihf", "--enable-cryptonly",
"--enable-armasm", "--enable-mldsa", "--enable-mlkem",
"--disable-examples", "CPPFLAGS=-DWOLFSSL_ARMASM_NO_NEON"],
"run": [["env", "QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf",
"./wolfcrypt/test/testwolfcrypt"]]},
{"name": "mldsa-mlkem-aarch64-armasm", "minutes": 0.5, "check": false,
"cc": "ccache aarch64-linux-gnu-gcc",
"comment": "AArch64 NEON ML-DSA + ML-KEM. QEMU_CPU=max so the FEAT_RDM and FEAT_SHA3 dispatchers take their instruction-extension paths.",
"configure": ["--host=aarch64-linux-gnu", "--enable-cryptonly",
"--enable-armasm", "--enable-mldsa", "--enable-mlkem",
"--disable-examples"],
"run": [["env", "QEMU_LD_PREFIX=/usr/aarch64-linux-gnu", "QEMU_CPU=max",
"./wolfcrypt/test/testwolfcrypt"]]},
{"name": "mldsa-mlkem-aarch64-armasm-inline", "minutes": 0.5, "check": false,
"cc": "ccache aarch64-linux-gnu-gcc",
"comment": "Same, through the inline-asm backend.",
"configure": ["--host=aarch64-linux-gnu", "--enable-cryptonly",
"--enable-armasm=inline", "--enable-mldsa", "--enable-mlkem",
"--disable-examples"],
"run": [["env", "QEMU_LD_PREFIX=/usr/aarch64-linux-gnu", "QEMU_CPU=max",
"./wolfcrypt/test/testwolfcrypt"]]},
{"name": "mlkem-old-ids", "minutes": 0.4,
"configure": ["--enable-intelasm", "--enable-sp-asm",
"--enable-mlkem=yes,kyber,ml-kem",
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pq-all.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
name: Quantum Resistant Tests

# START OF COMMON SECTION
Expand Down Expand Up @@ -49,7 +49,7 @@
- name: Install dependencies
uses: ./.github/actions/install-apt-deps
with:
packages: autoconf automake libtool build-essential bubblewrap crossbuild-essential-arm64 crossbuild-essential-armhf
packages: autoconf automake libtool build-essential bubblewrap crossbuild-essential-arm64 crossbuild-essential-armhf qemu-user
ghcr-debs-tag: ubuntu-24.04-minimal

# ccache via the cross-platform composite; the script passes the
Expand Down
32 changes: 32 additions & 0 deletions src/include.am
Original file line number Diff line number Diff line change
Expand Up @@ -1351,6 +1351,22 @@ if BUILD_INTELASM
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_mldsa_asm.S
endif BUILD_INTELASM
endif !BUILD_X86_ASM
if BUILD_ARMASM
if !BUILD_ARM_THUMB
if BUILD_ARMASM_INLINE
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-mldsa-asm_c.c
else
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-mldsa-asm.S
endif !BUILD_ARMASM_INLINE
endif !BUILD_ARM_THUMB
endif BUILD_ARMASM
if BUILD_ARMASM_NEON
if BUILD_ARMASM_INLINE
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-mldsa-asm_c.c
else
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-mldsa-asm.S
endif !BUILD_ARMASM_INLINE
endif BUILD_ARMASM_NEON
endif

if BUILD_WC_LMS
Expand Down Expand Up @@ -2152,6 +2168,22 @@ if BUILD_INTELASM
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_mldsa_asm.S
endif BUILD_INTELASM
endif !BUILD_X86_ASM
if BUILD_ARMASM
if !BUILD_ARM_THUMB
if BUILD_ARMASM_INLINE
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-mldsa-asm_c.c
else
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-mldsa-asm.S
endif !BUILD_ARMASM_INLINE
endif !BUILD_ARM_THUMB
endif BUILD_ARMASM
if BUILD_ARMASM_NEON
if BUILD_ARMASM_INLINE
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-mldsa-asm_c.c
else
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-mldsa-asm.S
endif !BUILD_ARMASM_INLINE
endif BUILD_ARMASM_NEON
endif

if BUILD_WC_LMS
Expand Down
1 change: 1 addition & 0 deletions wolfcrypt/src/include.am
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ EXTRA_DIST += wolfcrypt/src/wc_mldsa_asm.asm
EXTRA_DIST += wolfcrypt/src/port/arm/armv8-aes-asm.asm
EXTRA_DIST += wolfcrypt/src/port/arm/armv8-chacha-asm.asm
EXTRA_DIST += wolfcrypt/src/port/arm/armv8-curve25519.asm
EXTRA_DIST += wolfcrypt/src/port/arm/armv8-mldsa-asm.asm
EXTRA_DIST += wolfcrypt/src/port/arm/armv8-mlkem-asm.asm
EXTRA_DIST += wolfcrypt/src/port/arm/armv8-poly1305-asm.asm
EXTRA_DIST += wolfcrypt/src/port/arm/armv8-sha256-asm.asm
Expand Down
Loading
Loading