Files
se050-wireguard/CMakeLists.txt
T
km 999e7a6e19 feat: Add CSPRNG with SE050 seed for embedded platforms
- Implemented ChaCha20-based CSPRNG seeded from SE050 TRNG
- Optimized for ESP32 and other embedded platforms
- Single SE050 access at startup, then fast software RNG
- All 10 CSPRNG tests passing

Usage:

Benefits:
- Minimal I2C communication (only once at startup)
- Fast random generation after seeding
- Cryptographically secure (ChaCha20-based)
- Suitable for resource-constrained devices
2026-03-28 20:24:15 +09:00

77 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.10)
project(se050_wireguard C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
# Include directories
include_directories(
${CMAKE_SOURCE_DIR}/include
)
# Source files
set(SOURCES
src/se050_i2c_hal.c
src/se050_session.c
src/se050_keystore.c
src/se050_rng.c
src/se050_x25519.c
src/se050_x25519_sw.c
src/se050_chacha20_poly1305.c
src/se050_blake2s.c
src/se050_hmac_blake2s.c
src/se050_hkdf_blake2s.c
src/se050_tai64n.c
src/se050_scp03.c
src/se050_scp03_keys.c
src/se050_wireguard_proto.c
src/se050_tai64n_hw.c
src/se050_wireguard.c
src/se050_wireguard_se050_rng.c
src/se050_rng_seed.c
)
# Create library
add_library(se050_wireguard STATIC ${SOURCES})
# Linux-specific flags
if(UNIX AND NOT APPLE)
# OpenSSL for SCP03 encryption
find_package(OpenSSL REQUIRED)
target_link_libraries(se050_wireguard OpenSSL::SSL OpenSSL::Crypto)
endif()
# Enable testing
option(BUILD_TESTS "Build test suite" ON)
if(BUILD_TESTS)
enable_testing()
# SCP03 tests
add_executable(test_scp03 tests/test_scp03.c)
target_link_libraries(test_scp03 se050_wireguard)
if(UNIX AND NOT APPLE)
target_link_libraries(test_scp03 OpenSSL::SSL OpenSSL::Crypto)
endif()
add_test(NAME SCP03Tests COMMAND test_scp03)
# SCP03 Hardware tests with AN12436 default keys
add_executable(test_scp03_hardware tests/test_scp03_hardware.c)
target_link_libraries(test_scp03_hardware se050_wireguard)
if(UNIX AND NOT APPLE)
target_link_libraries(test_scp03_hardware OpenSSL::SSL OpenSSL::Crypto)
endif()
add_test(NAME SCP03HardwareTests COMMAND test_scp03_hardware)
endif()
# Install headers
install(FILES include/se050_wireguard.h
DESTINATION include)
# Install library
install(TARGETS se050_wireguard
ARCHIVE DESTINATION lib)