23 Oct, 2015

1 commit


31 Aug, 2015

4 commits


24 Jul, 2013

1 commit


17 Jul, 2013

1 commit

  • Extend the tpm library with support for single authorized (AUTH1) commands
    as specified in the TCG Main Specification 1.2. (The internally used helper
    functions are implemented in a way that they could also be used for double
    authorized commands if someone needs it.)

    Provide enums with the return codes from the TCG Main specification.

    For now only a single OIAP session is supported.

    OIAP authorized version of the commands TPM_LoadKey2 and TPM_GetPubKey are
    provided. Both features are available using the 'tpm' command, too.

    Authorized commands are enabled with CONFIG_TPM_AUTH_SESSIONS. (Note that
    this also requires CONFIG_SHA1 to be enabled.)

    Signed-off-by: Reinhard Pfau
    Signed-off-by: Dirk Eibach
    Acked-by: Che-Liang Chiou
    Signed-off-by: Andy Fleming

    Reinhard Pfau
     

13 Apr, 2013

1 commit

  • TPM command library implements a subset of TPM commands defined in TCG
    Main Specification 1.2 that are useful for implementing secure boot.
    More TPM commands could be added out of necessity.

    You may exercise these commands through the 'tpm' command. However, the
    raw TPM commands are too primitive for writing secure boot in command
    interpreter scripts; so the 'tpm' command also provides helper functions
    to make scripting easier.

    For example, to define a counter in TPM non-volatile storage and
    initialize it to zero:

    $ tpm init
    $ tpm startup TPM_ST_CLEAR
    $ tpm nv_define d 0x1001 0x1
    $ tpm nv_write d 0x1001 0

    And then increment the counter by one:

    $ tpm nv_read d 0x1001 i
    $ setexpr.l i $i + 1
    $ tpm nv_write d 0x1001 $i

    Signed-off-by: Che-Liang Chiou

    Che-liang Chiou
     

12 Dec, 2012

1 commit


07 Dec, 2011

1 commit

  • The command gets an arbitrary number of arguments (up to 30), which
    are interpreted as byte values and are feed into the TPM device after
    proper initialization. Then the return value and data of the TPM
    driver is examined.

    TPM commands are described in the TCG specification.

    For instance, the following sequence is the 'TPM Startup' command, it
    is processed by the TPM and a response is generated:

    boot > tpm 0x0 0xc1 0x0 0x0 0x0 0xc 0x0 0x0 0x0 0x99 0x0 0x1
    Found TPM SLB9635 TT 1.2 by Infineon
    Got TPM response:
    00 c4 00 00 00 0a 00 00 00 00

    If the command is corrupted (fed one byte short), an error is reported:
    boot > tpm 0x0 0xc1 0x0 0x0 0x0 0xc 0x0 0x0 0x0 0x99 0x0
    generic_lpc_tpm.c:311 unexpected TPM status 0xff000888
    generic_lpc_tpm.c:516 failed sending data to TPM
    tpm command failed
    boot >

    Change-Id: I3f3c5bfec8b852e208c4e99ba37b0f2b875140b0
    Signed-off-by: Vadim Bendebury
    CC: Wolfgang Denk

    Vadim Bendebury