Skip to contentSkip to conversation

tpm2-protocol 0.10.0 / tpm2sh 0.10.0

DISCUSSION Jarkko Sakkinen 1 participant 1 message Aug 22, 2025

Subsystems (2)
lore
Share & tools
lore

Jarkko Sakkinen

author maintainer
#0 lore raw

tpm2-protocol and tpm2sh has been split:

- tpm2-protocol is spec complete since the last release, and this the first release of gradual improvements. I've contacted TPM-RS project and going to participate to their meeting on next Monday. The idea I'm selling here is to have a shared project for protocol, which tracks the specification, and associated project can then import the source code aligned with their own release cycle.

- tpm2sh is my kernel hacking tool that will gain features and improvements with no strings attached to anything. I said to Joe Richey (Google) that taking, relicensing and further contributing some of its more interesting features from its GPL3 code base is not out of question (protocol is Apache/MIT). One feature in particular under discussion is pretty printer, which probably would make sense also for kernel.

"Where's ******* driver!?" you may ask.

Well, I think this needs to be approached like I do in order to get some day driver that can do more than the pre-existing C driver, and not just implement a random Rust driver.

This was also my main concern with kernel's Rust code i.e., that any possible driver would be implemented from infeasible starting position.

tpm2-protocol
=============

Git: https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/tpm2-protocol.git
Cargo: https://crates.io/crates/tpm2-protocol

tag 0.10.0

Tagger: Jarkko Sakkinen <[email protected]>
Date:   Fri Aug 22 04:45:40 2025 +0300

Release 0.10.0

- chore: refactor into standalone crate
- refactor(tpm2_protocol): reduce defaults
- refactor(tpm2_protocol): merge TpmuSigScheme and TpmuAsymScheme
- refactor(tpm2_protocol): decouple command building
- fix(tpm2_protocol): trailing data
- refactor(tpm2_protocol): remove MAC definitions
- tests(tpm2_protocol)
- fix(tpm2-protocol): TpmuAttest error code
- tests: migrate dyn trait test to tpm2_protocol
- fix(tpm2_protocol): correct serialization logic
- refactor: InternalError -> Unreachable
- tests(tpm2_protocol): fix compilation errors
- fix(tpm2_protocol): StartAuthSession response
- refactor!(tpm2_protocol): drop tpm_response! and TpmParameters
- fix!(tpm2_protocol): DO NOT export submodules
- refactor(tpm2_protocol): adjust buffer debug output
- fix(tpm2_protocol): TpmRc::base() return code -----BEGIN PGP SIGNATURE-----

iHUEABYIAB0WIQRE6pSOnaBC00OEHEIaerohdGur0gUCaKfLxAAKCRAaerohdGur 0nY/AP9/4HMLP+wY0h5tQSnbzmIajNzzBAoWIA7nA8dIkcQ8RQEAxhK/MrKKT7iQ j2rEvvKdgWPdHtPhZWzUahuZnW6LIgA=
=RfaI
-----END PGP SIGNATURE-----

tpm2sh
======

tag 0.10.0

Tagger: Jarkko Sakkinen <[email protected]>
Date:   Fri Aug 22 04:59:10 2025 +0300

Release 0.10.0

- build: Cargo.lock
- chore: refactor into standalone crate
- build: bump version to 0.10.0
- refactor!(tpm2sh): rationalize command-line
- refactor(tpm2sh): improve error messages
- refactor(tpm2sh): consolidate option formatting
- refactor(tpm2sh): helper for transient rollback
- refactor(tpm2_protocol): decouple command building
- fix(tpm2sh): fix error propagation
- feat(tpm2sh): prefix for literal strings
- tests: migrate dyn trait test to tpm2_protocol
- fix(tpm2sh): don't hang convert on idle stdin
- refactor(tpm2sh): simplify error reporting
- fix(tpm2sh): adapt to protocol API changes
- refactor(tpm2sh): simplify error reporting
- fix(tpm2sh): correct RSA public exponent to 65537
- refactor!(tpm2_protocol): drop tpm_response! and TpmParameters
- fix(tpm2sh): don't open device unless required -----BEGIN PGP SIGNATURE-----

iHUEABYIAB0WIQRE6pSOnaBC00OEHEIaerohdGur0gUCaKfO7gAKCRAaerohdGur 0oEhAQDkeOror8uNMVcIIvsQ81FqxHMfh2kFCNg8YO7SeuKXjAD/Q9sOiarXtxm5 kxnhSS7evAC8cEHb8bppNSluP3egmA4=
=IEED
-----END PGP SIGNATURE-----

BR, Jarkko