Skip to content

Commit 3dfb4ce

Browse files
committed
common: Split context-parameter machinery into context.h
Move the MLK_CONTEXT_PARAMETERS_n macros and the associated configuration check out of common.h into a new, level-generic header context.h, included by common.h at the point the material previously sat. No behavioral change. - Ports pq-code-package/mldsa-native#1238 - Fixes #1767 Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
1 parent 6495ef7 commit 3dfb4ce

10 files changed

Lines changed: 146 additions & 104 deletions

File tree

.github/workflows/integration-pavona.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,15 @@ jobs:
7979
echo "=== Patched extensions.bzl ==="
8080
cat third_party/mlkem_native/extensions.bzl
8181
82-
- name: Patch functest to only test deterministic API
82+
- name: Apply integration patches
8383
run: |
8484
cd "$PAVONA_DIR"
85-
# speed-up tests in CI by only running deterministic tests
86-
git apply "$GITHUB_WORKSPACE/integration/pavona/derand-only.patch"
85+
for patch in "$GITHUB_WORKSPACE"/integration/pavona/*.patch; do
86+
if [ -f "$patch" ]; then
87+
echo "Applying $patch"
88+
git apply "$patch"
89+
fi
90+
done
8791
8892
- name: Run mlkem functest
8993
run: |

integration/liboqs/ML-KEM-1024_META.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ implementations:
3636
signature_dec: PQCP_MLKEM_NATIVE_MLKEM1024_C_dec
3737
sources: integration/liboqs/config_c.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
3838
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
39-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
40-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
41-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
42-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
43-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc
39+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
40+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
41+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
42+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
43+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc
4444
- name: x86_64
4545
version: FIPS203
4646
folder_name: .
@@ -52,11 +52,11 @@ implementations:
5252
signature_dec: PQCP_MLKEM_NATIVE_MLKEM1024_X86_64_dec
5353
sources: integration/liboqs/config_x86_64.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
5454
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
55-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
56-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
57-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
58-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
59-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/x86_64
55+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
56+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
57+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
58+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
59+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/x86_64
6060
supported_platforms:
6161
- architecture: x86_64
6262
operating_systems:
@@ -77,11 +77,11 @@ implementations:
7777
signature_dec: PQCP_MLKEM_NATIVE_MLKEM1024_AARCH64_dec
7878
sources: integration/liboqs/config_aarch64.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
7979
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
80-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
81-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
82-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
83-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
84-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/aarch64
80+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
81+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
82+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
83+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
84+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/aarch64
8585
supported_platforms:
8686
- architecture: arm_8
8787
operating_systems:
@@ -100,11 +100,11 @@ implementations:
100100
signature_dec: PQCP_MLKEM_NATIVE_MLKEM1024_PPC64LE_dec
101101
sources: integration/liboqs/config_ppc64le.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
102102
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
103-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
104-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
105-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
106-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
107-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/ppc64le
103+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
104+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
105+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
106+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
107+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/ppc64le
108108
supported_platforms:
109109
- architecture: ppc64le
110110
operating_systems:

integration/liboqs/ML-KEM-512_META.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ implementations:
3636
signature_dec: PQCP_MLKEM_NATIVE_MLKEM512_C_dec
3737
sources: integration/liboqs/config_c.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
3838
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
39-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
40-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
41-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
42-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
43-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc
39+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
40+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
41+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
42+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
43+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc
4444
- name: x86_64
4545
version: FIPS203
4646
folder_name: .
@@ -52,11 +52,11 @@ implementations:
5252
signature_dec: PQCP_MLKEM_NATIVE_MLKEM512_X86_64_dec
5353
sources: integration/liboqs/config_x86_64.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
5454
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
55-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
56-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
57-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
58-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
59-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/x86_64
55+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
56+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
57+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
58+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
59+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/x86_64
6060
supported_platforms:
6161
- architecture: x86_64
6262
operating_systems:
@@ -77,11 +77,11 @@ implementations:
7777
signature_dec: PQCP_MLKEM_NATIVE_MLKEM512_AARCH64_dec
7878
sources: integration/liboqs/config_aarch64.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
7979
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
80-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
81-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
82-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
83-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
84-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/aarch64
80+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
81+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
82+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
83+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
84+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/aarch64
8585
supported_platforms:
8686
- architecture: arm_8
8787
operating_systems:
@@ -100,11 +100,11 @@ implementations:
100100
signature_dec: PQCP_MLKEM_NATIVE_MLKEM512_PPC64LE_dec
101101
sources: integration/liboqs/config_ppc64le.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
102102
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
103-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
104-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
105-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
106-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
107-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/ppc64le
103+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
104+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
105+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
106+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
107+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/ppc64le
108108
supported_platforms:
109109
- architecture: ppc64le
110110
operating_systems:

integration/liboqs/ML-KEM-768_META.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ implementations:
3636
signature_dec: PQCP_MLKEM_NATIVE_MLKEM768_C_dec
3737
sources: integration/liboqs/config_c.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
3838
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
39-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
40-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
41-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
42-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
43-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc
39+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
40+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
41+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
42+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
43+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc
4444
- name: x86_64
4545
version: FIPS203
4646
folder_name: .
@@ -52,11 +52,11 @@ implementations:
5252
signature_dec: PQCP_MLKEM_NATIVE_MLKEM768_X86_64_dec
5353
sources: integration/liboqs/config_x86_64.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
5454
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
55-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
56-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
57-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
58-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
59-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/x86_64
55+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
56+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
57+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
58+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
59+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/x86_64
6060
supported_platforms:
6161
- architecture: x86_64
6262
operating_systems:
@@ -77,11 +77,11 @@ implementations:
7777
signature_dec: PQCP_MLKEM_NATIVE_MLKEM768_AARCH64_dec
7878
sources: integration/liboqs/config_aarch64.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
7979
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
80-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
81-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
82-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
83-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
84-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/aarch64
80+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
81+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
82+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
83+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
84+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/aarch64
8585
supported_platforms:
8686
- architecture: arm_8
8787
operating_systems:
@@ -100,11 +100,11 @@ implementations:
100100
signature_dec: PQCP_MLKEM_NATIVE_MLKEM768_PPC64LE_dec
101101
sources: integration/liboqs/config_ppc64le.h integration/liboqs/fips202_glue.h integration/liboqs/fips202x4_glue.h
102102
mlkem/src/cbmc.h mlkem/src/common.h mlkem/src/compress.c mlkem/src/compress.h
103-
mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h mlkem/src/kem.c
104-
mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h mlkem/src/params.h
105-
mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h mlkem/src/randombytes.h
106-
mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h mlkem/src/sys.h
107-
mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/ppc64le
103+
mlkem/src/context.h mlkem/src/debug.c mlkem/src/debug.h mlkem/src/indcpa.c mlkem/src/indcpa.h
104+
mlkem/src/kem.c mlkem/src/kem.h mlkem/src/native/api.h mlkem/src/native/meta.h
105+
mlkem/src/params.h mlkem/src/poly.c mlkem/src/poly.h mlkem/src/poly_k.c mlkem/src/poly_k.h
106+
mlkem/src/randombytes.h mlkem/src/sampling.c mlkem/src/sampling.h mlkem/src/symmetric.h
107+
mlkem/src/sys.h mlkem/src/verify.c mlkem/src/verify.h mlkem/src/zetas.inc mlkem/src/native/ppc64le
108108
supported_platforms:
109109
- architecture: ppc64le
110110
operating_systems:
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright (c) The mlkem-native project authors
2+
# SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
3+
diff --git a/third_party/mlkem_native/BUILD.mlkem_native.bazel b/third_party/mlkem_native/BUILD.mlkem_native.bazel
4+
--- a/third_party/mlkem_native/BUILD.mlkem_native.bazel
5+
+++ b/third_party/mlkem_native/BUILD.mlkem_native.bazel
6+
@@ -12,6 +12,7 @@ cc_library(
7+
"mlkem/mlkem_native.h",
8+
"mlkem/src/cbmc.h",
9+
"mlkem/src/common.h",
10+
+ "mlkem/src/context.h",
11+
"mlkem/src/randombytes.h",
12+
"mlkem/src/debug.h",
13+
"mlkem/src/debug.c",

mlkem/mlkem_native.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,6 @@
202202
#undef MLK_COMMON_H
203203
#undef MLK_CONCAT
204204
#undef MLK_CONCAT_
205-
#undef MLK_CONTEXT_PARAMETERS_0
206-
#undef MLK_CONTEXT_PARAMETERS_1
207-
#undef MLK_CONTEXT_PARAMETERS_2
208-
#undef MLK_CONTEXT_PARAMETERS_3
209-
#undef MLK_CONTEXT_PARAMETERS_4
210205
#undef MLK_EMPTY_CU
211206
#undef MLK_ERR_FAIL
212207
#undef MLK_ERR_OUT_OF_MEMORY
@@ -311,6 +306,13 @@
311306
#undef mlk_poly_frommsg
312307
#undef mlk_poly_tobytes
313308
#undef mlk_poly_tomsg
309+
/* mlkem/src/context.h */
310+
#undef MLK_CONTEXT_H
311+
#undef MLK_CONTEXT_PARAMETERS_0
312+
#undef MLK_CONTEXT_PARAMETERS_1
313+
#undef MLK_CONTEXT_PARAMETERS_2
314+
#undef MLK_CONTEXT_PARAMETERS_3
315+
#undef MLK_CONTEXT_PARAMETERS_4
314316
/* mlkem/src/debug.h */
315317
#undef MLK_DEBUG_H
316318
#undef mlk_assert

mlkem/mlkem_native_asm.S

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,6 @@
226226
#undef MLK_COMMON_H
227227
#undef MLK_CONCAT
228228
#undef MLK_CONCAT_
229-
#undef MLK_CONTEXT_PARAMETERS_0
230-
#undef MLK_CONTEXT_PARAMETERS_1
231-
#undef MLK_CONTEXT_PARAMETERS_2
232-
#undef MLK_CONTEXT_PARAMETERS_3
233-
#undef MLK_CONTEXT_PARAMETERS_4
234229
#undef MLK_EMPTY_CU
235230
#undef MLK_ERR_FAIL
236231
#undef MLK_ERR_OUT_OF_MEMORY
@@ -335,6 +330,13 @@
335330
#undef mlk_poly_frommsg
336331
#undef mlk_poly_tobytes
337332
#undef mlk_poly_tomsg
333+
/* mlkem/src/context.h */
334+
#undef MLK_CONTEXT_H
335+
#undef MLK_CONTEXT_PARAMETERS_0
336+
#undef MLK_CONTEXT_PARAMETERS_1
337+
#undef MLK_CONTEXT_PARAMETERS_2
338+
#undef MLK_CONTEXT_PARAMETERS_3
339+
#undef MLK_CONTEXT_PARAMETERS_4
338340
/* mlkem/src/debug.h */
339341
#undef MLK_DEBUG_H
340342
#undef mlk_assert

mlkem/src/common.h

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -188,36 +188,11 @@
188188
#error Bad configuration: MLK_CONFIG_CUSTOM_ALLOC_FREE must be set together with MLK_CUSTOM_ALLOC and MLK_CUSTOM_FREE
189189
#endif
190190

191-
/*
192-
* If the integration wants to provide a context parameter for use in
193-
* platform-specific hooks, then it should define this parameter.
194-
*
195-
* The MLK_CONTEXT_PARAMETERS_n macros are intended to be used with macros
196-
* defining the function names and expand to either pass or discard the context
197-
* argument as required by the current build. If there is no context parameter
198-
* requested then these are removed from the prototypes and from all calls.
199-
*/
200-
#ifdef MLK_CONFIG_CONTEXT_PARAMETER
201-
#define MLK_CONTEXT_PARAMETERS_0(context) (context)
202-
#define MLK_CONTEXT_PARAMETERS_1(arg0, context) (arg0, context)
203-
#define MLK_CONTEXT_PARAMETERS_2(arg0, arg1, context) (arg0, arg1, context)
204-
#define MLK_CONTEXT_PARAMETERS_3(arg0, arg1, arg2, context) \
205-
(arg0, arg1, arg2, context)
206-
#define MLK_CONTEXT_PARAMETERS_4(arg0, arg1, arg2, arg3, context) \
207-
(arg0, arg1, arg2, arg3, context)
208-
#else /* MLK_CONFIG_CONTEXT_PARAMETER */
209-
#define MLK_CONTEXT_PARAMETERS_0(context) ()
210-
#define MLK_CONTEXT_PARAMETERS_1(arg0, context) (arg0)
211-
#define MLK_CONTEXT_PARAMETERS_2(arg0, arg1, context) (arg0, arg1)
212-
#define MLK_CONTEXT_PARAMETERS_3(arg0, arg1, arg2, context) (arg0, arg1, arg2)
213-
#define MLK_CONTEXT_PARAMETERS_4(arg0, arg1, arg2, arg3, context) \
214-
(arg0, arg1, arg2, arg3)
215-
#endif /* !MLK_CONFIG_CONTEXT_PARAMETER */
216-
217-
#if defined(MLK_CONFIG_CONTEXT_PARAMETER_TYPE) != \
218-
defined(MLK_CONFIG_CONTEXT_PARAMETER)
219-
#error MLK_CONFIG_CONTEXT_PARAMETER_TYPE must be defined if and only if MLK_CONFIG_CONTEXT_PARAMETER is defined
220-
#endif
191+
/* Context-parameter machinery (MLK_CONTEXT_PARAMETERS_n and related config
192+
* checks). Kept in a separate, level-generic header for readability; included
193+
* here so it is available to the allocation macros below and to all consumers
194+
* of common.h. */
195+
#include "context.h"
221196

222197
#if !defined(MLK_CONFIG_CUSTOM_ALLOC_FREE)
223198
/* Default: stack allocation */

0 commit comments

Comments
 (0)