Skip to content

Support for PUF in LPC55S69 - #787

Open
twcook86 wants to merge 11 commits into
wolfSSL:masterfrom
twcook86:lpc55s69_hwpuf
Open

twcook86 wants to merge 11 commits into
wolfSSL:masterfrom
twcook86:lpc55s69_hwpuf

Conversation

@twcook86

@twcook86 twcook86 commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

This adds a new example config (lpc55s69-hwpuf.config) to wolfBoot, to demonstrate and test the new lpc55s69 hw puf support added in wolfSSL/wolfssl#10584

It also adds an example of device attestation with lpc55s69-tz-psa.config

@dgarske
dgarske self-requested a review June 3, 2026 15:57
@danielinux danielinux changed the title Initial implementation Support for PUF in LMC55S69 Jun 8, 2026

@dgarske dgarske left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see this enabling the wolfCrypt HW PUF options, but I don't see anywhere it actually gets used in wolfBoot? Or even called in wolfCrypt. How's this supposed to work end to end?

@twcook86 twcook86 changed the title Support for PUF in LMC55S69 Support for PUF in LPC55S69 Jun 11, 2026
@dgarske
dgarske self-requested a review June 11, 2026 22:02
@danielinux
danielinux self-requested a review June 15, 2026 04:18

@danielinux danielinux left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This adds the useful build plumbing for LPC55 PUF support, but it does not yet connect the HW PUF to the attestation identity.

What we actually need here is the HW PUF to become the UID/UDS source for the boot attestation demo. Today the attestation stack gets its identity through hal_uds_derive_key() / hal_attestation_get_ueid() in dice.c.

This PR still needs:

  • a new LPC55 attestation config enabling PSA attestation demo options
  • LPC55 hal support that rebuilds identity from PUF exposing it via hal_uds_derive_key / get_ueid. Check existing generic software managed internal flash PUF support in STM32H5 existing support for HW PUF in mcxn.c via those API for how to implement
  • The test app showing that the PSA attestation token is actually produced from the PUF-derived identity wired inside wolfBoot.

@twcook86 twcook86 removed their assignment Jun 26, 2026
@twcook86

Copy link
Copy Markdown
Contributor Author

I see this enabling the wolfCrypt HW PUF options, but I don't see anywhere it actually gets used in wolfBoot? Or even called in wolfCrypt. How's this supposed to work end to end?

lpc55s69-hwpuf.config will compile in wolfssl test.c, which tests the hwpuf. But, you have to turn on HWPUF=1 in that config file, and point your wolfssl to wolfSSL/wolfssl#10584

@danielinux danielinux added the Later It won't be fixed in the upcoming release label Jul 2, 2026
@danielinux

Copy link
Copy Markdown
Member

Depends on wolfSSL/wolfssl#10584

@dgarske dgarske assigned twcook86 and unassigned wolfSSL-Bot Sep 17, 2026

@wolfSSL-Fenrir-bot wolfSSL-Fenrir-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fenrir Automated Review — PR #787

Scan targets checked: wolfboot-src, wolfboot-bugs

Findings: 2
2 finding(s) posted as inline comments (see file-level comments below)

This review was generated automatically by Fenrir. Reported findings require changes before merge.

Comment thread hal/lpc55s69.c Outdated
Comment thread hal/lpc55s69.c Outdated
@twcook86 twcook86 assigned wolfSSL-Bot and unassigned twcook86 and danielinux Sep 21, 2026
@danielinux danielinux removed the Later It won't be fixed in the upcoming release label Sep 21, 2026
@danielinux

danielinux commented Sep 21, 2026

Copy link
Copy Markdown
Member

This is now properly demonstrating HW PUF on LPC55S69 in DICE.

LGTM after wolfSSL/wolfssl#10584 is merged.

Clean up the single-letter UART markers (R/A/B/C/g0-3/1-6/D/E/F/G-P/L0/L/
V/W/d/e) and the hwpuf provision success/failure trace messages added
during the lpc55s69 PUF cosim debugging. The PUF+RNG models in m33mu
now work; the boot flow completes end-to-end.
Uses lpc55s69-tz-psa.config with HWPUF=1 and WOLFBOOT_HWPUF_PROVISION=1.
Requires m33mu with lpc55s69 PUF/RNG models and the 0x0C000000 secure
flash alias (wolfboot-ci >= 1.22).
@danielinux danielinux self-assigned this Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants