-
Notifications
You must be signed in to change notification settings - Fork 110
State Marshalling
| Type | Field | Marshaled | File |
|---|---|---|---|
| ALGORITHM_VECTOR | g_implementedAlgorithms | no [1] | Global.{h,c} |
| ALGORITHM_VECTOR | g_toTest | no [2] | Global.{h,c} |
| UINT16 | g_rcIndex | no [3] | Global.{h,c} |
| TPM_HANDLE | g_exclusiveAuditSession | v1 | Global.{h,c} |
| UINT64 | g_time | v1 | Global.{h,c} |
| CLOCK_NONCE | g_timeEpoch | no [4] | Global.{h,c} |
| BOOL | g_phEnable | v1 | Global.{h,c} |
| BOOL | g_pcrReConfig | v1 | Global.{h,c} |
| TPMI_DH_OBJECT | g_DRTMHandle | v1 | Global.{h,c} |
| BOOL | g_DrtmPreStartup | v1 | Global.{h,c} |
| BOOL | g_StartupLocality3 | v1 | Global.{h,c} |
| BOOL | g_daUsed | v1 | Global.{h,c} |
| UPDATE_TYPE | g_updateNV | no [5] | Global.{h,c} |
| BOOL | g_powerWasLost | v1 | Global.{h,c} |
| BOOL | g_clearOrderly | no [6] | Global.{h,c} |
| TPM_SU | g_prevOrderlyState | v1 | Global.{h,c} |
| BOOL | g_nvOk | v1 | Global.{h,c} |
| TPM_RC | g_NvStatus | no [7] | Global.{h,c} |
| TPM2B_AUTH | g_platformUniqueAuthorities | no [8] | Global.h |
| TPM2B_AUTH | g_platformUniqueDetails | v1 | Global.{h,c} |
| ORDERLY_DATA | go | v1 | Global.{h,c} |
| STATE_CLEAR_DATA | gc | v1 | Global.{h,c} |
| STATE_RESET_DATA | gr | v1 | Global.{h,c} |
| BOOL | g_manufactured | v1 | Global.{h,c} |
| BOOL | g_initialized | v1 | Global.{h,c} |
| TPM_HANDLE | s_sessionHandles[] | v1 | Global.{h,c} |
| TMA_SESSION | s_attributes[] | v1 | Global.{h,c} |
| TPM_HANDLE | s_associatedHandles[] | v1 | Global.{h,c} |
| TPM2B_NONCE | s_nonceCaller[] | v1 | Global.{h,c} |
| TPM2B_AUTH | s_inputAuthValues[] | v1 | Global.{h,c} |
| SESSION | *s_usedSessions[] | no [9] | Global.{h,c} |
| UINT32 | s_encryptSessionIndex | v1 | Global.{h,c} |
| UINT32 | s_decryptSessionIndex | v1 | Global.{h,c} |
| UINT32 | s_auditSessionIndex | v1 | Global.{h,c} |
| TPM2B_DIGEST | s_cpHashForCommandAudit | v1 | Global.{h,c} |
| BOOL | s_DAPendingOnNV | v1 | Global.{h,c} |
| UINT64 | s_selfHealTimer | v1 | Global.{h,c} |
| UINT64 | s_lockoutTimer | v1 | Global.{h,c} |
| NV_REF | s_evictNvEnd | v1 | Global.{h,c} |
| BYTE | s_indexOrderlyRam[] | v1 | Global.{h,c} |
| UINT64 | s_maxCounter | v1 | Global.{h,c} |
| NV_INDEX | s_cachedNvIndex | no [10] | Global.{h,c} |
| NV_REF | s_cachedNvRef | no [10] | Global.{h,c} |
| BYTE | *s_cachedNvRamRef | no [10] | Global.{h,c} |
| OBJECT | s_objects[] | v1 | Global.{h,c} |
| PCR | s_pcrs[] | v1 | Global.{h,c} |
| SESSION | s_sessions[] | v1 | Global.{h,c} |
| UINT32 | s_oldestSavedSession | v1 | Global.{h,c} |
| int | s_freeSessionSlots | v1 | Global.{h,c} |
| UINT32 | s_actionInputBuffer[] | no [10] | Global.{h,c} |
| UINT32 | s_actionOutputBuffer[] | no [10] | Global.{h,c} |
| BOOL | g_inFailureMode | v1 | Global.{h,c} |
| BOOL | g_forceFailureMode | no [11] | Global.{h,c} |
| UINT32 | s_failFunction | v1 [12] | Global.{h,c} |
| UINT32 | s_failLine | v1 | Global.{h,c} |
| UINT32 | s_failCode | v1 | Global.{h,c} |
| int | s_isCanceled | no [13] | PlatformData.{h,c} |
| clock_t | s_realTimePrevious | v1 | PlatformData.{h,c} |
| clock_t | s_tpmTime | v1 | PlatformData.{h,c} |
| BOOL | s_timerReset | v1 | PlatformData.{h,c} |
| BOOL | s_timerStopped | v1 | PlatformData.{h,c} |
| uint64_t | s_initClock | no [8] | PlatformData.h |
| unsigned int | s_adjustRate | v2 | PlatformData.{h,c} |
| unsigned char | s_locality | no [14] | PlatformData.{h,c} |
| FILE | *s_NVFile | no [14] | PlatformData.{h,c} |
| BOOL | s_NvIsAvailable | no [15] | PlatformData.{h,c} |
| BOOL | s_NV_unrecoverable | no [16] | PlatformData.{h,c} |
| BOOL | s_NV_recoverable | no [16] | PlatformData.{h,c} |
| BOOL | s_physicalPresence | no [17] | PlatformData.{h,c} |
| BOOL | s_powerLost | no | PlatformData.{h,c} |
| uint32_t | lastEntropy | no [18] | PlatformData.{h,c} |
| int | firstValue | no [18] | PlatformData.{h,c} |
[1]: Dependent on configuration; we allow some changes to reconfiguration, so may not use this one for testing
[2]: Copy of g_implementedAlgorithms
[3]: Array of constants
[4]: Not available unless CLOCK_STOPS is #defined
[5]: Valid only during execution of a single command. ExecuteCommand() initializes it and tests it near end.
[6]: Valid only during execution of a single command. ExecuteCommand() initializes it and tests it near end.
[7]: valid only during execution of a single command. ExecuteCommand() initializes it.
[8]: Not used anywhere
[9]: Not used anywhere
[10]: valid only during execution of a single command. ExecuteCommand() initializes it.
[11]: Not used; only used if SIMULATION is #defined
[12]: s_failFunction is currently not used
[13]: we reset the cancel signal before execution of every command
[14]: not needed
[15]: Not supporting turning off NVRAM
[16]: not used
[17]: Physical Presence signal must be continuously asserted without interruption by migration
[18]: only there to check whether the RNG isn't producing anything good
| Type | Field |
|---|---|
| NvHeader | nvHeader |
| BOOL | disableClear |
| TPMI_ALG_HASH | ownerAlg |
| TPMI_ALG_HASH | endorsementAlg |
| TPMI_ALG_HASH | lockoutAlg |
| TPM2B_DIGEST | ownerPolicy |
| TPM2B_DIGEST | endorsementPolicy |
| TPM2B_DIGEST | lockoutPolicy |
| TPM2B_AUTH | ownerAuth |
| TPM2B_AUTH | endorsementAuth |
| TPM2B_AUTH | lockoutAuth |
| TPM2B_SEED | EPSeed |
| TPM2B_SEED | SPSeed |
| TPM2B_SEED | PPSeed |
| TPM2B_PROOF | phProof |
| TPM2B_PROOF | shProof |
| TPM2B_PROOF | ehProof |
| UINT32 | _pad1 |
| UINT64 | totalResetCount |
| UINT32 | resetCount |
| PCR_POLICY | pcrPolicies |
| TPML_PCR_SELECTION | pcrAllocated |
| BYTE | ppList |
| UINT32 | failedTries |
| UINT32 | maxTries |
| UINT32 | recoveryTime |
| UINT32 | lockoutRecovery |
| BOOL | lockoutAuthEnabled |
| TPM_SU | orderlyState |
| BYTE | auditCommands |
| TPMI_ALG_HASH | auditHashAlg |
| UINT64 | auditCounter |
| UINT32 | algorithmSet |
| UINT32 | firmwareV1 |
| UINT32 | firmwareV2 |
| CLOCK_NONCE | timeEpoch |
| Type | Field |
|---|---|
| NvHeader | nvHeader |
| UINT64 | clock |
| TPMI_YES_NO | clockSafe |
| UINT32 | _pad1 |
| DRBG_STATE | drbgState |
| UINT64 | selfHealTimer |
| UINT64 | lockoutTimer |
| UINT64 | time |
| Type | Field |
|---|---|
| NvHeader | nvHeader |
| BOOL | shEnable |
| BOOL | ehEnable |
| BOOL | phEnableNV |
| TPMI_ALG_HASH | platformAlg |
| TPM2B_DIGEST | platformPolicy |
| TPM2B_AUTH | platformAuth |
| PCR_SAVE | pcrSave |
| PCR_AUTHVALUE | pcrAuthValues |
| Type | Field |
|---|---|
| NvHeader | nvHeader |
| TPM2B_PROOF | nullProof |
| TPM2B_SEED | nullSeed |
| UINT32 | clearCount |
| UINT64 | objectContextID |
| BYTE | contextArray[] |
| CONTEXT_COUNTER | contextCounter |
| TPM2B_DIGEST | commandAuditDigest |
| UINT32 | restartCount |
| UINT32 | pcrCounter |
| UINT32 | _pad2 |
| UINT64 | commitCounter |
| TPM2B_NONCE | commitNonce |
| BYTE | commitArray[16] |