Skip to content

Support hardware PUF on lpc55s69#10584

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

Support hardware PUF on lpc55s69#10584
twcook86 wants to merge 2 commits into
wolfSSL:masterfrom
twcook86:lpc55s69_hwpuf

Conversation

@twcook86

@twcook86 twcook86 commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

This adds hardware puf support to wolfCrypt...

  1. Provides a new HWPUF api (WOLFSSL_HWPUF), based on crypto callbacks, to support a common set of puf features across multiple chips
  2. Supports lpc55s69 hw puf device (WOLFSSL_NXP_HWPUF)

An effort has been made to be as compatible with the sw puf (WOLFSSL_PUF) implementation as possible, but the two fundamentally diverge in certain respects.

Not all features of the hw puf are supported yet. Specifically, this initial implementation supports...

  1. keys of size 16, 24, 32 bytes for use with aes
  2. ability to pass keys directly on the hw bus to the aes engine, thus never being exposed in ram

Testing

Tested with new test functionality added to wolfcrypt/test/test.c

Checklist

  • added tests
  • updated/added doxygen
  • updated appropriate READMEs
  • Updated manual and documentation

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

MemBrowse Memory Report

gcc-arm-cortex-m4

  • FLASH: .rodata.CSWTCH.1 +32 B, .rodata.str1.1 +142 B (+0.1%, 199,068 B / 262,144 B, total: 76% used)

gcc-arm-cortex-m4-crypto-only

  • FLASH: .rodata.CSWTCH.1 +32 B, .rodata.str1.1 +142 B (+0.1%, 173,788 B / 262,144 B, total: 66% used)

gcc-arm-cortex-m4-openssl-compat

  • FLASH: .rodata +176 B (+0.0%, 767,012 B / 1,048,576 B, total: 73% used)

gcc-arm-cortex-m4-pkcs7

  • FLASH: .rodata.CSWTCH.1 +32 B, .rodata.str1.1 +142 B (+0.1%, 211,487 B / 262,144 B, total: 81% used)

gcc-arm-cortex-m4-pq

  • FLASH: .rodata +168 B (+0.1%, 277,760 B / 1,048,576 B, total: 26% used)

gcc-arm-cortex-m4-rsa-only

  • FLASH: .rodata +168 B (+0.1%, 323,168 B / 1,048,576 B, total: 31% used)

gcc-arm-cortex-m4-tls13

  • FLASH: .rodata.CSWTCH.1 +32 B, .rodata.str1.1 +142 B (+0.1%, 234,702 B / 262,144 B, total: 90% used)

gcc-arm-cortex-m7

  • FLASH: .rodata.CSWTCH.1 +32 B, .rodata.str1.1 +142 B (+0.1%, 199,068 B / 262,144 B, total: 76% used)

gcc-arm-cortex-m7-pq

  • FLASH: .rodata +168 B (+0.1%, 278,336 B / 1,048,576 B, total: 27% used)

gcc-arm-cortex-m7-tls13

  • FLASH: .rodata.CSWTCH.1 +32 B, .rodata.str1.1 +142 B (+0.1%, 234,702 B / 262,144 B, total: 90% used)

stm32-sim-stm32h753

@dgarske dgarske self-requested a review June 3, 2026 15:58
Comment thread wolfcrypt/src/puf.c Outdated
@twcook86 twcook86 changed the title Initial implementation Support hardware PUF on lpc55s69 Jun 11, 2026
@dgarske dgarske self-requested a review June 11, 2026 22:02
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.

3 participants