Commit Graph

64 Commits (32c99d4687512fe47f684a33f032c76062d5db2f)

Author SHA1 Message Date
Daniele Lacamera ec88e96037 Fixed regression compiling test-app 2022-07-21 21:05:13 +02:00
Daniele Lacamera 93dd53ac0f Fixed support for raspberry-pi 2022-07-21 20:18:34 +02:00
Marco Oliverio 5c13a526bd libwolfboot.c: abide compilers on 64bit architectures 2022-07-12 10:13:10 +02:00
David Garske 9c59244726 Make sure the cipher global is zero initialized (since it is not a static, the compiler may not zero initialize). 2022-06-02 09:12:30 +02:00
David Garske f63c323677 Cleanups and restore a few changes. 2022-05-20 08:06:07 +02:00
David Garske 6068a8047c wolfBoot improvements (from elms):
* Add `WOLFBOOT_DUALBOOT` for dynamic fallback
* Refactor header field parsing
* Cleanup compiler warnings and logic extra check
* Option to leave out partition based functions
* Add `WOLFBOOT_FIXED_PARTITIONS` enable using partition enum and related functions
* Wrap all delta update references
* Update raspberry documentation
* EFI refactoring
* Add `keytools_check` target
* Add "library" target
2022-05-20 08:06:07 +02:00
Daniele Lacamera 61275ec9dd Update Chacha ENCRYPT_BLOCK_SIZE to match IV ctr 2022-02-07 16:35:25 +01:00
Marco Oliverio b7026a5b1c update: don't set IV on SWAP based on SWAP address.
New update logic when using encrypted external flash:

- an update sector is copied to swap. No decryption and re-encryption is done in
this step. This is important, because the swap address never changes and
otherwise the data will be encrypted, one sector at the time, with the same
IV. It's also a performance improvement.

- a boot sector is copied to update. In this step the boot sector is encrypted

- the swap sector is copied into boot. In this step the swap sector is decrypted

This commit moves the set_iv logic into wolfBoot_copy_sector to account for
this.
2022-02-07 15:03:08 +01:00
Marco Oliverio 0f9613837a libwolfboot: make crypto_*() functions public 2022-02-07 15:03:08 +01:00
Marco Oliverio fbef9e8a98 wolfboot: lib: fix wrong range check 2022-02-07 15:03:08 +01:00
Daniele Lacamera 644d83309e Fixed AES iv calculation (all test-enc passing) 2022-02-07 13:29:15 +01:00
Daniele Lacamera 2e88167554 AES-CTR: Use entire block range for IV setting 2022-02-07 10:20:58 +01:00
Daniele Lacamera 43a5a38629 Fixes to AES-CTR encryption after testing 2022-01-31 16:46:09 +01:00
Daniele Lacamera 5551666e08 Draft: added AES encryption support 2022-01-28 20:26:59 +01:00
Marco Oliverio a187442455 support booting EFI application on x86_64 architecture
Co-authored-by: Daniele Lacamera <daniele@wolfssl.com>
2021-11-30 18:43:50 +01:00
Daniele Lacamera f26dd61e23 Fixed delta updates from external devices (+ test) 2021-10-07 14:32:51 +02:00
Daniele Lacamera 922c17f1cc Draft: integrate delta updates with external flash support 2021-10-07 14:32:48 +02:00
Elms da353cfe2e TMS570LC43xx: allow overwriting `PART_BOOT_ENDFLAGS` 2021-10-07 01:45:18 -07:00
Elms aaa8438f3f TMS570LC43xx: Fix status updates via NVM_FLASH_WRITEONCE 2021-10-07 01:45:18 -07:00
Elms d302c633c2 TMS570LC43xx: flash updates and init stack pointer
- cleanup warnings and rework exceptions to be more robust
 - CORTEX R5: Initialization of stack pointer
 - updates to F021 flash from testing
 - sync options for command line build with IDE
2021-10-07 01:45:18 -07:00
Daniele Lacamera b74a4f69e2 Changed delta mechanism + added key tool diff function 2021-08-16 11:59:45 +02:00
Daniele Lacamera 6fae229a63 Don't check image address against 0x0000, which is a valid address. 2021-08-16 11:56:15 +02:00
Daniele Lacamera 13541ec046 Delta updates, draft update mechanism with hdr replacement 2021-08-16 11:56:13 +02:00
David Garske d38de3b432 Update copyright year 2021-07-19 07:50:02 -07:00
Daniele Lacamera 82da68028b Fix fallback using encryption by storing the key after swaping
partitions
2021-01-11 13:07:07 +01:00
Liam e79f10be5c sector flags size fix 2020-11-24 08:45:33 +01:00
Liam 9f213e973a start flags offset should keep trailer in mind 2020-11-24 08:45:33 +01:00
Daniele Lacamera d13ec08941 Erase old partition/sector flags when triggering an update in FLAGS_HOME
mode.
2020-11-02 09:54:45 +01:00
Daniele Lacamera 72eb2c205b Relocate sector flags in FLAGS_HOME mode to a constant location 2020-10-16 10:29:19 +02:00
Daniele Lacamera 75898806eb Added option FLAGS_HOME to store UPDATE flags in the BOOT partition 2020-09-11 11:25:51 +02:00
Daniele Lacamera 0482cba74d Fix bug in encryption - account for flags offset 2020-09-04 15:57:59 +02:00
Daniele Lacamera 00361ee322 fixed warning with explicit type cast 2020-08-25 09:47:24 +02:00
Daniele Lacamera 944f816f05 Improved boundary checks in wolfBoot_find_header 2020-08-13 13:56:47 +02:00
Daniele Lacamera 7c8636f16b Fixed manifest header boundary checks
Added sanity check against address-space wrap-around

Revert "Added sanity check against address-space wrap-around"

This reverts commit cf81b32f38008723aa41a260a6c46920a9d3fb40.
2020-08-13 13:56:45 +02:00
Daniele Lacamera 24538d19d9 Relocate temporary key slot to the end of the partition 2020-08-11 15:32:47 +02:00
Daniele Lacamera 9e421ff946
Merge pull request #69 from wolfSSL/manifest-aligned-fields
Sanity check for aligned fields in manifest header

Fix confirmed (thanks @guidovranken !)
2020-07-27 23:39:28 +02:00
Daniele Lacamera b2beb49370 Fixed bug in encrypted update, removed swap_counter. 2020-07-15 17:36:38 +02:00
Daniele Lacamera b3f471bff1 Sanity check for aligned fields in manifest header 2020-07-13 13:43:16 +02:00
Daniele Lacamera 64134ded1f Minor fixes from code review 2020-06-18 18:43:50 +02:00
Daniele Lacamera f3f27ae2cb Fixed ChaCha20 IV usage/setting. Test/docs updated. 2020-06-18 11:12:01 +02:00
Daniele Lacamera ceb07ec315 Fixed encryption alignment and signing tool IV 2020-06-16 17:52:50 +02:00
Daniele Lacamera c9f8f6a12e Added uart driver for stm32wb 2020-06-16 17:52:50 +02:00
Daniele Lacamera 845eef7db0 Encryption: address alignment fixes, stm32wb fixes 2020-06-16 17:52:50 +02:00
Daniele Lacamera 53bf4d04db Encrypt: API design 2020-06-16 17:50:55 +02:00
Daniele Lacamera 1d24d326b1 Experimental: chacha20 encryption for external partitions 2020-06-16 17:50:55 +02:00
Daniele Lacamera aa3fb3fab0 Changed set|get_sector_flag argument to uint16_t
On some platforms with very small sector size this index could overflow
2020-05-29 08:19:18 +02:00
Daniele Lacamera d5783fe5bc Fixed alignment in magic trailer write with NVM_WRITEONCE 2020-05-29 08:19:10 +02:00
Daniele Lacamera f3d0d8fc83 PSoC6 support: updated configuration, docs added to Targets.md, revert
custom NVM_CACHE_SIZE
2020-05-20 06:53:00 -07:00
Daniele Lacamera 3db37a6b5c Updated NVM_CACHE_SIZE to match different configurations.
Progress on psoc6 HAL, fixed memory mapping and test app
2020-05-20 06:53:00 -07:00
David Garske 85b7c4d52f Xilinx Zynq fixes and cleanups. Updated Xilinx SDK instructions for EL-1 / Hypervisor support. Updated the `zynq.ld` script to use 0x4000000 and only DDR0 region. Updated the example BIF files to use EL-1. Fix for cast warnings to `ext_flash_*` API's. 2020-03-30 07:52:07 -07:00