Add Zephyr infrastructure for ed25519
Signed-off-by: Fabio Utzig <utzig@apache.org>
diff --git a/boot/zephyr/CMakeLists.txt b/boot/zephyr/CMakeLists.txt
index cb4feca..55ba173 100644
--- a/boot/zephyr/CMakeLists.txt
+++ b/boot/zephyr/CMakeLists.txt
@@ -62,6 +62,9 @@
# Path to tinycrypt library source subdirectory of MCUBOOT_DIR.
set(TINYCRYPT_DIR "${MCUBOOT_DIR}/ext/tinycrypt/lib")
assert_exists(TINYCRYPT_DIR)
+# Path to crypto-fiat
+set(FIAT_DIR "${MCUBOOT_DIR}/ext/fiat")
+assert_exists(FIAT_DIR)
# Path to mbed-tls' asn1 parser library.
set(MBEDTLS_ASN1_DIR "${MCUBOOT_DIR}/ext/mbedtls")
assert_exists(MBEDTLS_ASN1_DIR)
@@ -105,6 +108,7 @@
${BOOT_DIR}/bootutil/src/encrypted.c
${BOOT_DIR}/bootutil/src/image_rsa.c
${BOOT_DIR}/bootutil/src/image_ec256.c
+ ${BOOT_DIR}/bootutil/src/image_ed25519.c
${BOOT_DIR}/bootutil/src/caps.c
)
@@ -146,6 +150,18 @@
# Use mbedTLS provided by Zephyr for RSA signatures. (Its config file
# is set using Kconfig.)
zephyr_include_directories(include)
+elseif(CONFIG_BOOT_SIGNATURE_TYPE_ED25519)
+ # For ed25519, mbedTLS is used for ASN1 parsing and SHA512
+ zephyr_include_directories(include)
+
+ zephyr_library_include_directories(
+ ${BOOT_DIR}/zephyr/include
+ ${FIAT_DIR}/include/
+ )
+
+ zephyr_library_sources(
+ ${FIAT_DIR}/src/curve25519.c
+ )
endif()
if(CONFIG_MCUBOOT_SERIAL)