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
