17 Nov, 2017

2 commits


27 Mar, 2017

1 commit

  • If we want to load a key into a TPM, we need to know the designated parent
    key's handle, so that the TPM is able to insert the key at the correct place in
    the key hierarchy.

    However, if we want to load a key whose designated parent key we also
    previously loaded ourselves, we first need to memorize this parent key's handle
    (since the handles for the key are chosen at random when they are inserted into
    the TPM). If we are, however, unable to do so, for example if the parent key is
    loaded into the TPM during production, and its child key during the actual
    boot, we must find a different mechanism to identify the parent key.

    To solve this problem, we add a function that allows U-Boot to load a key into
    the TPM using their designated parent key's SHA1 hash, and the corresponding
    auth data.

    Signed-off-by: Mario Six
    Reviewed-by: Simon Glass

    mario.six@gdsys.cc
     

01 Feb, 2017

1 commit


23 Oct, 2015

1 commit


31 Aug, 2015

3 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
     

07 Dec, 2011

1 commit

  • TPM (Trusted Platform Module) is an integrated circuit and
    software platform that provides computer manufacturers with the
    core components of a subsystem used to assure authenticity,
    integrity and confidentiality.

    This driver supports version 1.2 of the TCG (Trusted Computing
    Group) specifications.

    The TCG specification defines several so called localities in a
    TPM chip, to be controlled by different software layers. When
    used on a typical x86 platform during the firmware phase, only
    locality 0 can be accessed by the CPU, so this driver even while
    supporting the locality concept presumes that only locality zero
    is used.

    This implementation is loosely based on the article "Writing a
    TPM Device Driver" published on http://ptgmedia.pearsoncmg.com

    Compiling this driver with DEBUG defined will generate trace of
    all accesses to TMP registers.

    This driver has been tested and is being used in three different
    functional ChromeOS machines (Pinetrail and Sandy Bridge Intel
    chipsets) all using the same Infineon SLB 9635 TT 1.2 device.

    A u-boot cli command allowing access to the TPM was also
    implemented and is being submitted as a second patch.

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

    Vadim Bendebury