Selection 2 - TPM_ContinueSelfTest
The TPM_ContinueSelfTest command requests the TPM to complete the self-test of all TPM
cryptographic resources when convenient (i.e. when no other commands are being issued to the TPM).
This command is not required on the I2C TPM since the I2C TPM automatically completes all self-test
functions on a power-up or reset.
This command is required after a TPM_Startup on the SPI Interface TPM and is provided in the demo
as an example of how to execute it on the TPM.
The expected return code after executing the TPM_ContinueSelfTest command is
TPM_SUCCESS 0x00000000.
Selection 3 - TPM_CreateEKPair
The TPM_CreateEndorsementKeyPair command self-generates the Endorsement Key Pair
(EK) on the TPM.
While the EK is being generated, the message waiting for TPM response... is displayed. Although
normally only a few seconds, since key generation is non-deterministic, EK generation can take up to
five minutes.
The first time TPM_CreateEndorsementKeyPair is executed, resulting in the generation of an
Endorsement Key Pair, the TPM will return a TPM_SUCCESS return code of 0x00000000.
Subsequent executions of TPM_CreateEndorsementKeyPair will return a
TPM_DISABLED_CMD return code of 0x00000008. The inclusion of this command sequence is to
demonstrate and verify that an Endorsement Key is present on the TPM.
Selection 4 - TPM_TakeOwnerShip (Sequence)
The TPM_TakeOwnership command takes or establishes the owner of the TPM, generating a new
Storage Root Key (SRK). The demo command, TPM_TakeOwnerShip, is a sequence comprised of
the following:
1. A check is made to ensure the EK has been generated on the TPM. If not, then
TPM_CreateEndorsementKeyPair is executed first.
2. The TPM_GetCapability command is executed to ensure that an owner is not currently
present on the TPM.
3. Enter a value for the Owner authorization at the prompt enter owner Auth:. Choose a
passphrase of up to 40 characters.
4. The TPM_BindV20 command is utilized to encrypt the Owner Auth.
5. Enter a value for the SRK authorization at the prompt enter SRK Auth:. Choose a passphrase of
up to 40 characters.
6. The TPM_BindV20 command is utilized to encrypt the SRK Auth.
7. A TPM_OIAP command is executed to establish an authorization session.
8. The TPM_TakeOwnership command is executed.
9. While the SRK is being generated, the message Please wait. Generating SRK... is displayed.
Since key generation is non-deterministic, SRK generation can take seconds or up to five
minutes.
10. If TPM_TakeOwnership is successful, the TPM responds back with the public portion of the
SRK and a TPM_SUCCESS return code of 0x00000000.
TPM_TakeOwnerShip cannot be successfully executed again unless the owner has been cleared by
the TPM_ForceClear command.