iaik.tc.tss.impl.java.tcs.pbg
Class TcTpmCmdAdminStartup

java.lang.Object
  extended by iaik.tc.tss.impl.java.tcs.pbg.TcTpmCmdCommon
      extended by iaik.tc.tss.impl.java.tcs.pbg.TcTpmCmdAdminStartup

public class TcTpmCmdAdminStartup
extends TcTpmCmdCommon


Constructor Summary
TcTpmCmdAdminStartup()
           
 
Method Summary
static java.lang.Object[] TpmSaveState(TcIStreamDest dest)
          This command warns a TPM to save some state information.
static java.lang.Object[] TpmStartup(TcIStreamDest dest, int startupType)
          TPM_Startup is always preceded by TPM_Init, which is the physical indication (a systemwide reset) that TPM initialization is necessary.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TcTpmCmdAdminStartup

public TcTpmCmdAdminStartup()
Method Detail

TpmStartup

public static java.lang.Object[] TpmStartup(TcIStreamDest dest,
                                            int startupType)
                                     throws TcTddlException,
                                            TcTpmException
TPM_Startup is always preceded by TPM_Init, which is the physical indication (a systemwide reset) that TPM initialization is necessary. There are many events on a platform that can cause a reset and the response to these events can require different operations to occur on the TPM. The mere reset indication does not contain sufficient information to inform the TPM as to what type of reset is occurring. Additional information known by the platform initialization code needs transmitting to the TPM. The TPM_Startup command provides the mechanism to transmit the information. The TPM can startup in three different modes: A "clear" start where all variables go back to their default or non-volatile set state A "save" start where the TPM recovers appropriate information and restores various values based on a prior TPM_SaveState. This recovery requires an invocation of TPM_Init to be successful. A failing "save" start must shut down the TPM. The CRTM cannot leave the TPM in a state where an untrusted upper software layer could issue a "clear" and then extend PCR's and thus mimic the CRTM. A "deactivated" start where the TPM turns itself off and requires another TPM_Init before the TPM will execute in a fully operational state.

Parameters:
dest - The destination where the byte stream is written to.
startupType - This flag specifies the type of startup. Legal values are TcTpmConstants.TPM_ST_CLEAR, TcTpmConstants.TPM_ST_STATE and TcTpmConstants.TPM_ST_DEACTIVATED.
Throws:
TcTpmException - This exception indicates that a TPM error has occurred. The specific error code id held by the exception.
TcTddlException
TPM 1.2 Spec, page number:
6

TpmSaveState

public static java.lang.Object[] TpmSaveState(TcIStreamDest dest)
                                       throws TcTddlException,
                                              TcTpmException
This command warns a TPM to save some state information. If the relevant shielded storage is non-volatile, this command need have no effect. If the relevant shielded storage is volatile and the TPM alone is unable to detect the loss of external power in time to move data to non-volatile memory, this command should be presented before the TPM enters a low or no power state.

Parameters:
dest - The destination where the byte stream is written to.
Throws:
TcTpmException - This exception indicates that a TPM error has occurred. The specific error code id held by the exception.
TcTddlException
TPM 1.2 Spec, page number:
9