What: /sys/class/tpm/tpmX/device/ Date: April 2005 KernelVersion: 2.6.12 Contact: linux-integrity@vger.kernel.org Description: The device/ directory under a specific TPM instance exposes the properties of that TPM chip What: /sys/class/tpm/tpmX/device/active Date: April 2006 KernelVersion: 2.6.17 Contact: linux-integrity@vger.kernel.org Description: The "active" property prints a '1' if the TPM chip is accepting commands. An inactive TPM chip still contains all the state of an active chip (Storage Root Key, NVRAM, etc), and can be visible to the OS, but will only accept a restricted set of commands. See the TPM Main Specification part 2, Structures, section 17 for more information on which commands are available. What: /sys/class/tpm/tpmX/device/cancel Date: June 2005 KernelVersion: 2.6.13 Contact: linux-integrity@vger.kernel.org Description: The "cancel" property allows you to cancel the currently pending TPM command. Writing any value to cancel will call the TPM vendor specific cancel operation. What: /sys/class/tpm/tpmX/device/caps Date: April 2005 KernelVersion: 2.6.12 Contact: linux-integrity@vger.kernel.org Description: The "caps" property contains TPM manufacturer and version info. Example output:: Manufacturer: 0x53544d20 TCG version: 1.2 Firmware version: 8.16 Manufacturer is a hex dump of the 4 byte manufacturer info space in a TPM. TCG version shows the TCG TPM spec level that the chip supports. Firmware version is that of the chip and is manufacturer specific. What: /sys/class/tpm/tpmX/device/durations Date: March 2011 KernelVersion: 3.1 Contact: linux-integrity@vger.kernel.org Description: The "durations" property shows the 3 vendor-specific values used to wait for a short, medium and long TPM command. All TPM commands are categorized as short, medium or long in execution time, so that the driver doesn't have to wait any longer than necessary before starting to poll for a result. Example output:: 3015000 4508000 180995000 [original] Here the short, medium and long durations are displayed in usecs. "[original]" indicates that the values are displayed unmodified from when they were queried from the chip. Durations can be modified in the case where a buggy chip reports them in msec instead of usec and they need to be scaled to be displayed in usecs. In this case "[adjusted]" will be displayed in place of "[original]". What: /sys/class/tpm/tpmX/device/enabled Date: April 2006 KernelVersion: 2.6.17 Contact: linux-integrity@vger.kernel.org Description: The "enabled" property prints a '1' if the TPM chip is enabled, meaning that it should be visible to the OS. This property may be visible but produce a '0' after some operation that disables the TPM. What: /sys/class/tpm/tpmX/device/owned Date: April 2006 KernelVersion: 2.6.17 Contact: linux-integrity@vger.kernel.org Description: The "owned" property produces a '1' if the TPM_TakeOwnership ordinal has been executed successfully in the chip. A '0' indicates that ownership hasn't been taken. What: /sys/class/tpm/tpmX/device/pcrs Date: April 2005 KernelVersion: 2.6.12 Contact: linux-integrity@vger.kernel.org Description: The "pcrs" property will dump the current value of all Platform Configuration Registers in the TPM. Note that since these values may be constantly changing, the output is only valid for a snapshot in time. Example output:: PCR-00: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 PCR-01: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 PCR-02: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 PCR-03: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 PCR-04: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 ... The number of PCRs and hex bytes needed to represent a PCR value will vary depending on TPM chip version. For TPM 1.1 and 1.2 chips, PCRs represent SHA-1 hashes, which are 20 bytes long. Use the "caps" property to determine TPM version. What: /sys/class/tpm/tpmX/device/pubek Date: April 2005 KernelVersion: 2.6.12 Contact: linux-integrity@vger.kernel.org Description: The "pubek" property will return the TPM's public endorsement key if possible. If the TPM has had ownership established and is version 1.2, the pubek will not be available without the owner's authorization. Since the TPM driver doesn't store any secrets, it can't authorize its own request for the pubek, making it unaccessible. The public endorsement key is gener- ated at TPM manufacture time and exists for the life of the chip. Example output:: Algorithm: 00 00 00 01 Encscheme: 00 03 Sigscheme: 00 01 Parameters: 00 00 08 00 00 00 00 02 00 00 00 00 Modulus length: 256 Modulus: B4 76 41 82 C9 20 2C 10 18 40 BC 8B E5 44 4C 6C 3A B2 92 0C A4 9B 2A 83 EB 5C 12 85 04 48 A0 B6 1E E4 81 84 CE B2 F2 45 1C F0 85 99 61 02 4D EB 86 C4 F7 F3 29 60 52 93 6B B2 E5 AB 8B A9 09 E3 D7 0E 7D CA 41 BF 43 07 65 86 3C 8C 13 7A D0 8B 82 5E 96 0B F8 1F 5F 34 06 DA A2 52 C1 A9 D5 26 0F F4 04 4B D9 3F 2D F2 AC 2F 74 64 1F 8B CD 3E 1E 30 38 6C 70 63 69 AB E2 50 DF 49 05 2E E1 8D 6F 78 44 DA 57 43 69 EE 76 6C 38 8A E9 8E A3 F0 A7 1F 3C A8 D0 12 15 3E CA 0E BD FA 24 CD 33 C6 47 AE A4 18 83 8E 22 39 75 93 86 E6 FD 66 48 B6 10 AD 94 14 65 F9 6A 17 78 BD 16 53 84 30 BF 70 E0 DC 65 FD 3C C6 B0 1E BF B9 C1 B5 6C EF B1 3A F8 28 05 83 62 26 11 DC B4 6B 5A 97 FF 32 26 B6 F7 02 71 CF 15 AE 16 DD D1 C1 8E A8 CF 9B 50 7B C3 91 FF 44 1E CF 7C 39 FE 17 77 21 20 BD CE 9B Possible values:: Algorithm: TPM_ALG_RSA (1) Encscheme: TPM_ES_RSAESPKCSv15 (2) TPM_ES_RSAESOAEP_SHA1_MGF1 (3) Sigscheme: TPM_SS_NONE (1) Parameters, a byte string of 3 u32 values: Key Length (bits): 00 00 08 00 (2048) Num primes: 00 00 00 02 (2) Exponent Size: 00 00 00 00 (0 means the default exp) Modulus Length: 256 (bytes) Modulus: The 256 byte Endorsement Key modulus What: /sys/class/tpm/tpmX/device/temp_deactivated Date: April 2006 KernelVersion: 2.6.17 Contact: linux-integrity@vger.kernel.org Description: The "temp_deactivated" property returns a '1' if the chip has been temporarily deactivated, usually until the next power cycle. Whether a warm boot (reboot) will clear a TPM chip from a temp_deactivated state is platform specific. What: /sys/class/tpm/tpmX/device/timeouts Date: March 2011 KernelVersion: 3.1 Contact: linux-integrity@vger.kernel.org Description: The "timeouts" property shows the 4 vendor-specific values for the TPM's interface spec timeouts. The use of these timeouts is defined by the TPM interface spec that the chip conforms to. Example output:: 750000 750000 750000 750000 [original] The four timeout values are shown in usecs, with a trailing "[original]" or "[adjusted]" depending on whether the values were scaled by the driver to be reported in usec from msecs. What: /sys/class/tpm/tpmX/tpm_version_major Date: October 2019 KernelVersion: 5.5 Contact: linux-integrity@vger.kernel.org Description: The "tpm_version_major" property shows the TCG spec major version implemented by the TPM device. Example output:: 2 What: /sys/class/tpm/tpmX/pcr-<H>/<N> Date: March 2021 KernelVersion: 5.12 Contact: linux-integrity@vger.kernel.org Description: produces output in compact hex representation for PCR number N from hash bank H. N is the numeric value of the PCR number and H is the crypto string representation of the hash Example output:: cat /sys/class/tpm/tpm0/pcr-sha256/7 2ED93F199692DC6788EFA6A1FE74514AB9760B2A6CEEAEF6C808C13E4ABB0D42