linux-integrity.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* tpm2_protocol / tpm2sh 0.6.1
@ 2025-08-17 20:42 Jarkko Sakkinen
  0 siblings, 0 replies; only message in thread
From: Jarkko Sakkinen @ 2025-08-17 20:42 UTC (permalink / raw)
  To: tpm2, linux-integrity, rust-for-linux

I tagged 0.6.0 release as I reached an important milestone i.e., now
Box<dyn TpmObject> is doable meaning that tpm2_protocol is capable of
dynamically interpreting on-wire TPM2 protocol traffic. It's proved by
this test:

https://github.com/puavo-org/tpm2_library/blob/main/tpm2sh/tests/dynamic.rs

This matters because it is the essence of being able to work as part
of driver, TPM emulator/chip or resource manager implementation.

This has required really going through the whole implementation and
deocoupling step by step the implementation from lifetime parameters
and finally implementing 'core::any::Any'.

Lot's of bugs have also been fixed in the protocol crate, tpm2sh crypto
module etc. The TCG specification coverage has increased and it is only
few dozen command/responses away from full TCG TPM 2.0 spec version 184
coverage. Given the efficient macro system this is coverage shortage
is mostly due lack of being more interested on more important matters.

My demo for this version is the cool pretty printer in tpm2sh :-)

~/work/github.com/jarkkojs/tpm2_library main
❯ sudo RUST_LOG=trace target/debug/tpm2sh --log-format pretty start-session --session-type policy  > /dev/null
2025-08-17T20:42:03.866947Z DEBUG cli::device: opening device_path=/dev/tpmrm0
⠋ Waiting for TPM...                                                                                                                                                   2025-08-17T20:42:03.867174Z TRACE cli::device: TPM_CC_StartAuthSession
2025-08-17T20:42:03.867205Z TRACE cli::device:   nonceCaller: (size=16) 0ce148fdde03544afc25024c9498ae48
2025-08-17T20:42:03.867212Z TRACE cli::device:   encryptedSalt: (size=0) 
2025-08-17T20:42:03.867217Z TRACE cli::device:   sessionType: Policy
2025-08-17T20:42:03.867221Z TRACE cli::device:   symmetric: TPM_ALG_NULL
2025-08-17T20:42:03.867225Z TRACE cli::device:   authHash: TPM_ALG_SHA256
⠏ ✔ TPM operation complete.                                                                                                                                            2025-08-17T20:42:03.899508Z TRACE cli::device: Response (rc=TPM_RC_SUCCESS)
2025-08-17T20:42:03.899563Z TRACE cli::device:   sessionHandle: 0x03000000
2025-08-17T20:42:03.899603Z TRACE cli::device:   nonceTpm: (size=16) 77ad71b0272d4d4dee6eee843e84bde1

~/work/github.com/jarkkojs/tpm2_library main
❯ sudo RUST_LOG=trace target/debug/tpm2sh --log-format pretty algorithms > /dev/null
2025-08-17T20:42:06.423983Z DEBUG cli::device: opening device_path=/dev/tpmrm0
⠋ Waiting for TPM...                                                                                                                                                   2025-08-17T20:42:06.424174Z TRACE cli::device: TPM_CC_GetCapability
2025-08-17T20:42:06.424185Z TRACE cli::device:   cap: TPM_CAP_ALGS
2025-08-17T20:42:06.424193Z TRACE cli::device:   property: 0x00000000
2025-08-17T20:42:06.424202Z TRACE cli::device:   propertyCount: 0x00000080
⠏ ✔ TPM operation complete.                                                                                                                                            2025-08-17T20:42:06.428085Z TRACE cli::device: Response (rc=TPM_RC_SUCCESS)
2025-08-17T20:42:06.428097Z TRACE cli::device:   moreData: TpmiYesNo(false)
2025-08-17T20:42:06.428105Z TRACE cli::device:   capabilityData:
2025-08-17T20:42:06.428111Z TRACE cli::device:     capability: TPM_CAP_ALGS
2025-08-17T20:42:06.428118Z TRACE cli::device:     data: (count=19)
2025-08-17T20:42:06.428127Z TRACE cli::device:       alg: TPM_ALG_RSA
2025-08-17T20:42:06.428147Z TRACE cli::device:       algProperties: ASYMMETRIC | OBJECT (0x9)
2025-08-17T20:42:06.428153Z TRACE cli::device:       alg: TPM_ALG_SHA1
2025-08-17T20:42:06.428160Z TRACE cli::device:       algProperties: HASH (0x4)
2025-08-17T20:42:06.428165Z TRACE cli::device:       alg: TPM_ALG_HMAC
2025-08-17T20:42:06.428172Z TRACE cli::device:       algProperties: HASH | SIGNING (0x104)
2025-08-17T20:42:06.428176Z TRACE cli::device:       alg: TPM_ALG_AES
2025-08-17T20:42:06.428184Z TRACE cli::device:       algProperties: SYMMETRIC (0x2)
2025-08-17T20:42:06.428189Z TRACE cli::device:       alg: TPM_ALG_KEYEDHASH
2025-08-17T20:42:06.428196Z TRACE cli::device:       algProperties: HASH | OBJECT | SIGNING | ENCRYPTING (0x30c)
2025-08-17T20:42:06.428204Z TRACE cli::device:       alg: TPM_ALG_XOR
2025-08-17T20:42:06.428210Z TRACE cli::device:       algProperties: SYMMETRIC | HASH (0x6)
2025-08-17T20:42:06.428215Z TRACE cli::device:       alg: TPM_ALG_SHA256
2025-08-17T20:42:06.428223Z TRACE cli::device:       algProperties: HASH (0x4)
2025-08-17T20:42:06.428229Z TRACE cli::device:       alg: TPM_ALG_RSASSA
2025-08-17T20:42:06.428236Z TRACE cli::device:       algProperties: ASYMMETRIC | SIGNING (0x101)
2025-08-17T20:42:06.428242Z TRACE cli::device:       alg: TPM_ALG_RSAES
2025-08-17T20:42:06.428249Z TRACE cli::device:       algProperties: ASYMMETRIC | ENCRYPTING (0x201)
2025-08-17T20:42:06.428255Z TRACE cli::device:       alg: TPM_ALG_RSAPSS
2025-08-17T20:42:06.428262Z TRACE cli::device:       algProperties: ASYMMETRIC | SIGNING (0x101)
2025-08-17T20:42:06.428267Z TRACE cli::device:       alg: TPM_ALG_OAEP
2025-08-17T20:42:06.428275Z TRACE cli::device:       algProperties: ASYMMETRIC | ENCRYPTING (0x201)
2025-08-17T20:42:06.428280Z TRACE cli::device:       alg: TPM_ALG_ECDSA
2025-08-17T20:42:06.428287Z TRACE cli::device:       algProperties: ASYMMETRIC | SIGNING | METHOD (0x501)
2025-08-17T20:42:06.428293Z TRACE cli::device:       alg: TPM_ALG_ECDH
2025-08-17T20:42:06.428300Z TRACE cli::device:       algProperties: ASYMMETRIC | METHOD (0x401)
2025-08-17T20:42:06.428305Z TRACE cli::device:       alg: TPM_ALG_ECDAA
2025-08-17T20:42:06.428312Z TRACE cli::device:       algProperties: ASYMMETRIC | SIGNING (0x101)
2025-08-17T20:42:06.428318Z TRACE cli::device:       alg: TPM_ALG_KDF1_SP800_56A
2025-08-17T20:42:06.428325Z TRACE cli::device:       algProperties: HASH | METHOD (0x404)
2025-08-17T20:42:06.428330Z TRACE cli::device:       alg: TPM_ALG_KDF1_SP800_108
2025-08-17T20:42:06.428337Z TRACE cli::device:       algProperties: HASH | METHOD (0x404)
2025-08-17T20:42:06.428343Z TRACE cli::device:       alg: TPM_ALG_ECC
2025-08-17T20:42:06.428350Z TRACE cli::device:       algProperties: ASYMMETRIC | OBJECT (0x9)
2025-08-17T20:42:06.428355Z TRACE cli::device:       alg: TPM_ALG_SYMCIPHER
2025-08-17T20:42:06.428362Z TRACE cli::device:       algProperties: OBJECT (0x8)
2025-08-17T20:42:06.428368Z TRACE cli::device:       alg: TPM_ALG_CFB
2025-08-17T20:42:06.428375Z TRACE cli::device:       algProperties: SYMMETRIC | ENCRYPTING (0x202)

BR, Jarkko

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-08-17 20:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-17 20:42 tpm2_protocol / tpm2sh 0.6.1 Jarkko Sakkinen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).