Skip to content

Commit ffd8dcc

Browse files
committed
ML-DSA: reduce amount of duplicate compiled code
Reported-by: "Becker, Hanno" <beckphan@amazon.co.uk> Signed-off-by: Stephan Mueller <smueller@chronox.de>
1 parent 468fe25 commit ffd8dcc

19 files changed

+392
-341
lines changed

CHANGES.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ Changes 1.7.0-prerelease
1717

1818
* ML-KEM/DSA: add safety measures against compilers trying to reason about code they should not reason about. Changes are suggested by "Becker, Hanno" <beckphan@amazon.co.uk> and derived from https://github.com/pq-code-package/ml[dsa|kem]-native/
1919

20+
* ML-DSA: reduce amount of duplicate code compilation suggested by "Becker, Hanno" <beckphan@amazon.co.uk>
21+
2022
Changes 1.6.0
2123
* ASN.1: use stack for small generator for small use cases
2224

linux_kernel/Kbuild.ml-dsa

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,42 @@
77
# Dilithium Common
88
leancrypto-$(CONFIG_LEANCRYPTO_DILITHIUM) \
99
+= ../ml-dsa/src/dilithium_api.o \
10+
../ml-dsa/src/dilithium_ntt.o \
11+
../ml-dsa/src/dilithium_poly.o \
12+
../ml-dsa/src/dilithium_rounding.o \
1013
../ml-dsa/src/dilithium_zetas.o \
1114
leancrypto_kernel_dilithium.o
1215

1316
# Dilithium 87
1417
leancrypto-$(CONFIG_LEANCRYPTO_DILITHIUM_87) \
15-
+= ../ml-dsa/src/dilithium_ntt.o \
16-
../ml-dsa/src/dilithium_poly.o \
17-
../ml-dsa/src/dilithium_rounding.o \
18+
+= ../ml-dsa/src/dilithium_poly_type.o \
19+
../ml-dsa/src/dilithium_rounding_type.o \
1820
../ml-dsa/src/dilithium_selftest.o \
1921
../ml-dsa/src/dilithium_signature_c.o \
2022
../ml-dsa/src/dilithium_signature_helper.o
2123

2224
# Dilithium 65
2325
leancrypto-$(CONFIG_LEANCRYPTO_DILITHIUM_65) \
24-
+= dilithium65/dilithium_ntt.o \
25-
dilithium65/dilithium_poly.o \
26-
dilithium65/dilithium_rounding.o \
26+
+= dilithium65/dilithium_poly_type.o \
27+
dilithium65/dilithium_rounding_type.o \
2728
dilithium65/dilithium_selftest.o \
2829
dilithium65/dilithium_signature_c.o \
2930
dilithium65/dilithium_signature_helper.o
30-
CFLAGS_dilithium65/dilithium_ntt.o := -DLC_DILITHIUM_TYPE_65
31-
CFLAGS_dilithium65/dilithium_poly.o := -DLC_DILITHIUM_TYPE_65
32-
CFLAGS_dilithium65/dilithium_rounding.o := -DLC_DILITHIUM_TYPE_65
31+
CFLAGS_dilithium65/dilithium_poly_type.o := -DLC_DILITHIUM_TYPE_65
32+
CFLAGS_dilithium65/dilithium_rounding_type.o := -DLC_DILITHIUM_TYPE_65
3333
CFLAGS_dilithium65/dilithium_selftest.o := -DLC_DILITHIUM_TYPE_65
3434
CFLAGS_dilithium65/dilithium_signature_c.o := -DLC_DILITHIUM_TYPE_65
3535
CFLAGS_dilithium65/dilithium_signature_helper.o := -DLC_DILITHIUM_TYPE_65
3636

3737
# Dilithium 44
3838
leancrypto-$(CONFIG_LEANCRYPTO_DILITHIUM_44) \
39-
+= dilithium44/dilithium_ntt.o \
40-
dilithium44/dilithium_poly.o \
41-
dilithium44/dilithium_rounding.o \
39+
+= dilithium44/dilithium_poly_type.o \
40+
dilithium44/dilithium_rounding_type.o \
4241
dilithium44/dilithium_selftest.o \
4342
dilithium44/dilithium_signature_c.o \
4443
dilithium44/dilithium_signature_helper.o
45-
CFLAGS_dilithium44/dilithium_ntt.o := -DLC_DILITHIUM_TYPE_44
46-
CFLAGS_dilithium44/dilithium_poly.o := -DLC_DILITHIUM_TYPE_44
47-
CFLAGS_dilithium44/dilithium_rounding.o := -DLC_DILITHIUM_TYPE_44
44+
CFLAGS_dilithium44/dilithium_poly_type.o := -DLC_DILITHIUM_TYPE_44
45+
CFLAGS_dilithium44/dilithium_rounding_type.o := -DLC_DILITHIUM_TYPE_44
4846
CFLAGS_dilithium44/dilithium_selftest.o := -DLC_DILITHIUM_TYPE_44
4947
CFLAGS_dilithium44/dilithium_signature_c.o := -DLC_DILITHIUM_TYPE_44
5048
CFLAGS_dilithium44/dilithium_signature_helper.o := -DLC_DILITHIUM_TYPE_44

linux_kernel/dilithium44/dilithium_ntt.c

Lines changed: 0 additions & 1 deletion
This file was deleted.

linux_kernel/dilithium44/dilithium_poly.c

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../ml-dsa/src/dilithium_poly_type.c

linux_kernel/dilithium44/dilithium_rounding.c

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../ml-dsa/src/dilithium_rounding_type.c

linux_kernel/dilithium65/dilithium_ntt.c

Lines changed: 0 additions & 1 deletion
This file was deleted.

linux_kernel/dilithium65/dilithium_poly.c

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../ml-dsa/src/dilithium_poly_type.c

0 commit comments

Comments
 (0)