Skip to content

Commit 1b816bb

Browse files
committed
Fix double level-suffixing of default namespace in multi-level builds
The default namespace prefix embeds the parameter set (PQCP_MLDSA_NATIVE_MLDSA44/65/87), which is correct for single-level builds but wrong in a multi-level build: the config is processed once (at the 44 level) and the namespacing machinery appends the parameter set again, yielding PQCP_MLDSA_NATIVE_MLDSA44{44,65,87}_. Use a level-independent default (PQCP_MLDSA_NATIVE_MLDSA) when MLD_CONFIG_MULTILEVEL_BUILD is set so the level is appended exactly once. Single-level builds are unchanged. Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
1 parent b701069 commit 1b816bb

28 files changed

Lines changed: 140 additions & 28 deletions

File tree

examples/basic_deterministic/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,11 @@
748748
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
749749
*/
750750

751-
#if MLD_CONFIG_PARAMETER_SET == 44
751+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
752+
/* In a multi-level build the parameter set is appended by the namespacing
753+
* machinery, so the default prefix must not embed it. */
754+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
755+
#elif MLD_CONFIG_PARAMETER_SET == 44
752756
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
753757
#elif MLD_CONFIG_PARAMETER_SET == 65
754758
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/basic_lowram/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,11 @@
750750
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
751751
*/
752752

753-
#if MLD_CONFIG_PARAMETER_SET == 44
753+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
754+
/* In a multi-level build the parameter set is appended by the namespacing
755+
* machinery, so the default prefix must not embed it. */
756+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
757+
#elif MLD_CONFIG_PARAMETER_SET == 44
754758
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
755759
#elif MLD_CONFIG_PARAMETER_SET == 65
756760
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/bring_your_own_fips202/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,11 @@
748748
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
749749
*/
750750

751-
#if MLD_CONFIG_PARAMETER_SET == 44
751+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
752+
/* In a multi-level build the parameter set is appended by the namespacing
753+
* machinery, so the default prefix must not embed it. */
754+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
755+
#elif MLD_CONFIG_PARAMETER_SET == 44
752756
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
753757
#elif MLD_CONFIG_PARAMETER_SET == 65
754758
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/bring_your_own_fips202_static/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,11 @@
749749
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
750750
*/
751751

752-
#if MLD_CONFIG_PARAMETER_SET == 44
752+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
753+
/* In a multi-level build the parameter set is appended by the namespacing
754+
* machinery, so the default prefix must not embed it. */
755+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
756+
#elif MLD_CONFIG_PARAMETER_SET == 44
753757
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
754758
#elif MLD_CONFIG_PARAMETER_SET == 65
755759
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/custom_backend/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,11 @@
744744
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
745745
*/
746746

747-
#if MLD_CONFIG_PARAMETER_SET == 44
747+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
748+
/* In a multi-level build the parameter set is appended by the namespacing
749+
* machinery, so the default prefix must not embed it. */
750+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
751+
#elif MLD_CONFIG_PARAMETER_SET == 44
748752
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
749753
#elif MLD_CONFIG_PARAMETER_SET == 65
750754
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/monolithic_build/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,11 @@
747747
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
748748
*/
749749

750-
#if MLD_CONFIG_PARAMETER_SET == 44
750+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
751+
/* In a multi-level build the parameter set is appended by the namespacing
752+
* machinery, so the default prefix must not embed it. */
753+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
754+
#elif MLD_CONFIG_PARAMETER_SET == 44
751755
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
752756
#elif MLD_CONFIG_PARAMETER_SET == 65
753757
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/monolithic_build_multilevel/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,11 @@
748748
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
749749
*/
750750

751-
#if MLD_CONFIG_PARAMETER_SET == 44
751+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
752+
/* In a multi-level build the parameter set is appended by the namespacing
753+
* machinery, so the default prefix must not embed it. */
754+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
755+
#elif MLD_CONFIG_PARAMETER_SET == 44
752756
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
753757
#elif MLD_CONFIG_PARAMETER_SET == 65
754758
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/monolithic_build_multilevel_native/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,11 @@ static MLD_INLINE int mld_randombytes(uint8_t *ptr, size_t len)
754754
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
755755
*/
756756

757-
#if MLD_CONFIG_PARAMETER_SET == 44
757+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
758+
/* In a multi-level build the parameter set is appended by the namespacing
759+
* machinery, so the default prefix must not embed it. */
760+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
761+
#elif MLD_CONFIG_PARAMETER_SET == 44
758762
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
759763
#elif MLD_CONFIG_PARAMETER_SET == 65
760764
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/monolithic_build_native/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,11 @@
747747
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
748748
*/
749749

750-
#if MLD_CONFIG_PARAMETER_SET == 44
750+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
751+
/* In a multi-level build the parameter set is appended by the namespacing
752+
* machinery, so the default prefix must not embed it. */
753+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
754+
#elif MLD_CONFIG_PARAMETER_SET == 44
751755
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
752756
#elif MLD_CONFIG_PARAMETER_SET == 65
753757
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

examples/multilevel_build/mldsa_native/mldsa_native_config.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,11 @@
747747
* e.g., PQCP_MLDSA_NATIVE_MLDSA44_
748748
*/
749749

750-
#if MLD_CONFIG_PARAMETER_SET == 44
750+
#if defined(MLD_CONFIG_MULTILEVEL_BUILD)
751+
/* In a multi-level build the parameter set is appended by the namespacing
752+
* machinery, so the default prefix must not embed it. */
753+
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA
754+
#elif MLD_CONFIG_PARAMETER_SET == 44
751755
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA44
752756
#elif MLD_CONFIG_PARAMETER_SET == 65
753757
#define MLD_DEFAULT_NAMESPACE_PREFIX PQCP_MLDSA_NATIVE_MLDSA65

0 commit comments

Comments
 (0)