On 9/18/25 09:15, Jarkko Sakkinen wrote:
On Thu, Sep 18, 2025 at 06:06:31PM +0300, Jarkko Sakkinen wrote:
On Tue, Sep 16, 2025 at 04:39:37PM -0600, Shuah Khan wrote:
On 9/16/25 07:48, Jarkko Sakkinen wrote:
Hi,
The pre-existing kselftest for TPM2 is derived works of my earlier Python
based rudimentary TPM2 stack called 'tpm2-scripts'.
In order to get more coverage and more mainintainable and extensible test
suite I'd like to eventually rewrite the tests with bash and tpm2sh, which
is a TPM2 cli written with Rust and based on my new TPM2 stack [1] [2].
Given linux-rust work, would it be acceptable to require cargo to install
a runner for kselftest?
What is runner for kselftest in this context?
I'm finishing off now 0.11 version of the tool,
which will take some time (versions before that are honestly quite bad,
don't try them) but after that this would be something I'd like to
put together.
Probably fine - how does this impact kselftest default run?
OK so this was early query: I might introduce such test as part
of series that hasa waited for long time for an update [1]. I can
use tpm2sh more easily to reproduce equivalent crypto as kernel
does and make a test that can compare the results in a meaningful
manner. I also plan to relocate tpm2sh as part of git.kernel.org
custody from Github, as its main dependency tpm2-protocol crate
already is [2].
Some motivation context, I left out on doing the aforementioned
patch set because I did not see importing TPM2 keys useful enough
application but recently I've been dealing with remote attestation
and that levels up the feature something quite useful.
I.e. so called attestation identity keys are persisted to the NVRAM of a
TPM chip and it would great if kernel could at boot time reserve
selected (in the command-line) NV indexes and wrap them up into keyring
keys. Since in UKI model command-line is signed that effectively locks
them in into controlled use only through keyring as kernel can
guard that via the device.
I could put tons more detail into this but point to open up this
complexity is that getting all cryptography right is easiest done
by reproducing it in a test in user space and comparing the
results, and Rust and the crate I did give sort of powerful
way to describe all this. And also because of the complexity
it needs to be anchroed with some kind of sufficient test.
I would say get this in a shape where you can share it for review.
We can discuss the changes. One thing to keep in mind is dependencies
for kselftest default run need to be minimal so these tests can run
on rings with minimal tool support.
thanks,
-- Shuah