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