mirror of
https://github.com/polhenarejos/pico-keys-sdk
synced 2026-05-26 08:05:10 +02:00
@@ -12,6 +12,7 @@ set(MBEDTLS_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/mbedtls")
|
||||
set(TINYCBOR_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/tinycbor")
|
||||
set(CJSON_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/cjson")
|
||||
set(MLKEM_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/mlkem")
|
||||
set(MLDSA_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/mldsa")
|
||||
set(LIBCVC_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/libcvc")
|
||||
|
||||
set(PICOKEYS_MBEDTLS_STD_REPO "https://github.com/Mbed-TLS/mbedtls.git")
|
||||
@@ -25,6 +26,8 @@ set(PICOKEYS_CJSON_REPO "https://github.com/DaveGamble/cJSON.git")
|
||||
set(PICOKEYS_CJSON_REF "v1.7.19")
|
||||
set(PICOKEYS_MLKEM_REPO "https://github.com/pq-code-package/mlkem-native.git")
|
||||
set(PICOKEYS_MLKEM_REF "v1.1.0")
|
||||
set(PICOKEYS_MLDSA_REPO "https://github.com/pq-code-package/mldsa-native.git")
|
||||
set(PICOKEYS_MLDSA_REF "v1.0.0-beta")
|
||||
set(PICOKEYS_LIBCVC_REPO "https://github.com/polhenarejos/libcvc.git")
|
||||
set(PICOKEYS_LIBCVC_REF "main")
|
||||
|
||||
@@ -121,6 +124,7 @@ if(USB_ITF_LWIP)
|
||||
endif()
|
||||
if(ENABLE_PQC)
|
||||
picokeys_sync_dep(mlkem_dep "${PICOKEYS_MLKEM_REPO}" "${PICOKEYS_MLKEM_REF}" "${MLKEM_PATH}")
|
||||
picokeys_sync_dep(mldsa_dep "${PICOKEYS_MLDSA_REPO}" "${PICOKEYS_MLDSA_REF}" "${MLDSA_PATH}")
|
||||
endif()
|
||||
if(ENABLE_LIBCVC)
|
||||
picokeys_sync_dep(libcvc_dep "${PICOKEYS_LIBCVC_REPO}" "${PICOKEYS_LIBCVC_REF}" "${LIBCVC_PATH}")
|
||||
|
||||
24
config/esp32/components/mldsa44/CMakeLists.txt
Normal file
24
config/esp32/components/mldsa44/CMakeLists.txt
Normal 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
|
||||
)
|
||||
24
config/esp32/components/mldsa65/CMakeLists.txt
Normal file
24
config/esp32/components/mldsa65/CMakeLists.txt
Normal 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
|
||||
)
|
||||
24
config/esp32/components/mldsa87/CMakeLists.txt
Normal file
24
config/esp32/components/mldsa87/CMakeLists.txt
Normal 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
|
||||
)
|
||||
@@ -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()
|
||||
|
||||
|
||||
29
config/mldsa/mldsa_native_all.h
Normal file
29
config/mldsa/mldsa_native_all.h
Normal 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 */
|
||||
10
config/mldsa/mldsa_native_config.h
Normal file
10
config/mldsa/mldsa_native_config.h
Normal 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
|
||||
@@ -218,19 +218,63 @@ if(ENABLE_PQC)
|
||||
MLK_CONFIG_MULTILEVEL_NO_SHARED
|
||||
MLK_CONFIG_NAMESPACE_PREFIX=mlkem
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE MLDSA_SOURCES
|
||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mldsa/mldsa/src/*.c
|
||||
)
|
||||
list(FILTER MLDSA_SOURCES EXCLUDE REGEX "/native/")
|
||||
|
||||
add_library(mldsa44 STATIC ${MLDSA_SOURCES})
|
||||
target_include_directories(mldsa44 PRIVATE
|
||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mldsa/mldsa/src
|
||||
${CMAKE_CURRENT_LIST_DIR}/config/mldsa
|
||||
)
|
||||
target_compile_definitions(mldsa44 PRIVATE
|
||||
MLD_CONFIG_PARAMETER_SET=44
|
||||
MLD_CONFIG_MULTILEVEL_WITH_SHARED
|
||||
MLD_CONFIG_NAMESPACE_PREFIX=mldsa
|
||||
)
|
||||
|
||||
add_library(mldsa65 STATIC ${MLDSA_SOURCES})
|
||||
target_include_directories(mldsa65 PRIVATE
|
||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mldsa/mldsa/src
|
||||
${CMAKE_CURRENT_LIST_DIR}/config/mldsa
|
||||
)
|
||||
target_compile_definitions(mldsa65 PRIVATE
|
||||
MLD_CONFIG_PARAMETER_SET=65
|
||||
MLD_CONFIG_MULTILEVEL_NO_SHARED
|
||||
MLD_CONFIG_NAMESPACE_PREFIX=mldsa
|
||||
)
|
||||
|
||||
add_library(mldsa87 STATIC ${MLDSA_SOURCES})
|
||||
target_include_directories(mldsa87 PRIVATE
|
||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mldsa/mldsa/src
|
||||
${CMAKE_CURRENT_LIST_DIR}/config/mldsa
|
||||
)
|
||||
target_compile_definitions(mldsa87 PRIVATE
|
||||
MLD_CONFIG_PARAMETER_SET=87
|
||||
MLD_CONFIG_MULTILEVEL_NO_SHARED
|
||||
MLD_CONFIG_NAMESPACE_PREFIX=mldsa
|
||||
)
|
||||
endif()
|
||||
|
||||
list(APPEND INCLUDES
|
||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mlkem/mlkem
|
||||
${CMAKE_CURRENT_LIST_DIR}/config/mlkem
|
||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mldsa/mldsa
|
||||
${CMAKE_CURRENT_LIST_DIR}/config/mldsa
|
||||
)
|
||||
list(APPEND SYSTEM_INCLUDES
|
||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mlkem/mlkem
|
||||
${CMAKE_CURRENT_LIST_DIR}/config/mlkem
|
||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mldsa/mldsa
|
||||
${CMAKE_CURRENT_LIST_DIR}/config/mldsa
|
||||
)
|
||||
add_compile_definitions(
|
||||
MLK_CONFIG_NAMESPACE_PREFIX=mlkem
|
||||
MLK_CONFIG_MULTILEVEL_BUILD=1
|
||||
MLD_CONFIG_NAMESPACE_PREFIX=mldsa
|
||||
MLD_CONFIG_MULTILEVEL_BUILD=1
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -452,6 +496,9 @@ if(ENABLE_PQC)
|
||||
mlkem768
|
||||
mlkem1024
|
||||
mlkem512
|
||||
mldsa44
|
||||
mldsa65
|
||||
mldsa87
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -531,7 +578,7 @@ else()
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -wd5045 -wd4820")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -wd5045 -wd4820 -wd5105")
|
||||
|
||||
add_compile_definitions(
|
||||
_CRT_SECURE_NO_WARNINGS
|
||||
|
||||
Reference in New Issue
Block a user