Added ML-DSA.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2026-05-15 11:16:45 +02:00
parent 24dd4b2e69
commit e83f0b6b52
8 changed files with 168 additions and 1 deletions

View File

@@ -0,0 +1,24 @@
set(MLKEM_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../../third-party/mlkem/mlkem)
file(GLOB_RECURSE MLKEM_SOURCES
${MLKEM_DIR}/src/*.c
)
list(FILTER MLKEM_SOURCES EXCLUDE REGEX "/native/")
idf_component_register(
SRCS ${MLKEM_SOURCES}
INCLUDE_DIRS ${MLKEM_DIR}
)
idf_component_set_property(${COMPONENT_NAME} WHOLE_ARCHIVE ON)
target_compile_definitions(${COMPONENT_LIB} PRIVATE
MLK_CONFIG_PARAMETER_SET=512
MLK_CONFIG_MULTILEVEL_WITH_SHARED
MLK_CONFIG_NAMESPACE_PREFIX=mlkem
)
target_compile_options(${COMPONENT_LIB} PRIVATE
-O2
-fno-builtin
-fno-strict-aliasing
)

View File

@@ -0,0 +1,24 @@
set(MLDSA_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../../third-party/mldsa/mldsa)
file(GLOB_RECURSE MLDSA_SOURCES
${MLDSA_DIR}/src/*.c
)
list(FILTER MLDSA_SOURCES EXCLUDE REGEX "/native/")
idf_component_register(
SRCS ${MLDSA_SOURCES}
INCLUDE_DIRS ${MLDSA_DIR}
)
idf_component_set_property(${COMPONENT_NAME} WHOLE_ARCHIVE ON)
target_compile_definitions(${COMPONENT_LIB} PRIVATE
MLD_CONFIG_PARAMETER_SET=65
MLD_CONFIG_MULTILEVEL_WITH_SHARED
MLD_CONFIG_NAMESPACE_PREFIX=mldsa
)
target_compile_options(${COMPONENT_LIB} PRIVATE
-O2
-fno-builtin
-fno-strict-aliasing
)

View File

@@ -0,0 +1,24 @@
set(MLDSA_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../../third-party/mldsa/mldsa)
file(GLOB_RECURSE MLDSA_SOURCES
${MLDSA_DIR}/src/*.c
)
list(FILTER MLDSA_SOURCES EXCLUDE REGEX "/native/")
idf_component_register(
SRCS ${MLDSA_SOURCES}
INCLUDE_DIRS ${MLDSA_DIR}
)
idf_component_set_property(${COMPONENT_NAME} WHOLE_ARCHIVE ON)
target_compile_definitions(${COMPONENT_LIB} PRIVATE
MLD_CONFIG_PARAMETER_SET=87
MLD_CONFIG_MULTILEVEL_WITH_SHARED
MLD_CONFIG_NAMESPACE_PREFIX=mldsa
)
target_compile_options(${COMPONENT_LIB} PRIVATE
-O2
-fno-builtin
-fno-strict-aliasing
)

View File

@@ -24,11 +24,16 @@ if(ENABLE_PQC)
list(APPEND PICOKEYS_INCLUDE_DIRS
${PICOKEYS_SDK_DIR}/third-party/mlkem/mlkem
${PICOKEYS_SDK_DIR}/config/mlkem
${PICOKEYS_SDK_DIR}/third-party/mldsa/mldsa
${PICOKEYS_SDK_DIR}/config/mldsa
)
list(APPEND PICOKEYS_REQUIRES
mlkem512
mlkem768
mlkem1024
mldsa44
mldsa65
mldsa87
)
endif()

View File

@@ -0,0 +1,29 @@
/*
* Copyright (c) The mlkem-native project authors
* Copyright (c) The mldsa-native project authors
* SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
*/
#ifndef MLD_ALL_H
#define MLD_ALL_H
/* API for MLDSA-44 */
#define MLD_CONFIG_PARAMETER_SET 44
#include "mldsa_native/mldsa_native.h"
#undef MLD_CONFIG_PARAMETER_SET
#undef MLD_H
/* API for MLDSA-65 */
#define MLD_CONFIG_PARAMETER_SET 65
#include "mldsa_native/mldsa_native.h"
#undef MLD_CONFIG_PARAMETER_SET
#undef MLD_H
/* API for MLDSA-87 */
#define MLD_CONFIG_PARAMETER_SET 87
#include "mldsa_native/mldsa_native.h"
#undef MLD_CONFIG_PARAMETER_SET
#undef MLD_H
#endif /* !MLD_ALL_H */

View File

@@ -0,0 +1,10 @@
#pragma once
/* Disable all native/asm backends */
// #define MLD_CONFIG_USE_NATIVE_BACKEND_ARITH
/* No SuperCop */
#define MLD_CONFIG_NO_SUPERCOP
/* No verification API */
#define MLD_CONFIG_NO_VERIFY_API