Skip to content

Commit 1a84571

Browse files
committed
Add MLD_CONFIG_NAMESPACE_PREFIX
Signed-off-by: Jake Massimo <[email protected]>
1 parent efe03f9 commit 1a84571

File tree

14 files changed

+375
-117
lines changed

14 files changed

+375
-117
lines changed

integration/liboqs/config_aarch64.h

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,18 @@
4848
44 /* Change this for different security strengths */
4949
#endif
5050

51-
#if MLD_CONFIG_PARAMETER_SET == 44
52-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA44_AARCH64_
53-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA44_AARCH64_##s
54-
#elif MLD_CONFIG_PARAMETER_SET == 65
55-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA65_AARCH64_
56-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA65_AARCH64_##s
57-
#elif MLD_CONFIG_PARAMETER_SET == 87
58-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA87_AARCH64_
59-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA87_AARCH64_##s
51+
/******************************************************************************
52+
* Name: MLD_CONFIG_NAMESPACE_PREFIX
53+
*
54+
* Description: The prefix to use to namespace global symbols from mldsa/.
55+
* For integration builds, this adds an architecture-specific
56+
* suffix to distinguish different builds.
57+
*
58+
* This can also be set using CFLAGS.
59+
*
60+
*****************************************************************************/
61+
#if !defined(MLD_CONFIG_NAMESPACE_PREFIX)
62+
#define MLD_CONFIG_NAMESPACE_PREFIX MLD_DEFAULT_NAMESPACE_PREFIX
6063
#endif
6164

6265
/******************************************************************************
@@ -271,4 +274,26 @@ static MLD_INLINE void mld_randombytes(uint8_t *ptr, size_t len)
271274
#define MLD_CONFIG_EXTERNAL_API_QUALIFIER OQS_API
272275
#endif /* !__ASSEMBLER__ */
273276

277+
/************************* Config internals ********************************/
278+
279+
/* Default namespace
280+
*
281+
* Don't change this. If you need a different namespace, re-define
282+
* MLD_CONFIG_NAMESPACE_PREFIX above instead, and remove the following.
283+
*
284+
* The default MLDSA namespace for aarch64 integration is
285+
*
286+
* PQCP_MLDSA_NATIVE_MLDSA<LEVEL>_AARCH64_
287+
*
288+
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_AARCH64_
289+
*/
290+
291+
#if MLD_CONFIG_PARAMETER_SET == 44
292+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44_AARCH64
293+
#elif MLD_CONFIG_PARAMETER_SET == 65
294+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65_AARCH64
295+
#elif MLD_CONFIG_PARAMETER_SET == 87
296+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA87_AARCH64
297+
#endif
298+
274299
#endif /* !MLD_INTEGRATION_LIBOQS_CONFIG_AARCH64_H */

integration/liboqs/config_c.h

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,18 @@
4747
44 /* Change this for different security strengths */
4848
#endif
4949

50-
#if MLD_CONFIG_PARAMETER_SET == 44
51-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA44_C_
52-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA44_C_##s
53-
#elif MLD_CONFIG_PARAMETER_SET == 65
54-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA65_C_
55-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA65_C_##s
56-
#elif MLD_CONFIG_PARAMETER_SET == 87
57-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA87_C_
58-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA87_C_##s
50+
/******************************************************************************
51+
* Name: MLD_CONFIG_NAMESPACE_PREFIX
52+
*
53+
* Description: The prefix to use to namespace global symbols from mldsa/.
54+
* For integration builds, this adds an architecture-specific
55+
* suffix to distinguish different builds.
56+
*
57+
* This can also be set using CFLAGS.
58+
*
59+
*****************************************************************************/
60+
#if !defined(MLD_CONFIG_NAMESPACE_PREFIX)
61+
#define MLD_CONFIG_NAMESPACE_PREFIX MLD_DEFAULT_NAMESPACE_PREFIX
5962
#endif
6063

6164
/******************************************************************************
@@ -274,4 +277,26 @@ static MLD_INLINE void mld_randombytes(uint8_t *ptr, size_t len)
274277
#define MLD_CONFIG_EXTERNAL_API_QUALIFIER OQS_API
275278
#endif /* !__ASSEMBLER__ */
276279

280+
/************************* Config internals ********************************/
281+
282+
/* Default namespace
283+
*
284+
* Don't change this. If you need a different namespace, re-define
285+
* MLD_CONFIG_NAMESPACE_PREFIX above instead, and remove the following.
286+
*
287+
* The default MLDSA namespace for C integration is
288+
*
289+
* PQCP_MLDSA_NATIVE_MLDSA<LEVEL>_C_
290+
*
291+
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_C_
292+
*/
293+
294+
#if MLD_CONFIG_PARAMETER_SET == 44
295+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44_C
296+
#elif MLD_CONFIG_PARAMETER_SET == 65
297+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65_C
298+
#elif MLD_CONFIG_PARAMETER_SET == 87
299+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA87_C
300+
#endif
301+
277302
#endif /* !MLD_INTEGRATION_LIBOQS_CONFIG_C_H */

integration/liboqs/config_x86_64.h

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,18 @@
4747
44 /* Change this for different security strengths */
4848
#endif
4949

50-
#if MLD_CONFIG_PARAMETER_SET == 44
51-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA44_X86_64_
52-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA44_X86_64_##s
53-
#elif MLD_CONFIG_PARAMETER_SET == 65
54-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA65_X86_64_
55-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA65_X86_64_##s
56-
#elif MLD_CONFIG_PARAMETER_SET == 87
57-
#define MLD_NAMESPACETOP PQCP_MLDSA_NATIVE_MLDSA87_X86_64_
58-
#define MLD_NAMESPACE(s) PQCP_MLDSA_NATIVE_MLDSA87_X86_64_##s
50+
/******************************************************************************
51+
* Name: MLD_CONFIG_NAMESPACE_PREFIX
52+
*
53+
* Description: The prefix to use to namespace global symbols from mldsa/.
54+
* For integration builds, this adds an architecture-specific
55+
* suffix to distinguish different builds.
56+
*
57+
* This can also be set using CFLAGS.
58+
*
59+
*****************************************************************************/
60+
#if !defined(MLD_CONFIG_NAMESPACE_PREFIX)
61+
#define MLD_CONFIG_NAMESPACE_PREFIX MLD_DEFAULT_NAMESPACE_PREFIX
5962
#endif
6063

6164
/******************************************************************************
@@ -272,4 +275,26 @@ static MLD_INLINE void mld_randombytes(uint8_t *ptr, size_t len)
272275
*****************************************************************************/
273276
/* #define MLD_CONFIG_NO_ASM_VALUE_BARRIER */
274277

278+
/************************* Config internals ********************************/
279+
280+
/* Default namespace
281+
*
282+
* Don't change this. If you need a different namespace, re-define
283+
* MLD_CONFIG_NAMESPACE_PREFIX above instead, and remove the following.
284+
*
285+
* The default MLDSA namespace for x86_64 integration is
286+
*
287+
* PQCP_MLDSA_NATIVE_MLDSA<LEVEL>_X86_64_
288+
*
289+
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_X86_64_
290+
*/
291+
292+
#if MLD_CONFIG_PARAMETER_SET == 44
293+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44_X86_64
294+
#elif MLD_CONFIG_PARAMETER_SET == 65
295+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65_X86_64
296+
#elif MLD_CONFIG_PARAMETER_SET == 87
297+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA87_X86_64
298+
#endif
299+
275300
#endif /* !MLD_INTEGRATION_LIBOQS_CONFIG_X86_64_H */

mldsa/common.h

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,24 @@
4545
#error Bad configuration: MLD_CONFIG_USE_NATIVE_BACKEND_ARITH is set, but MLD_CONFIG_ARITH_BACKEND_FILE is not.
4646
#endif
4747

48-
#if defined(MLD_CONFIG_USE_NATIVE_BACKEND_ARITH)
49-
#include MLD_CONFIG_ARITH_BACKEND_FILE
50-
#endif
5148

5249
#define MLD_CONCAT_(x1, x2) x1##x2
5350
#define MLD_CONCAT(x1, x2) MLD_CONCAT_(x1, x2)
5451

52+
#define MLD_NAMESPACE_PREFIX MLD_CONCAT(MLD_CONFIG_NAMESPACE_PREFIX, _)
53+
54+
/* Functions are prefixed by MLD_CONFIG_NAMESPACE_PREFIX.
55+
*
56+
* Example: If MLD_CONFIG_NAMESPACE_PREFIX is PQCP_MLDSA_NATIVE_MLDSA44, then
57+
* MLD_NAMESPACE(sign) becomes PQCP_MLDSA_NATIVE_MLDSA44_sign.
58+
*/
59+
#define MLD_NAMESPACE(s) MLD_CONCAT(MLD_NAMESPACE_PREFIX, s)
60+
#define MLD_NAMESPACETOP MLD_CONFIG_NAMESPACE_PREFIX
61+
62+
#if defined(MLD_CONFIG_USE_NATIVE_BACKEND_ARITH)
63+
#include MLD_CONFIG_ARITH_BACKEND_FILE
64+
#endif
65+
5566
/* On Apple platforms, we need to emit leading underscore
5667
* in front of assembly symbols. We thus introducee a separate
5768
* namespace wrapper for ASM symbols. */

mldsa/config.h

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,18 @@
3838
44 /* Change this for different security strengths */
3939
#endif
4040

41-
#if MLD_CONFIG_PARAMETER_SET == 44
42-
#define MLD_NAMESPACETOP MLD_44_ref
43-
#define MLD_NAMESPACE(s) MLD_44_ref_##s
44-
#elif MLD_CONFIG_PARAMETER_SET == 65
45-
#define MLD_NAMESPACETOP MLD_65_ref
46-
#define MLD_NAMESPACE(s) MLD_65_ref_##s
47-
#elif MLD_CONFIG_PARAMETER_SET == 87
48-
#define MLD_NAMESPACETOP MLD_87_ref
49-
#define MLD_NAMESPACE(s) MLD_87_ref_##s
41+
/******************************************************************************
42+
* Name: MLD_CONFIG_NAMESPACE_PREFIX
43+
*
44+
* Description: The prefix to use to namespace global symbols from mldsa/.
45+
*
46+
* This can also be set using CFLAGS.
47+
*
48+
*****************************************************************************/
49+
#if !defined(MLD_CONFIG_NAMESPACE_PREFIX)
50+
#define MLD_CONFIG_NAMESPACE_PREFIX MLD_DEFAULT_NAMESPACE_PREFIX
5051
#endif
5152

52-
5353
/******************************************************************************
5454
* Name: MLD_CONFIG_FILE
5555
*
@@ -365,4 +365,26 @@
365365

366366

367367

368+
/************************* Config internals ********************************/
369+
370+
/* Default namespace
371+
*
372+
* Don't change this. If you need a different namespace, re-define
373+
* MLD_CONFIG_NAMESPACE_PREFIX above instead, and remove the following.
374+
*
375+
* The default MLDSA namespace is
376+
*
377+
* PQCP_MLDSA_NATIVE_MLDSA<LEVEL>_
378+
*
379+
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
380+
*/
381+
382+
#if MLD_CONFIG_PARAMETER_SET == 44
383+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
384+
#elif MLD_CONFIG_PARAMETER_SET == 65
385+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65
386+
#elif MLD_CONFIG_PARAMETER_SET == 87
387+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA87
388+
#endif
389+
368390
#endif /* !MLD_CONFIG_H */

mldsa/native/aarch64/src/arith_native_aarch64.h

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,22 @@
1111
#include "../../../common.h"
1212

1313
#define mld_aarch64_ntt_zetas_layer123456 \
14-
MLD_NAMESPACE(mld_aarch64_ntt_zetas_layer123456)
15-
#define mld_aarch64_ntt_zetas_layer78 \
16-
MLD_NAMESPACE(mld_aarch64_ntt_zetas_layer78)
14+
MLD_NAMESPACE(aarch64_ntt_zetas_layer123456)
15+
#define mld_aarch64_ntt_zetas_layer78 MLD_NAMESPACE(aarch64_ntt_zetas_layer78)
1716

18-
#define mld_aarch64_intt_zetas_layer78 \
19-
MLD_NAMESPACE(mld_aarch64_intt_zetas_layer78)
17+
#define mld_aarch64_intt_zetas_layer78 MLD_NAMESPACE(aarch64_intt_zetas_layer78)
2018
#define mld_aarch64_intt_zetas_layer123456 \
21-
MLD_NAMESPACE(mld_aarch64_intt_zetas_layer123456)
19+
MLD_NAMESPACE(aarch64_intt_zetas_layer123456)
2220

2321
extern const int32_t mld_aarch64_ntt_zetas_layer123456[];
2422
extern const int32_t mld_aarch64_ntt_zetas_layer78[];
2523

2624
extern const int32_t mld_aarch64_intt_zetas_layer78[];
2725
extern const int32_t mld_aarch64_intt_zetas_layer123456[];
2826

29-
#define mld_rej_uniform_table MLD_NAMESPACE(mld_rej_uniform_table)
27+
#define mld_rej_uniform_table MLD_NAMESPACE(rej_uniform_table)
3028
extern const uint8_t mld_rej_uniform_table[];
31-
#define mld_rej_uniform_eta_table MLD_NAMESPACE(mld_rej_uniform_eta_table)
29+
#define mld_rej_uniform_eta_table MLD_NAMESPACE(rej_uniform_eta_table)
3230
extern const uint8_t mld_rej_uniform_eta_table[];
3331

3432

proofs/cbmc/Makefile_params.common

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ MLD_CONFIG_PARAMETER_SET ?= 65
99
FIPS202_NAMESPACE = mldsa_fips202_ref_
1010

1111
ifeq ($(MLD_CONFIG_PARAMETER_SET),44)
12-
MLD_NAMESPACETOP=MLD_44_ref
13-
MLD_NAMESPACE=MLD_44_ref_
12+
MLD_NAMESPACETOP=PQCP_MLDSA_NATIVE_MLDSA44
13+
MLD_NAMESPACE=PQCP_MLDSA_NATIVE_MLDSA44_
1414
else ifeq ($(MLD_CONFIG_PARAMETER_SET),65)
15-
MLD_NAMESPACETOP=MLD_65_ref
16-
MLD_NAMESPACE=MLD_65_ref_
15+
MLD_NAMESPACETOP=PQCP_MLDSA_NATIVE_MLDSA65
16+
MLD_NAMESPACE=PQCP_MLDSA_NATIVE_MLDSA65_
1717
else ifeq ($(MLD_CONFIG_PARAMETER_SET),87)
18-
MLD_NAMESPACETOP=MLD_87_ref
19-
MLD_NAMESPACE=MLD_87_ref_
18+
MLD_NAMESPACETOP=PQCP_MLDSA_NATIVE_MLDSA87
19+
MLD_NAMESPACE=PQCP_MLDSA_NATIVE_MLDSA87_
2020
else
2121
$(error Invalid value of MLD_CONFIG_PARAMETER_SET)
2222
endif

test/break_pct_config.h

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,16 @@
3838
44 /* Change this for different security strengths */
3939
#endif
4040

41-
#if MLD_CONFIG_PARAMETER_SET == 44
42-
#define MLD_NAMESPACETOP MLD_44_ref
43-
#define MLD_NAMESPACE(s) MLD_44_ref_##s
44-
#elif MLD_CONFIG_PARAMETER_SET == 65
45-
#define MLD_NAMESPACETOP MLD_65_ref
46-
#define MLD_NAMESPACE(s) MLD_65_ref_##s
47-
#elif MLD_CONFIG_PARAMETER_SET == 87
48-
#define MLD_NAMESPACETOP MLD_87_ref
49-
#define MLD_NAMESPACE(s) MLD_87_ref_##s
41+
/******************************************************************************
42+
* Name: MLD_CONFIG_NAMESPACE_PREFIX
43+
*
44+
* Description: The prefix to use to namespace global symbols from mldsa/.
45+
*
46+
* This can also be set using CFLAGS.
47+
*
48+
*****************************************************************************/
49+
#if !defined(MLD_CONFIG_NAMESPACE_PREFIX)
50+
#define MLD_CONFIG_NAMESPACE_PREFIX MLD_DEFAULT_NAMESPACE_PREFIX
5051
#endif
5152

5253

@@ -257,6 +258,26 @@ static MLD_INLINE int mld_break_pct(void)
257258
*****************************************************************************/
258259
/* #define MLD_CONFIG_NO_ASM_VALUE_BARRIER */
259260

261+
/************************* Config internals ********************************/
260262

263+
/* Default namespace
264+
*
265+
* Don't change this. If you need a different namespace, re-define
266+
* MLD_CONFIG_NAMESPACE_PREFIX above instead, and remove the following.
267+
*
268+
* The default MLDSA namespace is
269+
*
270+
* PQCP_MLDSA_NATIVE_MLDSA<LEVEL>_
271+
*
272+
* e.g., PQCP_MLDSA_NATIVE_MLDSA65_
273+
*/
274+
275+
#if MLD_CONFIG_PARAMETER_SET == 44
276+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
277+
#elif MLD_CONFIG_PARAMETER_SET == 65
278+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65
279+
#elif MLD_CONFIG_PARAMETER_SET == 87
280+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA87
281+
#endif
261282

262283
#endif /* !MLD_CONFIG_H */

0 commit comments

Comments
 (0)