man 1 tpm2_pcrread

tpm2_pcrread(1)             General Commands Manual            tpm2_pcrread(1)

NAME
       tpm2_pcrread(1) - List PCR values.

SYNOPSIS
       tpm2_pcrread [OPTIONS] PCR_LIST_OR_ALG

DESCRIPTION
       tpm2_pcrread(1)   -   Displays  PCR  values.   Without  any  arguments,
       tpm2_pcrread(1) outputs all PCRs and their hash  banks.   One  can  use
       specify  the  hash algorithm or a pcr list as an argument to filter the
       output.

       To only output PCR banks with a given algorithm,  specify  the  hashing
       algorithm  as  the  argument.  Algorithms should follow the "formatting
       standards", see section  "Algorithm  Specifiers".   Also,  see  section
       "Supported Hash Algorithms" for a list of supported hash algorithms.

       To output a list of PCR banks (sha1, sha256, etc) and ids (0, 1, 2 etc)
       specify a PCR selection list as the argument as specified  via  section
       "PCR Bank Specifiers".

       Also read NOTES section below.

       Output  is written in a YAML format to stdout, with each algorithm fol-
       lowed by a PCR index and its value.  As a simple  example  assume  just
       sha1 and sha256 support and only 1 PCR.  The output would be:

              $ tpm2_pcrread sha1:0+sha256:0
              sha1 :
                0  : 0000000000000000000000000000000000000003
              sha256 :
                0  : 0000000000000000000000000000000000000000000000000000000000000003

OPTIONS
       o -o, --output=FILE:

         The output file to write the PCR values in binary format, optional.

       o -F, --pcrs_format=FORMAT:

         Format  selection  for the binary blob in the PCR output file.  `val-
         ues' will output a binary blob of the PCR values.  `serialized'  will
         output a binary blob of the PCR values in the form of serialized data
         structure in little endian format.  Optional.  Default is `values'.

COMMON OPTIONS
       This collection of options are common to many programs and provide  in-
       formation that many users may expect.

       o -h,  --help=[man|no-man]:  Display the tools manpage.  By default, it
         attempts to invoke the manpager for the  tool,  however,  on  failure
         will  output  a short tool summary.  This is the same behavior if the
         "man" option argument is specified, however if explicit "man" is  re-
         quested,  the  tool  will  provide errors from man on stderr.  If the
         "no-man" option if specified, or the manpager fails,  the  short  op-
         tions will be output to stdout.

         To  successfully use the manpages feature requires the manpages to be
         installed or on MANPATH, See man(1) for more details.

       o -v, --version: Display version information for this  tool,  supported
         tctis and exit.

       o -V,  --verbose:  Increase the information that the tool prints to the
         console during its execution.  When using this option  the  file  and
         line number are printed.

       o -Q, --quiet: Silence normal tool output to stdout.

       o -Z, --enable-errata: Enable the application of errata fixups.  Useful
         if an errata fixup needs to be applied to commands sent to  the  TPM.
         Defining the environment TPM2TOOLS_ENABLE_ERRATA is equivalent.

TCTI Configuration
       The  TCTI  or  "Transmission  Interface" is the communication mechanism
       with the TPM.  TCTIs can be changed for communication with TPMs  across
       different mediums.

       To control the TCTI, the tools respect:

       1. The command line option -T or --tcti

       2. The environment variable: TPM2TOOLS_TCTI.

       Note:  The  command  line option always overrides the environment vari-
       able.

       The current known TCTIs are:

       o tabrmd     -     The     resource     manager,     called      tabrmd
         (https://github.com/tpm2-software/tpm2-abrmd).   Note that tabrmd and
         abrmd as a tcti name are synonymous.

       o mssim - Typically used for communicating to the TPM software  simula-
         tor.

       o device - Used when talking directly to a TPM device file.

       o none  - Do not initalize a connection with the TPM.  Some tools allow
         for off-tpm options and thus support not using a TCTI.  Tools that do
         not  support  it  will error when attempted to be used without a TCTI
         connection.  Does not support ANY options and MUST  BE  presented  as
         the exact text of "none".

       The  arguments  to  either  the  command line option or the environment
       variable are in the form:

       <tcti-name>:<tcti-option-config> 

       Specifying an empty string for  either  the  <tcti-name>  or  <tcti-op-
       tion-config> results in the default being used for that portion respec-
       tively.

   TCTI Defaults
       When a TCTI is not specified, the default TCTI is  searched  for  using
       dlopen(3)  semantics.   The  tools  will  search for tabrmd, device and
       mssim TCTIs IN THAT ORDER and USE THE FIRST ONE FOUND.  You  can  query
       what TCTI will be chosen as the default by using the -v option to print
       the version information.  The "default-tcti" key-value pair will  indi-
       cate which of the aforementioned TCTIs is the default.

   Custom TCTIs
       Any TCTI that implements the dynamic TCTI interface can be loaded.  The
       tools internally use dlopen(3), and the raw tcti-name value is used for
       the lookup.  Thus, this could be a path to the shared library, or a li-
       brary name as understood by dlopen(3) semantics.

TCTI OPTIONS
       This collection of options are used to configure the various known TCTI
       modules available:

       o device: For the device TCTI, the TPM character device file for use by
         the device TCTI can be specified.  The default is /dev/tpm0.

         Example:   -T   device:/dev/tpm0   or   export    TPM2TOOLS_TCTI="de-
         vice:/dev/tpm0"

       o mssim:  For  the  mssim  TCTI, the domain name or IP address and port
         number used by the simulator  can  be  specified.   The  default  are
         127.0.0.1 and 2321.

         Example:  -T  mssim:host=localhost,port=2321  or export TPM2TOOLS_TC-
         TI="mssim:host=localhost,port=2321"

       o abrmd: For the abrmd TCTI, the configuration string format is  a  se-
         ries  of  simple  key value pairs separated by a `,' character.  Each
         key and value string are separated by a `=' character.

         o TCTI abrmd supports two keys:

           1. `bus_name' : The name of  the  tabrmd  service  on  the  bus  (a
              string).

           2. `bus_type' : The type of the dbus instance (a string) limited to
              `session' and `system'.

         Specify the tabrmd tcti name and a config string of  bus_name=com.ex-
         ample.FooBar:

                \--tcti=tabrmd:bus_name=com.example.FooBar

         Specify the default (abrmd) tcti and a config string of bus_type=ses-
         sion:

                \--tcti:bus_type=session

         NOTE: abrmd and tabrmd are synonymous.

       PCR bank specifiers (common/pcr.md)

Supported Hash Algorithms
       Supported hash algorithms are:

       o 0x4 or sha1 for TPM_ALG_SHA1

       o 0xB or sha256 for TPM_ALG_SHA256 (default)

       o 0xC or sha384 for TPM_ALG_SHA384

       o 0xD or sha512 for TPM_ALG_SHA512

       o 0x12 or sm3_256 for TPM_ALG_SM3_256

       NOTE: Your TPM may not support all algorithms.

Algorithm Specifiers
       Options that take algorithms support "nice-names".

       There are two major algorithm specification string classes, simple  and
       complex.  Only certain algorithms will be accepted by the TPM, based on
       usage and conditions.

   Simple specifiers
       These are strings with no additional specification data.  When creating
       objects,  non-specified  portions of an object are assumed to defaults.
       You can find the list of known "Simple Specifiers Below".

   Asymmetric
       o rsa

       o ecc

   Symmetric
       o aes

       o camellia

   Hashing Algorithms
       o sha1

       o sha256

       o sha384

       o sha512

       o sm3_256

       o sha3_256

       o sha3_384

       o sha3_512

   Keyed Hash
       o hmac

       o xor

   Signing Schemes
       o rsassa

       o rsapss

       o ecdsa

       o ecdaa

       o ecschnorr

   Asymmetric Encryption Schemes
       o oaep

       o rsaes

       o ecdh

   Modes
       o ctr

       o ofb

       o cbc

       o cfb

       o ecb

   Misc
       o null

   Complex Specifiers
       Objects, when specified for creation by the TPM,  have  numerous  algo-
       rithms  to  populate  in the public data.  Things like type, scheme and
       asymmetric details, key size, etc.  Below is  the  general  format  for
       specifying this data: <type>:<scheme>:<symmetric-details> 

   Type Specifiers
       This  portion  of the complex algorithm specifier is required.  The re-
       maining scheme and symmetric details will default  based  on  the  type
       specified and the type of the object being created.

       o aes - Default AES: aes128

       o aes128<mode>  - 128 bit AES with optional mode (ctr|ofb|cbc|cfb|ecb).
         If mode is not specified, defaults to null.

       o aes192<mode> - Same as aes128<mode>, except for a 192 bit key size.

       o aes256<mode> - Same as aes128<mode>, except for a 256 bit key size.

       o ecc - Elliptical Curve, defaults to ecc256.

       o ecc192 - 192 bit ECC

       o ecc224 - 224 bit ECC

       o ecc256 - 256 bit ECC

       o ecc384 - 384 bit ECC

       o ecc521 - 521 bit ECC

       o rsa - Default RSA: rsa2048

       o rsa1024 - RSA with 1024 bit keysize.

       o rsa2048 - RSA with 2048 bit keysize.

       o rsa4096 - RSA with 4096 bit keysize.

   Scheme Specifiers
       Next, is an optional field, it can be skipped.

       Schemes are usually Signing Schemes or Asymmetric  Encryption  Schemes.
       Most signing schemes take a hash algorithm directly following the sign-
       ing scheme.  If the hash algorithm is missing, it defaults  to  sha256.
       Some take no arguments, and some take multiple arguments.

   Hash Optional Scheme Specifiers
       These  scheme  specifiers are followed by a dash and a valid hash algo-
       rithm, For example: oaep-sha256.

       o oaep

       o ecdh

       o rsassa

       o rsapss

       o ecdsa

       o ecschnorr

   Multiple Option Scheme Specifiers
       This scheme specifier is followed by a count  (max  size  UINT16)  then
       followed by a dash(-) and a valid hash algorithm.  * ecdaa For example,
       ecdaa4-sha256.  If no count is specified, it defaults to 4.

   No Option Scheme Specifiers
       This scheme specifier takes NO arguments.  * rsaes

   Symmetric Details Specifiers
       This field is optional, and defaults based on the type of object  being
       created  and it's attributes.  Generally, any valid Symmetric specifier
       from the Type Specifiers list should work.  If not specified, an  asym-
       metric objects symmetric details defaults to aes128cfb.

   Examples
   Create an rsa2048 key with an rsaes asymmetric encryption scheme
       tpm2_create -C parent.ctx -G rsa2048:rsaes -u key.pub -r key.priv

   Create  an  ecc256  key  with an ecdaa signing scheme with a count of 4 and
       sha384 hash
       /tpm2_create  -C  parent.ctx  -G  ecc256:ecdaa4-sha384  -u  key.pub  -r
       key.priv

EXAMPLES
   Display all PCR values
              tpm2_pcrread

   Display the PCR values with a specified bank
              tpm2_pcrread sha1

   Display the PCR values with specified banks and store in a file
              tpm2_pcrread -o pcrs sha1:16,17,18+sha256:16,17,18

   Display the supported PCR bank algorithms and exit
              tpm2_pcrread

NOTES
       The maximum number of PCR that can be dumped at once is associated with
       the maximum length of a bank.

       On most TPMs, it means that this tool can dump up to 24 PCRs at once.

Returns
       Tools can return any of the following codes:

       o 0 - Success.

       o 1 - General non-specific error.

       o 2 - Options handling error.

       o 3 - Authentication error.

       o 4 - TCTI related error.

       o 5 - Non supported scheme.  Applicable to tpm2_testparams.

BUGS
       Github Issues (https://github.com/tpm2-software/tpm2-tools/issues)

HELP
       See the Mailing List (https://lists.01.org/mailman/listinfo/tpm2)

tpm2-tools                                                     tpm2_pcrread(1)