mirror of
https://github.com/polhenarejos/pico-keys-sdk
synced 2026-05-28 09:01:24 +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(TINYCBOR_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/tinycbor")
|
||||||
set(CJSON_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/cjson")
|
set(CJSON_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/cjson")
|
||||||
set(MLKEM_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/mlkem")
|
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(LIBCVC_PATH "${CMAKE_CURRENT_LIST_DIR}/../third-party/libcvc")
|
||||||
|
|
||||||
set(PICOKEYS_MBEDTLS_STD_REPO "https://github.com/Mbed-TLS/mbedtls.git")
|
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_CJSON_REF "v1.7.19")
|
||||||
set(PICOKEYS_MLKEM_REPO "https://github.com/pq-code-package/mlkem-native.git")
|
set(PICOKEYS_MLKEM_REPO "https://github.com/pq-code-package/mlkem-native.git")
|
||||||
set(PICOKEYS_MLKEM_REF "v1.1.0")
|
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_REPO "https://github.com/polhenarejos/libcvc.git")
|
||||||
set(PICOKEYS_LIBCVC_REF "main")
|
set(PICOKEYS_LIBCVC_REF "main")
|
||||||
|
|
||||||
@@ -121,6 +124,7 @@ if(USB_ITF_LWIP)
|
|||||||
endif()
|
endif()
|
||||||
if(ENABLE_PQC)
|
if(ENABLE_PQC)
|
||||||
picokeys_sync_dep(mlkem_dep "${PICOKEYS_MLKEM_REPO}" "${PICOKEYS_MLKEM_REF}" "${MLKEM_PATH}")
|
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()
|
endif()
|
||||||
if(ENABLE_LIBCVC)
|
if(ENABLE_LIBCVC)
|
||||||
picokeys_sync_dep(libcvc_dep "${PICOKEYS_LIBCVC_REPO}" "${PICOKEYS_LIBCVC_REF}" "${LIBCVC_PATH}")
|
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
|
list(APPEND PICOKEYS_INCLUDE_DIRS
|
||||||
${PICOKEYS_SDK_DIR}/third-party/mlkem/mlkem
|
${PICOKEYS_SDK_DIR}/third-party/mlkem/mlkem
|
||||||
${PICOKEYS_SDK_DIR}/config/mlkem
|
${PICOKEYS_SDK_DIR}/config/mlkem
|
||||||
|
${PICOKEYS_SDK_DIR}/third-party/mldsa/mldsa
|
||||||
|
${PICOKEYS_SDK_DIR}/config/mldsa
|
||||||
)
|
)
|
||||||
list(APPEND PICOKEYS_REQUIRES
|
list(APPEND PICOKEYS_REQUIRES
|
||||||
mlkem512
|
mlkem512
|
||||||
mlkem768
|
mlkem768
|
||||||
mlkem1024
|
mlkem1024
|
||||||
|
mldsa44
|
||||||
|
mldsa65
|
||||||
|
mldsa87
|
||||||
)
|
)
|
||||||
endif()
|
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_MULTILEVEL_NO_SHARED
|
||||||
MLK_CONFIG_NAMESPACE_PREFIX=mlkem
|
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()
|
endif()
|
||||||
|
|
||||||
list(APPEND INCLUDES
|
list(APPEND INCLUDES
|
||||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mlkem/mlkem
|
${CMAKE_CURRENT_LIST_DIR}/third-party/mlkem/mlkem
|
||||||
${CMAKE_CURRENT_LIST_DIR}/config/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
|
list(APPEND SYSTEM_INCLUDES
|
||||||
${CMAKE_CURRENT_LIST_DIR}/third-party/mlkem/mlkem
|
${CMAKE_CURRENT_LIST_DIR}/third-party/mlkem/mlkem
|
||||||
${CMAKE_CURRENT_LIST_DIR}/config/mlkem
|
${CMAKE_CURRENT_LIST_DIR}/config/mlkem
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/third-party/mldsa/mldsa
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/config/mldsa
|
||||||
)
|
)
|
||||||
add_compile_definitions(
|
add_compile_definitions(
|
||||||
MLK_CONFIG_NAMESPACE_PREFIX=mlkem
|
MLK_CONFIG_NAMESPACE_PREFIX=mlkem
|
||||||
MLK_CONFIG_MULTILEVEL_BUILD=1
|
MLK_CONFIG_MULTILEVEL_BUILD=1
|
||||||
|
MLD_CONFIG_NAMESPACE_PREFIX=mldsa
|
||||||
|
MLD_CONFIG_MULTILEVEL_BUILD=1
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -452,6 +496,9 @@ if(ENABLE_PQC)
|
|||||||
mlkem768
|
mlkem768
|
||||||
mlkem1024
|
mlkem1024
|
||||||
mlkem512
|
mlkem512
|
||||||
|
mldsa44
|
||||||
|
mldsa65
|
||||||
|
mldsa87
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -531,7 +578,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -wd5045 -wd4820")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -wd5045 -wd4820 -wd5105")
|
||||||
|
|
||||||
add_compile_definitions(
|
add_compile_definitions(
|
||||||
_CRT_SECURE_NO_WARNINGS
|
_CRT_SECURE_NO_WARNINGS
|
||||||
|
|||||||
Reference in New Issue
Block a user