u-boot/test/py
Ilias Apalodimas 011f015540 test/py: Account PCR updates properly during testing
Currently we only read the pcr updates once on test_tpm2_pcr_read().
It turns out that the tpm init sequence of force_init() which consists
of:
- tpm2 init
- tpm2 startup TPM2_SU_CLEAR
- tpm2 self_test full
- tpm2 clear TPM2_RH_LOCKOUT

also counts as an update.  Running this in the console verifies the
update bump
=> tpm2 init
=> tpm2 startup TPM2_SU_CLEAR
=> tpm2 self_test full
=> tpm pcr_read 10 $loadaddr
PCR #10 content (28 known updates):
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=> tpm2 clear TPM2_RH_LOCKOUT
=> tpm pcr_read 10 $loadaddr
PCR #10 content (29 known updates):
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>

With the recent changes of replacing 'tpm2 init' with 'tpm2 autostart'
we end up always running the full init.  The reason is 'tpm init'
returns -EBUSY if the tpm is already open, while 'tpm autostart' handles
ths gracefully and continues with the initialization.  It's worth noting
that this won't affect the device functionality at all since
retriggering the startup sequence and selftests has no side effects.

Instead of relying on the initial value, reread the 'known updates'
just before updating the PCR to ensure we read the correct values
before testing

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-06-13 08:51:07 +03:00
..
tests test/py: Account PCR updates properly during testing 2023-06-13 08:51:07 +03:00
.gitignore test/py: Implement pytest infrastructure 2016-01-20 19:06:23 -07:00
conftest.py test: Support tests which can only be run manually 2022-10-31 11:02:44 -04:00
multiplexed_log.css SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
multiplexed_log.py test: Add a way to set the environment for a pytest 2023-02-14 09:43:27 -07:00
pytest.ini test/py: Allow tests to be marked single-threaded only 2022-09-12 18:06:36 -04:00
requirements.txt pytest: Update requirements to match sphinx versions 2023-04-04 12:24:29 -04:00
test.py pytest: Shorten traceback length by default 2021-10-14 19:45:07 -04:00
u_boot_console_base.py test/py: Reset the console timeout value 2022-05-26 10:27:14 -04:00
u_boot_console_exec_attach.py test: fix pylint error in u_boot_console_exec_attach.py 2021-11-26 22:02:37 +01:00
u_boot_console_sandbox.py test/py: Add a way to start sandbox without a device tree 2022-05-05 09:28:48 -04:00
u_boot_spawn.py test: fix pylint errors in u_boot_spawn.py 2021-11-26 22:02:37 +01:00
u_boot_utils.py test: Add a way to set the environment for a pytest 2023-02-14 09:43:27 -07:00