2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: April 2005
|
|
|
|
KernelVersion: 2.6.12
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
Description: The device/ directory under a specific TPM instance exposes
|
|
|
|
the properties of that TPM chip
|
|
|
|
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/active
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: April 2006
|
|
|
|
KernelVersion: 2.6.17
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
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.
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/cancel
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: June 2005
|
|
|
|
KernelVersion: 2.6.13
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
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.
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/caps
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: April 2005
|
|
|
|
KernelVersion: 2.6.12
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
Description: The "caps" property contains TPM manufacturer and version info.
|
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
Example output::
|
2012-11-08 07:00:45 +08:00
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
Manufacturer: 0x53544d20
|
|
|
|
TCG version: 1.2
|
|
|
|
Firmware version: 8.16
|
2012-11-08 07:00:45 +08:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/durations
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: March 2011
|
|
|
|
KernelVersion: 3.1
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
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.
|
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
Example output::
|
2012-11-08 07:00:45 +08:00
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
3015000 4508000 180995000 [original]
|
2012-11-08 07:00:45 +08:00
|
|
|
|
|
|
|
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]".
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/enabled
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: April 2006
|
|
|
|
KernelVersion: 2.6.17
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
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.
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/owned
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: April 2006
|
|
|
|
KernelVersion: 2.6.17
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
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.
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/pcrs
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: April 2005
|
|
|
|
KernelVersion: 2.6.12
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
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.
|
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
Example output::
|
2012-11-08 07:00:45 +08:00
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
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
|
|
|
|
...
|
2012-11-08 07:00:45 +08:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/pubek
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: April 2005
|
|
|
|
KernelVersion: 2.6.12
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
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-
|
2015-10-13 22:40:34 +08:00
|
|
|
ated at TPM manufacture time and exists for the life of the
|
2012-11-08 07:00:45 +08:00
|
|
|
chip.
|
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
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)
|
2012-11-08 07:00:45 +08:00
|
|
|
TPM_ES_RSAESOAEP_SHA1_MGF1 (3)
|
2020-10-30 15:40:38 +08:00
|
|
|
Sigscheme: TPM_SS_NONE (1)
|
|
|
|
Parameters, a byte string of 3 u32 values:
|
2012-11-08 07:00:45 +08:00
|
|
|
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)
|
2020-10-30 15:40:38 +08:00
|
|
|
Modulus Length: 256 (bytes)
|
|
|
|
Modulus: The 256 byte Endorsement Key modulus
|
2012-11-08 07:00:45 +08:00
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/temp_deactivated
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: April 2006
|
|
|
|
KernelVersion: 2.6.17
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
Description: The "temp_deactivated" property returns a '1' if the chip has
|
2015-10-13 22:40:34 +08:00
|
|
|
been temporarily deactivated, usually until the next power
|
2012-11-08 07:00:45 +08:00
|
|
|
cycle. Whether a warm boot (reboot) will clear a TPM chip
|
|
|
|
from a temp_deactivated state is platform specific.
|
|
|
|
|
2014-12-13 03:46:37 +08:00
|
|
|
What: /sys/class/tpm/tpmX/device/timeouts
|
2012-11-08 07:00:45 +08:00
|
|
|
Date: March 2011
|
|
|
|
KernelVersion: 3.1
|
2019-10-26 03:36:28 +08:00
|
|
|
Contact: linux-integrity@vger.kernel.org
|
2012-11-08 07:00:45 +08:00
|
|
|
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.
|
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
Example output::
|
2012-11-08 07:00:45 +08:00
|
|
|
|
2020-10-30 15:40:38 +08:00
|
|
|
750000 750000 750000 750000 [original]
|
2012-11-08 07:00:45 +08:00
|
|
|
|
|
|
|
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.
|
2019-10-31 06:58:43 +08:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2020-10-30 15:40:50 +08:00
|
|
|
Example output::
|
2019-10-31 06:58:43 +08:00
|
|
|
|
2020-10-30 15:40:50 +08:00
|
|
|
2
|
2021-01-14 07:26:34 +08:00
|
|
|
|
2021-09-16 16:59:32 +08:00
|
|
|
What: /sys/class/tpm/tpmX/pcr-<H>/<N>
|
2021-01-14 07:26:34 +08:00
|
|
|
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
|