From: Heiko Schocher <hs@nabladev.com>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>,
Heiko Schocher <hs@nabladev.com>,
Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi@altera.com>,
Andrew Goodbody <andrew.goodbody@linaro.org>,
Anshul Dalal <anshuld@ti.com>,
Arturs Artamonovs <arturs.artamonovs@analog.com>,
Casey Connolly <casey.connolly@linaro.org>,
Dinesh Maniyam <dinesh.maniyam@altera.com>,
Greg Malysa <malysagreg@gmail.com>,
Heinrich Schuchardt <xypron.glpk@gmx.de>,
Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>,
Jaehoon Chung <jh80.chung@samsung.com>,
Jerome Forissier <jerome.forissier@linaro.org>,
"Kory Maincent (TI.com)" <kory.maincent@bootlin.com>,
Marek Vasut <marek.vasut@mailbox.org>,
Martin Schwan <m.schwan@phytec.de>,
Mattijs Korpershoek <mkorpershoek@kernel.org>,
Michael Trimarchi <michael@amarulasolutions.com>,
Michal Simek <michal.simek@amd.com>,
Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Nathan Barrett-Morrison <nathan.morrison@timesys.com>,
Oliver Gaskell <Oliver.Gaskell@analog.com>,
Paul Barker <paul.barker.ct@bp.renesas.com>,
Peng Fan <peng.fan@nxp.com>,
Peter Robinson <pbrobinson@gmail.com>,
Philippe Reynes <philippe.reynes@softathome.com>,
Quentin Schulz <quentin.schulz@cherry.de>,
Raymond Mao <raymond.mao@linaro.org>,
Raymond Mao <raymondmaoca@gmail.com>,
Sean Edmond <seanedmond@microsoft.com>,
Simon Glass <sjg@chromium.org>,
Stefan Roese <stefan.roese@mailbox.org>,
Sumit Garg <sumit.garg@kernel.org>, Tom Rini <trini@konsulko.com>,
Utsav Agarwal <utsav.agarwal@analog.com>,
Vasileios Bimpikas <vasileios.bimpikas@analog.com>,
Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>,
briansune <briansune@gmail.com>
Subject: [PATCH v3 0/6] Add support for SM3 secure hash
Date: Tue, 18 Nov 2025 05:30:36 +0100 [thread overview]
Message-ID: <20251118043042.27726-1-hs@nabladev.com> (raw)
Add SM3 secure hash, as specified by OSCCA GM/T 0004-2012 SM3 and described
at https://datatracker.ietf.org/doc/html/draft-sca-cfrg-sm3-02
TPMv2 defines hash algo sm3_256, which is currently
not supported and prevented TPMv2 chip with newer
firmware to work with U-Boot. Seen this on a ST33TPHF2XI2C
u-boot=> tpm2 init
u-boot=> tpm2 autostart
tpm2_get_pcr_info: too many pcrs: 5
Error: -90
u-boot=>
Implement sm3 hash, so we can fix this problem.
Azure build:
https://dev.azure.com/hs0298/hs/_build/results?buildId=194&view=results
Changes in v3:
Added Reviewed-by from Ilias
rebased series to
commit: 69cc92d6869 ("Merge tag 'efi-2026-01-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi")
add comments from Ilias
- use sizeof(*sctx) instead of sizeof(struct sm3_context)
- use output[] instead of output[SM3_DIGEST_SIZE] comment from Ilias
This leaded to CI error:
+lib/sm3.c:241:50: error: argument 2 of type ‘uint8_t[]’ {aka ‘unsigned char[]’} with mismatched bound [-Werror=array-parameter=]
+ 241 | void sm3_final(struct sm3_context *sctx, uint8_t output[])
+ | ~~~~~~~~^~~~~~~~
see:
https://dev.azure.com/hs0298/hs/_build/results?buildId=192&view=logs&j=182673a4-17b9-5c0c-69ad-98f742450579&t=34b689f8-3e29-5ffe-50ea-32bfe99f47c7&l=334
so made this change back to v2 state of the series, to have the same
arguments as the other hashes in lib/
- seperate linux and U-Boot parts into 2 commits
New in version 3 as Ilias recommended to split linux
and U-boot changes.
use CMD_TEST instead of DM_TEST, as Heinrich confirmed
add comment from Ilias
- add SM3 support in tcg2_hash_pe_image()
Added Reviewed-by from Ilias
Changes in v2:
rebase to
6b27b688694: ("Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh")
add Ilias to Series-cc
add sm3_hash to header file, so we can use it.
add comments from Ilias
- use ARRAY_SIZE(hash_algo_list) instead of a fix number
in tpm2_get_pcr_info() for the count of supported hashes
in U-Boot.
- add SM3 hash in tpm_tcg2
Added Reviewed-by tag from Heinrich
Heiko Schocher (6):
lib: Import rol32 function from Linux
lib: import sm3 256 hash parts from linux
lib: sm3: implement U-Boot parts
test: cmd: hash: add unit test for sm3_256
tpm2: add sm3 256 hash support
test: cmd: fix a typo in md5 test
MAINTAINERS | 7 +
boot/Kconfig | 1 +
cmd/Kconfig | 15 ++
cmd/Makefile | 1 +
cmd/sm3sum.c | 48 ++++++
cmd/tpm-v2.c | 1 +
common/hash.c | 42 ++++-
include/linux/bitops.h | 11 ++
include/tpm-v2.h | 12 ++
include/u-boot/sm3.h | 35 +++++
lib/Kconfig | 7 +
lib/Makefile | 1 +
lib/efi_loader/efi_tcg2.c | 3 +
lib/sm3.c | 312 ++++++++++++++++++++++++++++++++++++++
lib/tpm-v2.c | 4 +-
lib/tpm_tcg2.c | 9 ++
test/cmd/hash.c | 49 +++++-
17 files changed, 554 insertions(+), 4 deletions(-)
create mode 100644 cmd/sm3sum.c
create mode 100644 include/u-boot/sm3.h
create mode 100644 lib/sm3.c
--
2.20.1
base-commit: 69cc92d6869b8ff4591e5b8850872da34934bab9
next reply other threads:[~2025-11-18 8:30 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-18 4:30 Heiko Schocher [this message]
2025-11-18 4:30 ` [PATCH v3 1/6] lib: Import rol32 function from Linux Heiko Schocher
2025-11-18 4:30 ` [PATCH v3 2/6] lib: import sm3 256 hash parts from linux Heiko Schocher
2025-11-19 11:02 ` Ilias Apalodimas
2025-11-18 4:30 ` [PATCH v3 3/6] lib: sm3: implement U-Boot parts Heiko Schocher
2025-11-18 10:30 ` Quentin Schulz
2025-11-19 7:13 ` Heiko Schocher
2025-11-18 4:30 ` [PATCH v3 4/6] test: cmd: hash: add unit test for sm3_256 Heiko Schocher
2025-11-18 4:30 ` [PATCH v3 5/6] tpm2: add sm3 256 hash support Heiko Schocher
2025-11-18 4:30 ` [PATCH v3 6/6] test: cmd: fix a typo in md5 test Heiko Schocher
2025-11-18 10:06 ` [PATCH v3 0/6] Add support for SM3 secure hash Ilias Apalodimas
2025-11-18 15:11 ` Raymond Mao
2025-11-19 5:40 ` Heiko Schocher
2025-11-19 7:18 ` Ilias Apalodimas
2025-12-04 19:31 ` Tom Rini
2025-12-05 5:03 ` Heiko Schocher
2025-12-05 7:24 ` Ilias Apalodimas
2025-12-05 8:02 ` Heiko Schocher
2025-12-05 14:11 ` Tom Rini
2025-12-08 9:07 ` Ilias Apalodimas
2025-12-08 9:26 ` Heiko Schocher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251118043042.27726-1-hs@nabladev.com \
--to=hs@nabladev.com \
--cc=Oliver.Gaskell@analog.com \
--cc=alif.zakuan.yuslaimi@altera.com \
--cc=andrew.goodbody@linaro.org \
--cc=anshuld@ti.com \
--cc=arturs.artamonovs@analog.com \
--cc=briansune@gmail.com \
--cc=casey.connolly@linaro.org \
--cc=dinesh.maniyam@altera.com \
--cc=ibai.erkiaga-elorza@amd.com \
--cc=ilias.apalodimas@linaro.org \
--cc=jerome.forissier@linaro.org \
--cc=jh80.chung@samsung.com \
--cc=kory.maincent@bootlin.com \
--cc=m.schwan@phytec.de \
--cc=malysagreg@gmail.com \
--cc=marek.vasut@mailbox.org \
--cc=michael@amarulasolutions.com \
--cc=michal.simek@amd.com \
--cc=mikhail.kshevetskiy@iopsys.eu \
--cc=miquel.raynal@bootlin.com \
--cc=mkorpershoek@kernel.org \
--cc=nathan.morrison@timesys.com \
--cc=paul.barker.ct@bp.renesas.com \
--cc=pbrobinson@gmail.com \
--cc=peng.fan@nxp.com \
--cc=philippe.reynes@softathome.com \
--cc=quentin.schulz@cherry.de \
--cc=raymond.mao@linaro.org \
--cc=raymondmaoca@gmail.com \
--cc=seanedmond@microsoft.com \
--cc=sjg@chromium.org \
--cc=stefan.roese@mailbox.org \
--cc=sumit.garg@kernel.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=utsav.agarwal@analog.com \
--cc=vasileios.bimpikas@analog.com \
--cc=venkatesh.abbarapu@amd.com \
--cc=xypron.glpk@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.