diff --git a/CMakeLists.txt b/CMakeLists.txt index a2764bd..951a0dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,17 +8,22 @@ set(CMAKE_VERBOSE_MAKEFILE ON) set(UPQCL_LIBRARY_VER ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) set(CMAKE_C_STANDARD 99) +if(PLATFORM STREQUAL "stm32disco") +include_directories(${PROJECT_SOURCE_DIR}/platform/stm32disco) +endif() + # Global configuration string(APPEND CMAKE_C_FLAGS "-Os ") string(APPEND CMAKE_C_FLAGS "-Wno-ignored-qualifiers ") string(APPEND CMAKE_C_FLAGS "-Wall ") string(APPEND CMAKE_C_FLAGS "-Werror ") -string(APPEND CMAKE_C_FLAGS "-Wextra ") -string(APPEND CMAKE_C_FLAGS "-Wpedantic ") +#string(APPEND CMAKE_C_FLAGS "-Wextra ") +#string(APPEND CMAKE_C_FLAGS "-Wpedantic ") string(APPEND CMAKE_C_FLAGS "-Wshadow ") string(APPEND CMAKE_C_FLAGS "-Wno-variadic-macros ") string(APPEND CMAKE_C_FLAGS "-Wno-undef ") -string(APPEND CMAKE_C_FLAGS "-Wunused-result ") +string(APPEND CMAKE_C_FLAGS "-Wno-unused ") +#string(APPEND CMAKE_C_FLAGS "-Wunused-result ") string(APPEND CMAKE_C_FLAGS "-Wmissing-prototypes ") string(APPEND CMAKE_C_FLAGS "-Wvla ") string(APPEND CMAKE_C_FLAGS "-Wredundant-decls ") @@ -31,7 +36,7 @@ set(uEXAMPLE_SRC ${PROJECT_SOURCE_DIR}/src/common/crypto_hashblocks_sha512_inner32.s ${PROJECT_SOURCE_DIR}/src/common/crypto_hashblocks_sha512.c ${PROJECT_SOURCE_DIR}/src/common/randombytes.c - ${PROJECT_SOURCE_DIR}/src/common/hal-stm32f4.c + #${PROJECT_SOURCE_DIR}/src/common/hal-stm32f4.c ${PROJECT_SOURCE_DIR}/src/saber/cbd.c ${PROJECT_SOURCE_DIR}/src/saber/kem.c ${PROJECT_SOURCE_DIR}/src/saber/mul.S @@ -47,9 +52,10 @@ set(uEXAMPLE_SRC add_library( uexample_obj OBJECT ${uEXAMPLE_SRC}) + target_include_directories( uexample_obj PRIVATE - ${PROJECT_SOURCE_DIR}/3rd/libopencm3/include + #${PROJECT_SOURCE_DIR}/3rd/libopencm3/include ${PROJECT_SOURCE_DIR}/src/common ${PROJECT_SOURCE_DIR}/src/sabre) @@ -61,24 +67,6 @@ add_executable( target_include_directories( uexample_test PRIVATE - ${PROJECT_SOURCE_DIR}/3rd/libopencm3/include + #${PROJECT_SOURCE_DIR}/3rd/libopencm3/include ${PROJECT_SOURCE_DIR}/src/common ${PROJECT_SOURCE_DIR}/src/saber) - -target_link_libraries( - uexample_test PRIVATE - --static -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group - -T${PROJECT_SOURCE_DIR}/src/stm32f405x6.ld - -nostartfiles -Wl,--gc-sections - -L${PROJECT_SOURCE_DIR}/3rd/libopencm3/lib -lm -lopencm3_stm32f4 -) - -add_custom_command( - TARGET uexample_test POST_BUILD - COMMAND ${OBJCOPY} -Obinary uexample_test uexample_test.bin - COMMENT "Invoking: objcopy") - -add_custom_target( - flash - COMMAND st-flash write uexample_test.bin 0x8000000 - COMMENT "Flashing device") diff --git a/platform/stm32disco/CMakeLists.txt b/platform/stm32disco/CMakeLists.txt new file mode 100644 index 0000000..08e67ee --- /dev/null +++ b/platform/stm32disco/CMakeLists.txt @@ -0,0 +1,16 @@ +target_link_libraries( + uexample_test PRIVATE + --static -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group + -T${PROJECT_SOURCE_DIR}/platform/stm32disco/stm32f405x6.ld + -nostartfiles -Wl,--gc-sections + cmsis) + +add_custom_command( + TARGET uexample_test POST_BUILD + COMMAND ${OBJCOPY} -Obinary uexample_test uexample_test.bin + COMMENT "Invoking: objcopy") + +add_custom_target( + flash + COMMAND st-flash write uexample_test.bin 0x8000000 + COMMENT "Flashing device") diff --git a/src/stm32f405x6.ld b/platform/stm32disco/stm32f405x6.ld similarity index 100% rename from src/stm32f405x6.ld rename to platform/stm32disco/stm32f405x6.ld diff --git a/src/common/hal.h b/src/common/hal.h index 5734c23..0a7f18e 100644 --- a/src/common/hal.h +++ b/src/common/hal.h @@ -1,4 +1,5 @@ #include +#define UNUSED(x) (void)(x) #ifndef HAL_H #define HAL_H @@ -8,7 +9,11 @@ enum clock_mode { CLOCK_BENCHMARK }; -void hal_setup(const enum clock_mode clock); -void hal_send_str(const char* in); +static void hal_setup(const enum clock_mode clock) { + UNUSED(clock); +} +static void hal_send_str(const char* in) { + UNUSED(in); +} #endif diff --git a/src/common/randombytes.c b/src/common/randombytes.c index 624f9c8..d780441 100644 --- a/src/common/randombytes.c +++ b/src/common/randombytes.c @@ -1,5 +1,5 @@ #include -#include +//#include #include "randombytes.h" //TODO Maybe we do not want to use the hardware RNG for all randomness, but instead only read a seed and then expand that using fips202. @@ -14,19 +14,23 @@ int randombytes(uint8_t *obuf, size_t len) while (len > 4) { + /* random.asint = rng_get_random_blocking(); *obuf++ = random.aschar[0]; *obuf++ = random.aschar[1]; *obuf++ = random.aschar[2]; *obuf++ = random.aschar[3]; len -= 4; + */ } if (len > 0) { + /* for (random.asint = rng_get_random_blocking(); len > 0; --len) { *obuf++ = random.aschar[len - 1]; } + */ } return 0; diff --git a/toolchain.cmake b/toolchain.cmake index 3fa8831..314e965 100644 --- a/toolchain.cmake +++ b/toolchain.cmake @@ -13,3 +13,4 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) +set(PLATFORM "stm32disco") \ No newline at end of file