Skip to content

Commit ca51036

Browse files
committed
Fixed linker script for emu-app, addressed more comments
1 parent c4d49cd commit ca51036

6 files changed

Lines changed: 41 additions & 12 deletions

File tree

src/image.c

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2183,6 +2183,7 @@ int wolfBoot_verify_authenticity(struct wolfBoot_image *img)
21832183
if (SIG_OK(img)) {
21842184
uint8_t *stored_secondary_signature;
21852185
uint16_t stored_secondary_signature_size;
2186+
uint16_t expected_secondary_signature_size = 0;
21862187
/* Invalidate the signature_ok flag */
21872188
wolfBoot_image_clear_signature_ok(img);
21882189
/* Load the pubkey hint for the secondary key */
@@ -2199,10 +2200,40 @@ int wolfBoot_verify_authenticity(struct wolfBoot_image *img)
21992200
CONFIRM_MASK_VALID(image_part, key_mask);
22002201
stored_secondary_signature_size = get_header(img,
22012202
HDR_SECONDARY_SIGNATURE, &stored_secondary_signature);
2203+
if (stored_secondary_signature_size == 0 ||
2204+
stored_secondary_signature == NULL) {
2205+
return -1;
2206+
}
2207+
#if defined(WOLFBOOT_SIGN_SECONDARY_ED25519)
2208+
expected_secondary_signature_size = ED25519_IMAGE_SIGNATURE_SIZE;
2209+
#elif defined(WOLFBOOT_SIGN_SECONDARY_ED448)
2210+
expected_secondary_signature_size = ED448_IMAGE_SIGNATURE_SIZE;
2211+
#elif defined (WOLFBOOT_SIGN_SECONDARY_RSA2048) || \
2212+
defined (WOLFBOOT_SIGN_SECONDARY_RSA3072) || \
2213+
defined (WOLFBOOT_SIGN_SECONDARY_RSA4096) || \
2214+
defined (WOLFBOOT_SIGN_SECONDARY_RSA2048ENC) || \
2215+
defined (WOLFBOOT_SIGN_SECONDARY_RSA3072ENC) || \
2216+
defined (WOLFBOOT_SIGN_SECONDARY_RSA4096ENC)
2217+
expected_secondary_signature_size = RSA_IMAGE_SIGNATURE_SIZE;
2218+
#elif defined (WOLFBOOT_SIGN_SECONDARY_ECC256) || \
2219+
defined (WOLFBOOT_SIGN_SECONDARY_ECC384) || \
2220+
defined (WOLFBOOT_SIGN_SECONDARY_ECC521)
2221+
expected_secondary_signature_size = ECC_IMAGE_SIGNATURE_SIZE;
2222+
#elif defined(WOLFBOOT_SIGN_SECONDARY_LMS)
2223+
expected_secondary_signature_size = LMS_IMAGE_SIGNATURE_SIZE;
2224+
#elif defined(WOLFBOOT_SIGN_SECONDARY_XMSS)
2225+
expected_secondary_signature_size = XMSS_IMAGE_SIGNATURE_SIZE;
2226+
#elif defined(WOLFBOOT_SIGN_SECONDARY_ML_DSA)
2227+
expected_secondary_signature_size = ML_DSA_IMAGE_SIGNATURE_SIZE;
2228+
#endif
2229+
if (expected_secondary_signature_size == 0 ||
2230+
stored_secondary_signature_size !=
2231+
expected_secondary_signature_size) {
2232+
return -1;
2233+
}
22022234
wolfBoot_printf("Verification of hybrid signature\n");
22032235
wolfBoot_verify_signature_secondary(key_slot, img,
22042236
stored_secondary_signature);
2205-
(void)stored_secondary_signature_size;
22062237
wolfBoot_printf("Done.\n");
22072238
}
22082239
}

test-app/app_stm32h5.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ void boot_time_pin_on_early(void)
144144
reg = GPIOA_MODER & ~(0x03 << (pin * 2));
145145
GPIOA_MODER = reg | (1 << (pin * 2));
146146
GPIOA_PUPDR &= ~(0x03 << (pin * 2));
147-
GPIOA_BSRR |= (1 << (pin));
147+
GPIOA_BSRR = (1 << (pin));
148148
}
149149

150150
static void boot_led_off(void)

test-app/emu-test-apps/stm32u585/target.ld.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
MEMORY
2424
{
2525
FLASH (rx) : ORIGIN = @FLASH_ORIGIN@, LENGTH = 0x001FFF00
26-
RAM (rwx) : ORIGIN = 0x20040000, LENGTH = 0x00080000
26+
RAM (rwx) : ORIGIN = 0x20020000, LENGTH = 0x00020000
2727
}
2828

2929
_estack = ORIGIN(RAM) + LENGTH(RAM);

test-app/emu-test-apps/test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ get_check_config_val() {
134134
local key="$1"
135135
local val
136136
make -C "$WOLFBOOT_ROOT" include/target.h >/dev/null
137-
make -C "$WOLFBOOT_ROOT/tools/check_config" check_config CROSS_COMPILE=arm-none-eabi- RAM_CODE=0 >/dev/null
137+
make -C "$WOLFBOOT_ROOT/tools/check_config" check_config RAM_CODE=0 >/dev/null
138138
val="$("$WOLFBOOT_ROOT/tools/check_config/check_config" | grep -m1 "^${key}" | sed 's/.*: *//')"
139139
[[ -n "$val" ]] || die "missing ${key} from tools/check_config output"
140140
echo "0x$val"

tools/check_config/Makefile

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
include ../config.mk
44
include ../../options.mk
55

6-
CROSS_COMPILE?=
7-
CC?=$(CROSS_COMPILE)gcc
6+
HOSTCC?=gcc
87
CFLAGS+=-I. -I../../ -I../../include
98

109
.PHONY: run clean
@@ -14,11 +13,11 @@ run:
1413
$(Q)$(MAKE) check_config
1514

1615
check_config: check_config.o
17-
$(Q)$(CC) -o $@ $^ $(CFLAGS)
16+
$(Q)$(HOSTCC) -o $@ $^ $(CFLAGS)
1817
$(Q)./$@
1918

2019
%.o:%.c
21-
$(Q)$(CC) -c -o $@ $^ $(CFLAGS)
20+
$(Q)$(HOSTCC) -c -o $@ $^ $(CFLAGS)
2221

2322
clean:
2423
$(Q)rm -f check_config *.o

tools/scripts/boot-time.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ def dump_vals(req, offs):
3434

3535
def drain_events(req):
3636
try:
37-
evs = req.read_edge_events()
38-
except Exception:
39-
pass
37+
req.read_edge_events()
38+
except Exception as e:
39+
print(f"Warning: failed to read edge events: {e}")
4040

4141
def main():
4242

@@ -92,4 +92,3 @@ def main():
9292

9393
if __name__ == "__main__":
9494
main()
95-

0 commit comments

Comments
 (0)