Commit Graph

62 Commits (142de77ed32dc5a3b2f4b299cf90f2e0f1978a2d)

Author SHA1 Message Date
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
Marco Oliverio a21249cbff README.md: add credit to the 2.9.0 changelog 2026-07-28 17:53:31 +02:00
Daniele Lacamera c69303ad0a docs: add 2.9.0 changelog 2026-07-02 22:58:46 +02:00
Sameeh Jubran 2ef247a31e fix: capture real build config in sbom target and harden recipe
The sbom target fed `cc -dM -E` an empty /dev/null with only
WOLFSSL_USER_SETTINGS, so gen-sbom's build properties collapsed to host
compiler builtins (all filtered out as noise) and the SBOM did not reflect
the selected configuration. Harvest the actual -D config macros from CFLAGS
(filtered in the shell so defines whose values contain spaces, e.g.
BOOTLOADER_PARTITION_SIZE=$((...)), survive intact) so the SBOM captures the
real TARGET/SIGN/HASH/feature set.

Also:
- add preflight checks for empty WOLFBOOT_VERSION and missing GEN_SBOM
- pass sources via --srcs-file to avoid ARG_MAX on large configs
- include .S sources in the source set, not just .c
- make HOSTCC and GEN_SBOM overridable
- README: soften "CRA Compliance" wording, use wolfboot-<version>.* names,
  fix dangling wolfssl/doc/CRA.md link to point at the wolfSSL CRA Kit

Signed-off-by: Sameeh Jubran <sameeh.j@gmail.com>
2026-07-02 08:48:39 +02:00
Mark Atwood 5c75c51f46 docs: add SBOM/EU CRA Compliance section to README 2026-07-02 08:48:39 +02:00
Daniele Lacamera 776378ca78 Preparing release v2.8.0 + update copyright 2026-04-16 13:11:56 +02:00
Daniele Lacamera 3b3aa2e7c3 Updated ChangeLog & version number.
+ Updated wolfTPM submodule
2025-11-26 15:50:13 +01:00
gojimmypi 7d0e735522
doc polish 2025-11-20 17:05:12 -08:00
gojimmypi eaf029fbc5
CMake Improvements 2025-11-18 17:44:43 -08:00
Daniele Lacamera 68e688eeb6 Updated Changelog, version 2025-08-01 13:21:47 +02:00
Daniele Lacamera c4a6b1c4df Updated Changelog in README.md 2025-04-30 12:11:34 +02:00
David Garske 44f987ccce Add note about git submodules when cloning from GitHub and trying to build. Thank you #554. 2025-02-25 22:18:34 +01:00
Daniele Lacamera 35daf2e9b8 Updated pre-compiled keytools 2025-01-07 19:34:34 +01:00
Daniele Lacamera ba8197fe3e Added missing Changelog entry. 2025-01-07 19:12:22 +01:00
Daniele Lacamera 892acfded8 Prepare release 2.4.0 2025-01-07 13:35:28 +01:00
Daniele Lacamera 7726b05ff7 Updated version, added changelog 2024-10-31 11:46:49 +01:00
Daniele Lacamera 51fe05cf9c v 2.2.0: Added to ChangeLog in README.md 2024-07-22 16:29:12 +02:00
David Garske 3444c47fdb * Added support for RX65N and RX72N with native Makefile and RX ELF GCC compiler.
* Added initialization of the clocks and UART driver.
   - wolfBoot uses on chip high speed oscillator (HOCO) at (120MHz RX65N and 240Mhz for RX72N).
* Added RX RSPI and QSPI driver support with external SPI flash
* Improve documentation and fix spelling errors.
* Added .srec (s-record) format support
* Added RX TSIP support for ECDSA (requires https://github.com/wolfSSL/wolfssl/pull/7685).
* Allow custom implementation of `get_trailer_at`, `set_trailer_at` and `set_partition_magic` using `CUSTOM_PARTITION_TRAILER`
2024-07-17 06:08:31 +02:00
Daniele Lacamera 0581d9920d Updated ChangeLog and version.h 2024-04-16 19:42:54 +02:00
Daniele Lacamera 43f7730576 Added support for custom TLVs in manifest header 2024-02-29 17:29:29 +01:00
Daniele Lacamera 4564588b69 Preparing release v2.0.2 2023-12-29 11:31:48 +01:00
Daniele Lacamera 574f487393 Updated README.md 2023-11-07 16:48:48 +01:00
David Garske 5c63d75890 Add support for iMX RT1050 and RT1060 wolfBoot_printf using DEBUG_UART=1. 2023-08-21 11:08:48 +02:00
David Garske 3797238546 Documentation and code comment cleanups:
* Update documentation for signing with `--no-sign`, as the key argument should not be supplied.
* Recommend `make keysclean` instead of distclean on keys mismatch.
* Renesas headings/readme link and white-space.
2023-08-04 10:13:56 +02:00
Daniele Lacamera b3e69ea91a Fixed typo in wolfBoot 1.16 changelog 2023-07-12 11:01:11 +02:00
Daniele Lacamera 8bab854ec9 Added changelog 2023-07-06 14:16:58 +02:00
Daniele Lacamera 65635b3940 Updated version & README.md 2023-04-13 17:34:26 +02:00
Daniele Lacamera f6e5ee1ec6 Updated changelog 2022-12-30 10:57:05 +01:00
David Garske 022b8d3c13 Progress on adding NXP QorIQ P1021 support. 2022-12-29 18:27:40 +01:00
Lealem Amedie 18bfcecd6b wolfBoot cmake support 2022-12-07 13:00:10 -08:00
David Garske 6d45564112 Test size increases. Improve user_settings.h ECC options. 2022-12-06 06:20:48 +01:00
Daniele Lacamera 2ca022b2fd Update Changelog 2022-11-08 12:32:09 +01:00
Daniele Lacamera f6eeb8dd5d Preparing release v1.12 2022-07-26 09:57:32 +02:00
Daniele Lacamera 06ad2941e9 Added missing entry in changelog 2022-05-05 07:32:03 +02:00
Daniele Lacamera acd96323a2 Prepare release 1.11 2022-05-05 07:28:21 +02:00
Daniele Lacamera 3a8a295a91 Added v1.10 changelog 2022-01-10 17:35:27 +01:00
Elms bccfbdd2c0 Release notes for wolfBoot v1.9 2021-11-10 00:58:28 -08:00
Daniele Lacamera 31819bd206 Fix wolfBoot_update_trigger() function name
Fixes #142.
2021-08-31 12:14:46 +02:00
Daniele Lacamera 8062462688 Prepare release 1.8 2021-07-19 15:20:45 +02:00
Daniele Lacamera 6632fba983 Updated changelog after merge of #97. Tag v1.7.1. 2021-02-03 11:39:47 +01:00
Daniele Lacamera d74a5b0df2 Updated README.md with changelog 2021-02-01 18:26:59 +01:00
Dimitar Tomov dbc2699959 Added new docs file about measured boot and updated the README
Signed-off-by: Dimitar Tomov <dimi@wolfssl.com>
2020-12-11 22:32:59 +02:00
Daniele Lacamera feb7522a58 Updated changelog for release 1.6 2020-08-25 09:51:32 +02:00
Daniele Lacamera abcbdc3731 Updated documentation (uart remote flash, encrypted partitions) 2020-06-16 17:52:50 +02:00
David Garske b94353f0da Remove obsolete section in README.md. We support multiple Cortex architectures and are continually expanding. 2020-06-09 10:27:42 -07:00
Daniele Lacamera 59f6851494 Updated changelog for release 1.5 2020-04-28 10:52:49 +02:00
David Garske c0b534edd7 wolfBoot Aarch64 support (Xilinx Zynq and Raspberry Pi):
* Added Aarch64 boot/startup support
* Added configuration templates for Raspberry Pi 3 and Xilinx ZynqMP UltraScale+
* Added Xilinx Zynq QSPI bare-metal Driver
* Added `NO_XIP` option for full `ext_flash_*` API on all partitions
* Added Xilinx SDK Project Template
* Added support for DTS image partitions
* Added wolfBoot signing tool in Native C (`tools/keytools/sign.c`).
* Added libwolfboot functions `int wolfBoot_fallback_is_possible(void);` and `int wolfBoot_dualboot_candidate(void);`
* Performance improvement to only hash application firmware image once
2020-03-04 12:04:46 -08:00
Daniele Lacamera 60c5e76afb wolfBoot version 1.4 2020-01-06 19:04:39 +01:00
David Garske fae6a974c8 Adds RSA support to wolfBoot using "SIGN=RSA2048". Includes RSA signing script tool in Python and instructions. 2019-12-17 09:44:02 -08:00
Daniele Lacamera 637d003d98 Release v1.3 2019-11-13 09:01:22 +01:00