Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

#ifndef H_BOOT_SERIAL_ENCRYPTION_
#define H_BOOT_SERIAL_ENCRYPTION_
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

/**
* Validate hash of a primary boot image doing on the fly decryption as well
Expand Down
2 changes: 1 addition & 1 deletion boot/boot_serial/src/boot_serial_encryption.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#include <../src/bootutil_priv.h>
#include "bootutil/bootutil_log.h"
#include "bootutil/bootutil_public.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

BOOT_LOG_MODULE_REGISTER(serial_encryption);

Expand Down
3 changes: 2 additions & 1 deletion boot/bootutil/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ add_library(bootutil STATIC)
target_include_directories(bootutil
PUBLIC
include
../fault_injection_hardening/include
PRIVATE
src
)
Expand All @@ -26,7 +27,7 @@ target_sources(bootutil
src/bootutil_public.c
src/caps.c
src/encrypted.c
src/fault_injection_hardening.c
../fault_injection_hardening/src/fault_injection_hardening.c
src/image_ecdsa.c
src/image_ed25519.c
src/image_rsa.c
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/include/bootutil/boot_hooks.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
#define H_BOOTUTIL_HOOKS

#include "bootutil/bootutil.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#define DO_HOOK_CALL(f, ret_default, ...) \
f(__VA_ARGS__)
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/include/bootutil/bootutil.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

#include <inttypes.h>
#include <stddef.h>
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"
#include "bootutil/bootutil_public.h"

#ifdef __cplusplus
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/include/bootutil/image.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

#include <inttypes.h>
#include <stdbool.h>
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#ifdef __cplusplus
extern "C" {
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/include/bootutil/mcuboot_uuid.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
*/

#include <stdint.h>
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#ifdef __cplusplus
extern "C" {
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/include/bootutil/security_cnt.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
*/

#include <stdint.h>
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#ifdef __cplusplus
extern "C" {
Expand Down
32 changes: 32 additions & 0 deletions boot/bootutil/include/fih_config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* (c) 2026, Infineon Technologies AG, or an affiliate of Infineon
* Technologies AG. All rights reserved.
*/

#ifndef __FIH_CONFIG_H__
#define __FIH_CONFIG_H__

/*
* MCUboot-specific configuration adapter for the fault_injection_hardening
* library. This file maps the MCUBOOT_FIH_PROFILE_* build options to the
* generic FIH_PROFILE_* macros consumed by fault_injection_hardening.h.
*/

#include "mcuboot_config/mcuboot_config.h"

#if defined(MCUBOOT_FIH_PROFILE_HIGH)
# define FIH_PROFILE_HIGH
#elif defined(MCUBOOT_FIH_PROFILE_MEDIUM)
# define FIH_PROFILE_MEDIUM
#elif defined(MCUBOOT_FIH_PROFILE_LOW)
# define FIH_PROFILE_LOW
#elif defined(MCUBOOT_FIH_PROFILE_OFF)
# define FIH_PROFILE_OFF
#else
/* Default: fault injection hardening disabled */
# define FIH_PROFILE_OFF
#endif

#endif /* __FIH_CONFIG_H__ */
2 changes: 1 addition & 1 deletion boot/bootutil/src/bootutil_find_key.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include <stdint.h>

#include "bootutil/crypto/sha.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"
#include "bootutil/image.h"
#include "bootutil/sign_key.h"
#include "bootutil_priv.h"
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/src/bootutil_loader.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
#include <flash_map_backend/flash_map_backend.h>

#include "bootutil/image.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"
#include "bootutil/bootutil.h"
#include "bootutil_priv.h"

Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/src/bootutil_misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
#include "bootutil_priv.h"
#include "bootutil_misc.h"
#include "bootutil/bootutil_log.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"
#ifdef MCUBOOT_ENC_IMAGES
#include "bootutil/enc_key.h"
#endif
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/src/bootutil_priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

#include "bootutil/bootutil.h"
#include "bootutil/image.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"
#include "bootutil_area.h"
#include "mcuboot_config/mcuboot_config.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Copyright (c) 2020 Arm Limited
*/

#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#ifdef FIH_ENABLE_DELAY

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* is the stable, backend-independent replacement.
*/

#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#ifdef FIH_ENABLE_DELAY

Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/src/image_ecdsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ BOOT_LOG_MODULE_DECLARE(mcuboot);
#if defined(MCUBOOT_SIGN_EC256) || defined(MCUBOOT_SIGN_EC384)

#include "bootutil_priv.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"
#include "bootutil/crypto/ecdsa.h"

#if !defined(MCUBOOT_BUILTIN_KEY)
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/src/image_rsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ BOOT_LOG_MODULE_DECLARE(mcuboot);
#ifdef MCUBOOT_SIGN_RSA
#include "bootutil_priv.h"
#include "bootutil/sign_key.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#define BOOTUTIL_CRYPTO_RSA_SIGN_ENABLED
#include "bootutil/crypto/rsa.h"
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/src/image_validate.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
#include "bootutil/crypto/sha.h"
#include "bootutil/sign_key.h"
#include "bootutil/security_cnt.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#include "mcuboot_config/mcuboot_config.h"
#include "bootutil/bootutil_log.h"
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/src/loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
#include "bootutil/bootutil_log.h"
#include "bootutil/security_cnt.h"
#include "bootutil/boot_record.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"
#include "bootutil/ramload.h"
#include "bootutil/boot_hooks.h"
#include "bootutil/mcuboot_status.h"
Expand Down
2 changes: 1 addition & 1 deletion boot/bootutil/src/ram_load.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#include "bootutil/bootutil_public.h"
#include "bootutil/image.h"
#include "bootutil_priv.h"
#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"
#include "bootutil/ramload.h"
#include "bootutil/mcuboot_status.h"

Expand Down
1 change: 1 addition & 0 deletions boot/cypress/MCUBootApp/MCUBootApp.mk
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ SOURCES_APP += $(SOURCES_APP_SRC)
SOURCES_APP += $(SOURCES_FLASH_PORT)

INCLUDE_DIRS_MCUBOOT := $(addprefix -I, $(CURDIR)/../bootutil/include)
INCLUDE_DIRS_MCUBOOT += $(addprefix -I, $(CURDIR)/../fault_injection_hardening/include)
INCLUDE_DIRS_MCUBOOT += $(addprefix -I, $(CURDIR)/../bootutil/src)
INCLUDE_DIRS_MCUBOOT += $(addprefix -I, $(CURDIR)/..)

Expand Down
2 changes: 1 addition & 1 deletion boot/cypress/MCUBootApp/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

#include "bootutil/bootutil_log.h"

#include "bootutil/fault_injection_hardening.h"
#include "fault_injection_hardening.h"

#include "watchdog.h"

Expand Down
3 changes: 2 additions & 1 deletion boot/espressif/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ set(ZCBOR_DIR ${MCUBOOT_ROOT_DIR}/boot/zcbor)

list(APPEND inc_directories
${BOOTUTIL_DIR}/include
${MCUBOOT_ROOT_DIR}/boot/fault_injection_hardening/include
${BOOTUTIL_DIR}/src
${ESPRESSIF_PORT_DIR}/include
)
Expand All @@ -206,7 +207,7 @@ set(bootutil_srcs
${BOOTUTIL_DIR}/src/bootutil_public.c
${BOOTUTIL_DIR}/src/caps.c
${BOOTUTIL_DIR}/src/encrypted.c
${BOOTUTIL_DIR}/src/fault_injection_hardening.c
${MCUBOOT_ROOT_DIR}/boot/fault_injection_hardening/src/fault_injection_hardening.c
${BOOTUTIL_DIR}/src/fault_injection_hardening_delay_rng_mbedtls.c
${BOOTUTIL_DIR}/src/image_ecdsa.c
${BOOTUTIL_DIR}/src/image_ed25519.c
Expand Down
2 changes: 1 addition & 1 deletion boot/espressif/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

#include <bootutil/bootutil.h>
#include <bootutil/bootutil_log.h>
#include <bootutil/fault_injection_hardening.h>
#include <fault_injection_hardening.h>
#include <bootutil/image.h>

#include "bootloader_init.h"
Expand Down
2 changes: 1 addition & 1 deletion boot/espressif/port/esp_loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <string.h>

#include <bootutil/bootutil_log.h>
#include <bootutil/fault_injection_hardening.h>
#include <fault_injection_hardening.h>

#include "bootloader_memory_utils.h"
#include "bootloader_flash_priv.h"
Expand Down
42 changes: 42 additions & 0 deletions boot/fault_injection_hardening/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Build artifacts
*.o
*.a
*.so
*.dylib
*.dll
*.exe
*.elf
*.bin
*.hex
*.map

# CMake
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
Makefile
build/

# Python
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
dist/
build/

# IDEs
.vscode/
.idea/
*.swp
*.swo
*~
.DS_Store

# Cargo/Rust (if used)
target/
Cargo.lock

# Temporary files
*.tmp
*.bak
37 changes: 37 additions & 0 deletions boot/fault_injection_hardening/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#
# CMakeLists.txt for the Fault Injection Hardening library
#
# This is the top-level CMakeLists.txt for building the FIH library as a
# standalone component. When used within MCUboot, the FIH sources are typically
# integrated into the bootutil library. This file allows FIH to be built and
# tested independently.
#
# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2020 Arm Limited
#

cmake_minimum_required(VERSION 3.12)
project(fault_injection_hardening)

# Add the FIH library
add_library(fih STATIC
src/fault_injection_hardening.c
)

target_include_directories(fih
PUBLIC
include
)

# When used outside MCUboot, callers must provide fih_config.h on the include path
# or in their project. The following demonstrates how to add it:
#
# target_include_directories(your_target PRIVATE path/to/your/fih_config.h)

# Enable testing (optional)
enable_testing()

# Add tests if they exist
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests/CMakeLists.txt")
add_subdirectory(tests)
endif()
Loading