wolfBoot/tools
Sameeh Jubran 142de77ed3 sbom: generate SBOMs from every wolfBoot build system
wolfBoot ships as source. Users build it in many ways. Before this
change, only the plain Make build could make an SBOM. So a user could not
make an SBOM for the build that the user runs.

This change adds one shared engine (tools/scripts/wolfboot-sbom.sh, which
calls wolfSSL gen-sbom) and a front end for each build system. Every
build makes a CycloneDX 1.6 and SPDX 2.3 document. The engine captures
the configuration with the host compiler, so the SBOM is the same for
GCC, Clang, LLVM, IAR, armcl, CCRX, and XC32.

Routes:
  - Make, arch.mk, and vendor SDKs: make sbom TARGET=<t> SIGN=<a>
  - CMake and the Pico SDK: cmake --build <dir> --target sbom
  - IAR Embedded Workbench: ide-sbom/iar_sbom.py
  - Any IDE with a compilation database: ide-sbom/compdb_sbom.py
  - TI CCS, MPLAB X, Renesas, Xilinx: ide-sbom/route_through_sbom.sh
  - Per-HAL component: make sbom-hal TARGET=<t>
  - Zephyr module: ide-sbom/zephyr_sbom.py

Make the SBOM reproducible. The captured macros can hold an absolute host
path. For example, arch.mk passes -DPICO_SDK_PATH=$(PICO_SDK_PATH). The
driver now redacts each absolute path but keeps the macro name, so the
configuration record stays complete. Add --no-scrub for debug.

Add a validator (ide-sbom/validate_sbom.py) and a CI canary
(.github/workflows/test-sbom.yml) that runs and validates every route.
The canary also checks that no host path leaks into the SBOM.

Add docs/SBOM.md. The tools are product-neutral by design, so they can be
shared across wolfSSL products later without logic changes.

Signed-off-by: Sameeh Jubran <sameeh@wolfssl.com>
2026-08-20 15:22:16 +02:00
..
armclang Remove obvious/redundant comments 2026-07-31 16:00:14 +02:00
bin-assemble renesas-rx: fix build for GCC RX 8.3/14.2 2026-07-30 15:32:31 +02:00
check_config
ci PolarFire SoC: LPDDR4 DDR init for MPFS250T Video Kit (M-Mode) 2026-08-03 12:27:22 +02:00
delta tools/delta: check pwrite result in bmpatch 2026-07-02 17:01:28 +02:00
efi efi: sign the x86_64_efi reference kernel with an authenticated HDR_CMDLINE 2026-08-10 21:03:50 +02:00
elf-parser
fdt-parser Add wolfBoot FIT support for loading bitstream 2026-06-09 15:30:27 +02:00
keytools add asymmetric partition sizing for monolithic updates 2026-08-19 17:47:48 +02:00
lms Addressed copilot's comments 2026-04-29 13:15:52 +02:00
openocd Support for MAX32666 2026-07-31 14:33:56 +02:00
renode Addressed copilot's comments 2026-04-28 15:22:41 +02:00
scripts sbom: generate SBOMs from every wolfBoot build system 2026-08-20 15:22:16 +02:00
squashelf add O_BINARY flag for msys2/windows builds 2026-08-11 08:35:12 -06:00
test-expect-version Fix NRF52 UART DMA and Renode test infrastructure 2026-04-28 15:04:35 +02:00
test-update-server
tpm Address Copilot review comments 2026-06-09 15:52:07 +02:00
uart-flash-server F-5675: fix signed-overflow UB from uint8_t<<24 in serve_update version assembly 2026-06-11 18:53:49 +02:00
unit-tests Condense the verbose comments 2026-08-18 20:12:06 +02:00
xmss Zeroize XMSS key readback buffer 2026-04-29 12:31:21 +02:00
config.mk Add support for auxillary algorithms and cert chain/TPM usage 2026-07-22 11:47:16 +02:00
test-delta.mk
test-enc.mk
test-renode.mk review: add additional RSA PSS test and bench coverage 2026-04-28 15:02:57 +02:00
test.mk Add additional test coverage for monolithic self updates with asymmetric partition sizing 2026-08-19 17:47:48 +02:00
wolfboot-rpi-devicetree.diff