TCG TIS 1.3 compliant TPM driver to use the TPM as hardware crypto library.

/media/uploads/LordOfDorks/wp_20150409_16_47_21_pro.jpg The TPM 2.0 architecture, commands and structures are defined in the set of 4 Trusted Platform Module Library Specification, Family "2.0" specifications that that can be found at http://www.trustedcomputinggroup.org/resources/tpm_library_specification

The "PC Client Specific TPM Interface Specification (TIS), Version 1.3" that was used for this implementation can be found at http://www.trustedcomputinggroup.org/resources/pc_client_work_group_pc_client_specific_tpm_interface_specification_tis

All the information to get going is in SPITIS_TPM20.h!

Committer:
LordOfDorks
Date:
Sat Apr 11 04:01:54 2015 +0000
Revision:
3:4b9ad18eae02
Parent:
1:fd0a59e55a85
Added TPM marshal library to make working with TPM structures easy.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
LordOfDorks 1:fd0a59e55a85 1 /* mbed TCG SPI TPM 2.0 TIS 1.3 driver,
LordOfDorks 1:fd0a59e55a85 2 * Copyright (c) 2015, Microsoft Coprporation Inc.
LordOfDorks 1:fd0a59e55a85 3 * by Stefan Thom (LordOfDorks) StefanTh@Microsoft.com, Stefan@ThomsR.Us
LordOfDorks 1:fd0a59e55a85 4 *
LordOfDorks 1:fd0a59e55a85 5 * Permission is hereby granted, free of charge, to any person obtaining a copy
LordOfDorks 1:fd0a59e55a85 6 * of this software and associated documentation files (the "Software"), to deal
LordOfDorks 1:fd0a59e55a85 7 * in the Software without restriction, including without limitation the rights
LordOfDorks 1:fd0a59e55a85 8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
LordOfDorks 1:fd0a59e55a85 9 * copies of the Software, and to permit persons to whom the Software is
LordOfDorks 1:fd0a59e55a85 10 * furnished to do so, subject to the following conditions:
LordOfDorks 1:fd0a59e55a85 11 *
LordOfDorks 1:fd0a59e55a85 12 * The above copyright notice and this permission notice shall be included in
LordOfDorks 1:fd0a59e55a85 13 * all copies or substantial portions of the Software.
LordOfDorks 1:fd0a59e55a85 14 *
LordOfDorks 1:fd0a59e55a85 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
LordOfDorks 1:fd0a59e55a85 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
LordOfDorks 1:fd0a59e55a85 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
LordOfDorks 1:fd0a59e55a85 18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LordOfDorks 1:fd0a59e55a85 19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
LordOfDorks 1:fd0a59e55a85 20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
LordOfDorks 1:fd0a59e55a85 21 * THE SOFTWARE.
LordOfDorks 1:fd0a59e55a85 22 *
LordOfDorks 1:fd0a59e55a85 23 * The TPM 2.0 architecture, commands and structures are defined in the set of 4
LordOfDorks 1:fd0a59e55a85 24 * Trusted Platform Module Library Specification, Family "2.0" specifications that
LordOfDorks 1:fd0a59e55a85 25 * that can be found at
LordOfDorks 1:fd0a59e55a85 26 * http://www.trustedcomputinggroup.org/resources/tpm_library_specification
LordOfDorks 1:fd0a59e55a85 27 *
LordOfDorks 1:fd0a59e55a85 28 */
LordOfDorks 1:fd0a59e55a85 29
LordOfDorks 1:fd0a59e55a85 30 #ifndef TPM_TIS_NO_COMMAND_FILTERING
LordOfDorks 1:fd0a59e55a85 31
LordOfDorks 1:fd0a59e55a85 32 #define PAD_LIST 0
LordOfDorks 1:fd0a59e55a85 33
LordOfDorks 1:fd0a59e55a85 34 const TPMA_CC s_ccAttr [] =
LordOfDorks 1:fd0a59e55a85 35 {
LordOfDorks 1:fd0a59e55a85 36 #if (PAD_LIST || CC_NV_UndefineSpaceSpecial)
LordOfDorks 1:fd0a59e55a85 37 {0x011f, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_UndefineSpaceSpecial
LordOfDorks 1:fd0a59e55a85 38 #endif
LordOfDorks 1:fd0a59e55a85 39 #if (PAD_LIST || CC_EvictControl)
LordOfDorks 1:fd0a59e55a85 40 {0x0120, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_EvictControl
LordOfDorks 1:fd0a59e55a85 41 #endif
LordOfDorks 1:fd0a59e55a85 42 #if (PAD_LIST || CC_HierarchyControl)
LordOfDorks 1:fd0a59e55a85 43 {0x0121, 0, 1, 1, 0, 1, 0, 0, 0}, // TPM_CC_HierarchyControl
LordOfDorks 1:fd0a59e55a85 44 #endif
LordOfDorks 1:fd0a59e55a85 45 #if (PAD_LIST || CC_NV_UndefineSpace)
LordOfDorks 1:fd0a59e55a85 46 {0x0122, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_UndefineSpace
LordOfDorks 1:fd0a59e55a85 47 #endif
LordOfDorks 1:fd0a59e55a85 48 #if (PAD_LIST)
LordOfDorks 1:fd0a59e55a85 49 {0x0123, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
LordOfDorks 1:fd0a59e55a85 50 #endif
LordOfDorks 1:fd0a59e55a85 51 #if (PAD_LIST || CC_ChangeEPS)
LordOfDorks 1:fd0a59e55a85 52 {0x0124, 0, 1, 1, 0, 1, 0, 0, 0}, // TPM_CC_ChangeEPS
LordOfDorks 1:fd0a59e55a85 53 #endif
LordOfDorks 1:fd0a59e55a85 54 #if (PAD_LIST || CC_ChangePPS)
LordOfDorks 1:fd0a59e55a85 55 {0x0125, 0, 1, 1, 0, 1, 0, 0, 0}, // TPM_CC_ChangePPS
LordOfDorks 1:fd0a59e55a85 56 #endif
LordOfDorks 1:fd0a59e55a85 57 #if (PAD_LIST || CC_Clear)
LordOfDorks 1:fd0a59e55a85 58 {0x0126, 0, 1, 1, 0, 1, 0, 0, 0}, // TPM_CC_Clear
LordOfDorks 1:fd0a59e55a85 59 #endif
LordOfDorks 1:fd0a59e55a85 60 #if (PAD_LIST || CC_ClearControl)
LordOfDorks 1:fd0a59e55a85 61 {0x0127, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_ClearControl
LordOfDorks 1:fd0a59e55a85 62 #endif
LordOfDorks 1:fd0a59e55a85 63 #if (PAD_LIST || CC_ClockSet)
LordOfDorks 1:fd0a59e55a85 64 {0x0128, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_ClockSet
LordOfDorks 1:fd0a59e55a85 65 #endif
LordOfDorks 1:fd0a59e55a85 66 #if (PAD_LIST || CC_HierarchyChangeAuth)
LordOfDorks 1:fd0a59e55a85 67 {0x0129, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_HierarchyChangeAuth
LordOfDorks 1:fd0a59e55a85 68 #endif
LordOfDorks 1:fd0a59e55a85 69 #if (PAD_LIST || CC_NV_DefineSpace)
LordOfDorks 1:fd0a59e55a85 70 {0x012a, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_NV_DefineSpace
LordOfDorks 1:fd0a59e55a85 71 #endif
LordOfDorks 1:fd0a59e55a85 72 #if (PAD_LIST || CC_PCR_Allocate)
LordOfDorks 1:fd0a59e55a85 73 {0x012b, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_Allocate
LordOfDorks 1:fd0a59e55a85 74 #endif
LordOfDorks 1:fd0a59e55a85 75 #if (PAD_LIST || CC_PCR_SetAuthPolicy)
LordOfDorks 1:fd0a59e55a85 76 {0x012c, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_SetAuthPolicy
LordOfDorks 1:fd0a59e55a85 77 #endif
LordOfDorks 1:fd0a59e55a85 78 #if (PAD_LIST || CC_PP_Commands)
LordOfDorks 1:fd0a59e55a85 79 {0x012d, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PP_Commands
LordOfDorks 1:fd0a59e55a85 80 #endif
LordOfDorks 1:fd0a59e55a85 81 #if (PAD_LIST || CC_SetPrimaryPolicy)
LordOfDorks 1:fd0a59e55a85 82 {0x012e, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_SetPrimaryPolicy
LordOfDorks 1:fd0a59e55a85 83 #endif
LordOfDorks 1:fd0a59e55a85 84 #if (PAD_LIST || CC_FieldUpgradeStart)
LordOfDorks 1:fd0a59e55a85 85 {0x012f, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_FieldUpgradeStart
LordOfDorks 1:fd0a59e55a85 86 #endif
LordOfDorks 1:fd0a59e55a85 87 #if (PAD_LIST || CC_ClockRateAdjust)
LordOfDorks 1:fd0a59e55a85 88 {0x0130, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ClockRateAdjust
LordOfDorks 1:fd0a59e55a85 89 #endif
LordOfDorks 1:fd0a59e55a85 90 #if (PAD_LIST || CC_CreatePrimary)
LordOfDorks 1:fd0a59e55a85 91 {0x0131, 0, 0, 0, 0, 1, 1, 0, 0}, // TPM_CC_CreatePrimary
LordOfDorks 1:fd0a59e55a85 92 #endif
LordOfDorks 1:fd0a59e55a85 93 #if (PAD_LIST || CC_NV_GlobalWriteLock)
LordOfDorks 1:fd0a59e55a85 94 {0x0132, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_NV_GlobalWriteLock
LordOfDorks 1:fd0a59e55a85 95 #endif
LordOfDorks 1:fd0a59e55a85 96 #if (PAD_LIST || CC_GetCommandAuditDigest)
LordOfDorks 1:fd0a59e55a85 97 {0x0133, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_GetCommandAuditDigest
LordOfDorks 1:fd0a59e55a85 98 #endif
LordOfDorks 1:fd0a59e55a85 99 #if (PAD_LIST || CC_NV_Increment)
LordOfDorks 1:fd0a59e55a85 100 {0x0134, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_Increment
LordOfDorks 1:fd0a59e55a85 101 #endif
LordOfDorks 1:fd0a59e55a85 102 #if (PAD_LIST || CC_NV_SetBits)
LordOfDorks 1:fd0a59e55a85 103 {0x0135, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_SetBits
LordOfDorks 1:fd0a59e55a85 104 #endif
LordOfDorks 1:fd0a59e55a85 105 #if (PAD_LIST || CC_NV_Extend)
LordOfDorks 1:fd0a59e55a85 106 {0x0136, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_Extend
LordOfDorks 1:fd0a59e55a85 107 #endif
LordOfDorks 1:fd0a59e55a85 108 #if (PAD_LIST || CC_NV_Write)
LordOfDorks 1:fd0a59e55a85 109 {0x0137, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_Write
LordOfDorks 1:fd0a59e55a85 110 #endif
LordOfDorks 1:fd0a59e55a85 111 #if (PAD_LIST || CC_NV_WriteLock)
LordOfDorks 1:fd0a59e55a85 112 {0x0138, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_WriteLock
LordOfDorks 1:fd0a59e55a85 113 #endif
LordOfDorks 1:fd0a59e55a85 114 #if (PAD_LIST || CC_DictionaryAttackLockReset)
LordOfDorks 1:fd0a59e55a85 115 {0x0139, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_DictionaryAttackLockReset
LordOfDorks 1:fd0a59e55a85 116 #endif
LordOfDorks 1:fd0a59e55a85 117 #if (PAD_LIST || CC_DictionaryAttackParameters)
LordOfDorks 1:fd0a59e55a85 118 {0x013a, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_DictionaryAttackParameters
LordOfDorks 1:fd0a59e55a85 119 #endif
LordOfDorks 1:fd0a59e55a85 120 #if (PAD_LIST || CC_NV_ChangeAuth)
LordOfDorks 1:fd0a59e55a85 121 {0x013b, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_NV_ChangeAuth
LordOfDorks 1:fd0a59e55a85 122 #endif
LordOfDorks 1:fd0a59e55a85 123 #if (PAD_LIST || CC_PCR_Event)
LordOfDorks 1:fd0a59e55a85 124 {0x013c, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_Event
LordOfDorks 1:fd0a59e55a85 125 #endif
LordOfDorks 1:fd0a59e55a85 126 #if (PAD_LIST || CC_PCR_Reset)
LordOfDorks 1:fd0a59e55a85 127 {0x013d, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_Reset
LordOfDorks 1:fd0a59e55a85 128 #endif
LordOfDorks 1:fd0a59e55a85 129 #if (PAD_LIST || CC_SequenceComplete)
LordOfDorks 1:fd0a59e55a85 130 {0x013e, 0, 0, 0, 1, 1, 0, 0, 0}, // TPM_CC_SequenceComplete
LordOfDorks 1:fd0a59e55a85 131 #endif
LordOfDorks 1:fd0a59e55a85 132 #if (PAD_LIST || CC_SetAlgorithmSet)
LordOfDorks 1:fd0a59e55a85 133 {0x013f, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_SetAlgorithmSet
LordOfDorks 1:fd0a59e55a85 134 #endif
LordOfDorks 1:fd0a59e55a85 135 #if (PAD_LIST || CC_SetCommandCodeAuditStatus)
LordOfDorks 1:fd0a59e55a85 136 {0x0140, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_SetCommandCodeAuditStatus
LordOfDorks 1:fd0a59e55a85 137 #endif
LordOfDorks 1:fd0a59e55a85 138 #if (PAD_LIST || CC_FieldUpgradeData)
LordOfDorks 1:fd0a59e55a85 139 {0x0141, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_FieldUpgradeData
LordOfDorks 1:fd0a59e55a85 140 #endif
LordOfDorks 1:fd0a59e55a85 141 #if (PAD_LIST || CC_IncrementalSelfTest)
LordOfDorks 1:fd0a59e55a85 142 {0x0142, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_IncrementalSelfTest
LordOfDorks 1:fd0a59e55a85 143 #endif
LordOfDorks 1:fd0a59e55a85 144 #if (PAD_LIST || CC_SelfTest)
LordOfDorks 1:fd0a59e55a85 145 {0x0143, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_SelfTest
LordOfDorks 1:fd0a59e55a85 146 #endif
LordOfDorks 1:fd0a59e55a85 147 #if (PAD_LIST || CC_Startup)
LordOfDorks 1:fd0a59e55a85 148 {0x0144, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_Startup
LordOfDorks 1:fd0a59e55a85 149 #endif
LordOfDorks 1:fd0a59e55a85 150 #if (PAD_LIST || CC_Shutdown)
LordOfDorks 1:fd0a59e55a85 151 {0x0145, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_Shutdown
LordOfDorks 1:fd0a59e55a85 152 #endif
LordOfDorks 1:fd0a59e55a85 153 #if (PAD_LIST || CC_StirRandom)
LordOfDorks 1:fd0a59e55a85 154 {0x0146, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_StirRandom
LordOfDorks 1:fd0a59e55a85 155 #endif
LordOfDorks 1:fd0a59e55a85 156 #if (PAD_LIST || CC_ActivateCredential)
LordOfDorks 1:fd0a59e55a85 157 {0x0147, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_ActivateCredential
LordOfDorks 1:fd0a59e55a85 158 #endif
LordOfDorks 1:fd0a59e55a85 159 #if (PAD_LIST || CC_Certify)
LordOfDorks 1:fd0a59e55a85 160 {0x0148, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_Certify
LordOfDorks 1:fd0a59e55a85 161 #endif
LordOfDorks 1:fd0a59e55a85 162 #if (PAD_LIST || CC_PolicyNV)
LordOfDorks 1:fd0a59e55a85 163 {0x0149, 0, 0, 0, 0, 3, 0, 0, 0}, // TPM_CC_PolicyNV
LordOfDorks 1:fd0a59e55a85 164 #endif
LordOfDorks 1:fd0a59e55a85 165 #if (PAD_LIST || CC_CertifyCreation)
LordOfDorks 1:fd0a59e55a85 166 {0x014a, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_CertifyCreation
LordOfDorks 1:fd0a59e55a85 167 #endif
LordOfDorks 1:fd0a59e55a85 168 #if (PAD_LIST || CC_Duplicate)
LordOfDorks 1:fd0a59e55a85 169 {0x014b, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_Duplicate
LordOfDorks 1:fd0a59e55a85 170 #endif
LordOfDorks 1:fd0a59e55a85 171 #if (PAD_LIST || CC_GetTime)
LordOfDorks 1:fd0a59e55a85 172 {0x014c, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_GetTime
LordOfDorks 1:fd0a59e55a85 173 #endif
LordOfDorks 1:fd0a59e55a85 174 #if (PAD_LIST || CC_GetSessionAuditDigest)
LordOfDorks 1:fd0a59e55a85 175 {0x014d, 0, 0, 0, 0, 3, 0, 0, 0}, // TPM_CC_GetSessionAuditDigest
LordOfDorks 1:fd0a59e55a85 176 #endif
LordOfDorks 1:fd0a59e55a85 177 #if (PAD_LIST || CC_NV_Read)
LordOfDorks 1:fd0a59e55a85 178 {0x014e, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_Read
LordOfDorks 1:fd0a59e55a85 179 #endif
LordOfDorks 1:fd0a59e55a85 180 #if (PAD_LIST || CC_NV_ReadLock)
LordOfDorks 1:fd0a59e55a85 181 {0x014f, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_ReadLock
LordOfDorks 1:fd0a59e55a85 182 #endif
LordOfDorks 1:fd0a59e55a85 183 #if (PAD_LIST || CC_ObjectChangeAuth)
LordOfDorks 1:fd0a59e55a85 184 {0x0150, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_ObjectChangeAuth
LordOfDorks 1:fd0a59e55a85 185 #endif
LordOfDorks 1:fd0a59e55a85 186 #if (PAD_LIST || CC_PolicySecret)
LordOfDorks 1:fd0a59e55a85 187 {0x0151, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_PolicySecret
LordOfDorks 1:fd0a59e55a85 188 #endif
LordOfDorks 1:fd0a59e55a85 189 #if (PAD_LIST || CC_Rewrap)
LordOfDorks 1:fd0a59e55a85 190 {0x0152, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_Rewrap
LordOfDorks 1:fd0a59e55a85 191 #endif
LordOfDorks 1:fd0a59e55a85 192 #if (PAD_LIST || CC_Create)
LordOfDorks 1:fd0a59e55a85 193 {0x0153, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Create
LordOfDorks 1:fd0a59e55a85 194 #endif
LordOfDorks 1:fd0a59e55a85 195 #if (PAD_LIST || CC_ECDH_ZGen)
LordOfDorks 1:fd0a59e55a85 196 {0x0154, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ECDH_ZGen
LordOfDorks 1:fd0a59e55a85 197 #endif
LordOfDorks 1:fd0a59e55a85 198 #if (PAD_LIST || CC_HMAC)
LordOfDorks 1:fd0a59e55a85 199 {0x0155, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_HMAC
LordOfDorks 1:fd0a59e55a85 200 #endif
LordOfDorks 1:fd0a59e55a85 201 #if (PAD_LIST || CC_Import)
LordOfDorks 1:fd0a59e55a85 202 {0x0156, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Import
LordOfDorks 1:fd0a59e55a85 203 #endif
LordOfDorks 1:fd0a59e55a85 204 #if (PAD_LIST || CC_Load)
LordOfDorks 1:fd0a59e55a85 205 {0x0157, 0, 0, 0, 0, 1, 1, 0, 0}, // TPM_CC_Load
LordOfDorks 1:fd0a59e55a85 206 #endif
LordOfDorks 1:fd0a59e55a85 207 #if (PAD_LIST || CC_Quote)
LordOfDorks 1:fd0a59e55a85 208 {0x0158, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Quote
LordOfDorks 1:fd0a59e55a85 209 #endif
LordOfDorks 1:fd0a59e55a85 210 #if (PAD_LIST || CC_RSA_Decrypt)
LordOfDorks 1:fd0a59e55a85 211 {0x0159, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_RSA_Decrypt
LordOfDorks 1:fd0a59e55a85 212 #endif
LordOfDorks 1:fd0a59e55a85 213 #if (PAD_LIST)
LordOfDorks 1:fd0a59e55a85 214 {0x015a, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
LordOfDorks 1:fd0a59e55a85 215 #endif
LordOfDorks 1:fd0a59e55a85 216 #if (PAD_LIST || CC_HMAC_Start)
LordOfDorks 1:fd0a59e55a85 217 {0x015b, 0, 0, 0, 0, 1, 1, 0, 0}, // TPM_CC_HMAC_Start
LordOfDorks 1:fd0a59e55a85 218 #endif
LordOfDorks 1:fd0a59e55a85 219 #if (PAD_LIST || CC_SequenceUpdate)
LordOfDorks 1:fd0a59e55a85 220 {0x015c, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_SequenceUpdate
LordOfDorks 1:fd0a59e55a85 221 #endif
LordOfDorks 1:fd0a59e55a85 222 #if (PAD_LIST || CC_Sign)
LordOfDorks 1:fd0a59e55a85 223 {0x015d, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Sign
LordOfDorks 1:fd0a59e55a85 224 #endif
LordOfDorks 1:fd0a59e55a85 225 #if (PAD_LIST || CC_Unseal)
LordOfDorks 1:fd0a59e55a85 226 {0x015e, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Unseal
LordOfDorks 1:fd0a59e55a85 227 #endif
LordOfDorks 1:fd0a59e55a85 228 #if (PAD_LIST)
LordOfDorks 1:fd0a59e55a85 229 {0x015f, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
LordOfDorks 1:fd0a59e55a85 230 #endif
LordOfDorks 1:fd0a59e55a85 231 #if (PAD_LIST || CC_PolicySigned)
LordOfDorks 1:fd0a59e55a85 232 {0x0160, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_PolicySigned
LordOfDorks 1:fd0a59e55a85 233 #endif
LordOfDorks 1:fd0a59e55a85 234 #if (PAD_LIST || CC_ContextLoad)
LordOfDorks 1:fd0a59e55a85 235 {0x0161, 0, 0, 0, 0, 0, 1, 0, 0}, // TPM_CC_ContextLoad
LordOfDorks 1:fd0a59e55a85 236 #endif
LordOfDorks 1:fd0a59e55a85 237 #if (PAD_LIST || CC_ContextSave)
LordOfDorks 1:fd0a59e55a85 238 {0x0162, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ContextSave
LordOfDorks 1:fd0a59e55a85 239 #endif
LordOfDorks 1:fd0a59e55a85 240 #if (PAD_LIST || CC_ECDH_KeyGen)
LordOfDorks 1:fd0a59e55a85 241 {0x0163, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ECDH_KeyGen
LordOfDorks 1:fd0a59e55a85 242 #endif
LordOfDorks 1:fd0a59e55a85 243 #if (PAD_LIST || CC_EncryptDecrypt)
LordOfDorks 1:fd0a59e55a85 244 {0x0164, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_EncryptDecrypt
LordOfDorks 1:fd0a59e55a85 245 #endif
LordOfDorks 1:fd0a59e55a85 246 #if (PAD_LIST || CC_FlushContext)
LordOfDorks 1:fd0a59e55a85 247 {0x0165, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_FlushContext
LordOfDorks 1:fd0a59e55a85 248 #endif
LordOfDorks 1:fd0a59e55a85 249 #if (PAD_LIST)
LordOfDorks 1:fd0a59e55a85 250 {0x0166, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
LordOfDorks 1:fd0a59e55a85 251 #endif
LordOfDorks 1:fd0a59e55a85 252 #if (PAD_LIST || CC_LoadExternal)
LordOfDorks 1:fd0a59e55a85 253 {0x0167, 0, 0, 0, 0, 0, 1, 0, 0}, // TPM_CC_LoadExternal
LordOfDorks 1:fd0a59e55a85 254 #endif
LordOfDorks 1:fd0a59e55a85 255 #if (PAD_LIST || CC_MakeCredential)
LordOfDorks 1:fd0a59e55a85 256 {0x0168, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_MakeCredential
LordOfDorks 1:fd0a59e55a85 257 #endif
LordOfDorks 1:fd0a59e55a85 258 #if (PAD_LIST || CC_NV_ReadPublic)
LordOfDorks 1:fd0a59e55a85 259 {0x0169, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_NV_ReadPublic
LordOfDorks 1:fd0a59e55a85 260 #endif
LordOfDorks 1:fd0a59e55a85 261 #if (PAD_LIST || CC_PolicyAuthorize)
LordOfDorks 1:fd0a59e55a85 262 {0x016a, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyAuthorize
LordOfDorks 1:fd0a59e55a85 263 #endif
LordOfDorks 1:fd0a59e55a85 264 #if (PAD_LIST || CC_PolicyAuthValue)
LordOfDorks 1:fd0a59e55a85 265 {0x016b, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyAuthValue
LordOfDorks 1:fd0a59e55a85 266 #endif
LordOfDorks 1:fd0a59e55a85 267 #if (PAD_LIST || CC_PolicyCommandCode)
LordOfDorks 1:fd0a59e55a85 268 {0x016c, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyCommandCode
LordOfDorks 1:fd0a59e55a85 269 #endif
LordOfDorks 1:fd0a59e55a85 270 #if (PAD_LIST || CC_PolicyCounterTimer)
LordOfDorks 1:fd0a59e55a85 271 {0x016d, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyCounterTimer
LordOfDorks 1:fd0a59e55a85 272 #endif
LordOfDorks 1:fd0a59e55a85 273 #if (PAD_LIST || CC_PolicyCpHash)
LordOfDorks 1:fd0a59e55a85 274 {0x016e, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyCpHash
LordOfDorks 1:fd0a59e55a85 275 #endif
LordOfDorks 1:fd0a59e55a85 276 #if (PAD_LIST || CC_PolicyLocality)
LordOfDorks 1:fd0a59e55a85 277 {0x016f, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyLocality
LordOfDorks 1:fd0a59e55a85 278 #endif
LordOfDorks 1:fd0a59e55a85 279 #if (PAD_LIST || CC_PolicyNameHash)
LordOfDorks 1:fd0a59e55a85 280 {0x0170, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyNameHash
LordOfDorks 1:fd0a59e55a85 281 #endif
LordOfDorks 1:fd0a59e55a85 282 #if (PAD_LIST || CC_PolicyOR)
LordOfDorks 1:fd0a59e55a85 283 {0x0171, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyOR
LordOfDorks 1:fd0a59e55a85 284 #endif
LordOfDorks 1:fd0a59e55a85 285 #if (PAD_LIST || CC_PolicyTicket)
LordOfDorks 1:fd0a59e55a85 286 {0x0172, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyTicket
LordOfDorks 1:fd0a59e55a85 287 #endif
LordOfDorks 1:fd0a59e55a85 288 #if (PAD_LIST || CC_ReadPublic)
LordOfDorks 1:fd0a59e55a85 289 {0x0173, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ReadPublic
LordOfDorks 1:fd0a59e55a85 290 #endif
LordOfDorks 1:fd0a59e55a85 291 #if (PAD_LIST || CC_RSA_Encrypt)
LordOfDorks 1:fd0a59e55a85 292 {0x0174, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_RSA_Encrypt
LordOfDorks 1:fd0a59e55a85 293 #endif
LordOfDorks 1:fd0a59e55a85 294 #if (PAD_LIST)
LordOfDorks 1:fd0a59e55a85 295 {0x0175, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
LordOfDorks 1:fd0a59e55a85 296 #endif
LordOfDorks 1:fd0a59e55a85 297 #if (PAD_LIST || CC_StartAuthSession)
LordOfDorks 1:fd0a59e55a85 298 {0x0176, 0, 0, 0, 0, 2, 1, 0, 0}, // TPM_CC_StartAuthSession
LordOfDorks 1:fd0a59e55a85 299 #endif
LordOfDorks 1:fd0a59e55a85 300 #if (PAD_LIST || CC_VerifySignature)
LordOfDorks 1:fd0a59e55a85 301 {0x0177, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_VerifySignature
LordOfDorks 1:fd0a59e55a85 302 #endif
LordOfDorks 1:fd0a59e55a85 303 #if (PAD_LIST || CC_ECC_Parameters)
LordOfDorks 1:fd0a59e55a85 304 {0x0178, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_ECC_Parameters
LordOfDorks 1:fd0a59e55a85 305 #endif
LordOfDorks 1:fd0a59e55a85 306 #if (PAD_LIST || CC_FirmwareRead)
LordOfDorks 1:fd0a59e55a85 307 {0x0179, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_FirmwareRead
LordOfDorks 1:fd0a59e55a85 308 #endif
LordOfDorks 1:fd0a59e55a85 309 #if (PAD_LIST || CC_GetCapability)
LordOfDorks 1:fd0a59e55a85 310 {0x017a, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_GetCapability
LordOfDorks 1:fd0a59e55a85 311 #endif
LordOfDorks 1:fd0a59e55a85 312 #if (PAD_LIST || CC_GetRandom)
LordOfDorks 1:fd0a59e55a85 313 {0x017b, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_GetRandom
LordOfDorks 1:fd0a59e55a85 314 #endif
LordOfDorks 1:fd0a59e55a85 315 #if (PAD_LIST || CC_GetTestResult)
LordOfDorks 1:fd0a59e55a85 316 {0x017c, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_GetTestResult
LordOfDorks 1:fd0a59e55a85 317 #endif
LordOfDorks 1:fd0a59e55a85 318 #if (PAD_LIST || CC_Hash)
LordOfDorks 1:fd0a59e55a85 319 {0x017d, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_Hash
LordOfDorks 1:fd0a59e55a85 320 #endif
LordOfDorks 1:fd0a59e55a85 321 #if (PAD_LIST || CC_PCR_Read)
LordOfDorks 1:fd0a59e55a85 322 {0x017e, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_PCR_Read
LordOfDorks 1:fd0a59e55a85 323 #endif
LordOfDorks 1:fd0a59e55a85 324 #if (PAD_LIST || CC_PolicyPCR)
LordOfDorks 1:fd0a59e55a85 325 {0x017f, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyPCR
LordOfDorks 1:fd0a59e55a85 326 #endif
LordOfDorks 1:fd0a59e55a85 327 #if (PAD_LIST || CC_PolicyRestart)
LordOfDorks 1:fd0a59e55a85 328 {0x0180, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyRestart
LordOfDorks 1:fd0a59e55a85 329 #endif
LordOfDorks 1:fd0a59e55a85 330 #if (PAD_LIST || CC_ReadClock)
LordOfDorks 1:fd0a59e55a85 331 {0x0181, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_ReadClock
LordOfDorks 1:fd0a59e55a85 332 #endif
LordOfDorks 1:fd0a59e55a85 333 #if (PAD_LIST || CC_PCR_Extend)
LordOfDorks 1:fd0a59e55a85 334 {0x0182, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_Extend
LordOfDorks 1:fd0a59e55a85 335 #endif
LordOfDorks 1:fd0a59e55a85 336 #if (PAD_LIST || CC_PCR_SetAuthValue)
LordOfDorks 1:fd0a59e55a85 337 {0x0183, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_SetAuthValue
LordOfDorks 1:fd0a59e55a85 338 #endif
LordOfDorks 1:fd0a59e55a85 339 #if (PAD_LIST || CC_NV_Certify)
LordOfDorks 1:fd0a59e55a85 340 {0x0184, 0, 0, 0, 0, 3, 0, 0, 0}, // TPM_CC_NV_Certify
LordOfDorks 1:fd0a59e55a85 341 #endif
LordOfDorks 1:fd0a59e55a85 342 #if (PAD_LIST || CC_EventSequenceComplete)
LordOfDorks 1:fd0a59e55a85 343 {0x0185, 0, 1, 0, 1, 2, 0, 0, 0}, // TPM_CC_EventSequenceComplete
LordOfDorks 1:fd0a59e55a85 344 #endif
LordOfDorks 1:fd0a59e55a85 345 #if (PAD_LIST || CC_HashSequenceStart)
LordOfDorks 1:fd0a59e55a85 346 {0x0186, 0, 0, 0, 0, 0, 1, 0, 0}, // TPM_CC_HashSequenceStart
LordOfDorks 1:fd0a59e55a85 347 #endif
LordOfDorks 1:fd0a59e55a85 348 #if (PAD_LIST || CC_PolicyPhysicalPresence)
LordOfDorks 1:fd0a59e55a85 349 {0x0187, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyPhysicalPresence
LordOfDorks 1:fd0a59e55a85 350 #endif
LordOfDorks 1:fd0a59e55a85 351 #if (PAD_LIST || CC_PolicyDuplicationSelect)
LordOfDorks 1:fd0a59e55a85 352 {0x0188, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyDuplicationSelect
LordOfDorks 1:fd0a59e55a85 353 #endif
LordOfDorks 1:fd0a59e55a85 354 #if (PAD_LIST || CC_PolicyGetDigest)
LordOfDorks 1:fd0a59e55a85 355 {0x0189, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyGetDigest
LordOfDorks 1:fd0a59e55a85 356 #endif
LordOfDorks 1:fd0a59e55a85 357 #if (PAD_LIST || CC_TestParms)
LordOfDorks 1:fd0a59e55a85 358 {0x018a, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_TestParms
LordOfDorks 1:fd0a59e55a85 359 #endif
LordOfDorks 1:fd0a59e55a85 360 #if (PAD_LIST || CC_Commit)
LordOfDorks 1:fd0a59e55a85 361 {0x018b, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Commit
LordOfDorks 1:fd0a59e55a85 362 #endif
LordOfDorks 1:fd0a59e55a85 363 #if (PAD_LIST || CC_PolicyPassword)
LordOfDorks 1:fd0a59e55a85 364 {0x018c, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyPassword
LordOfDorks 1:fd0a59e55a85 365 #endif
LordOfDorks 1:fd0a59e55a85 366 #if (PAD_LIST || CC_ZGen_2Phase)
LordOfDorks 1:fd0a59e55a85 367 {0x018d, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ZGen_2Phase
LordOfDorks 1:fd0a59e55a85 368 #endif
LordOfDorks 1:fd0a59e55a85 369 #if (PAD_LIST || CC_EC_Ephemeral)
LordOfDorks 1:fd0a59e55a85 370 {0x018e, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_EC_Ephemeral
LordOfDorks 1:fd0a59e55a85 371 #endif
LordOfDorks 1:fd0a59e55a85 372 #if (PAD_LIST || CC_PolicyNvWritten)
LordOfDorks 1:fd0a59e55a85 373 {0x018f, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyNvWritten
LordOfDorks 1:fd0a59e55a85 374 #endif
LordOfDorks 1:fd0a59e55a85 375 #if (PAD_LIST || CC_Vendor_TCG_Test)
LordOfDorks 1:fd0a59e55a85 376 {0x0000, 0, 0, 0, 0, 0, 0, 1, 0}, // TPM_CC_Vendor_TCG_Test
LordOfDorks 1:fd0a59e55a85 377 #endif
LordOfDorks 1:fd0a59e55a85 378 0
LordOfDorks 1:fd0a59e55a85 379 };
LordOfDorks 1:fd0a59e55a85 380
LordOfDorks 1:fd0a59e55a85 381 #endif // TPM_TIS_NO_COMMAND_FILTERING
LordOfDorks 3:4b9ad18eae02 382