1 2 /* 3 * Licensed Materials - Property of IBM 4 * 5 * trousers - An open source TCG Software Stack 6 * 7 * (C) Copyright International Business Machines Corp. 2004-2007 8 * 9 */ 10 11 #ifndef _TCS_UTILS_H_ 12 #define _TCS_UTILS_H_ 13 14 #include <assert.h> 15 16 #include "threads.h" 17 #include "tcs_context.h" 18 #include "tcs_tsp.h" 19 #include "trousers_types.h" 20 21 struct key_mem_cache 22 { 23 TCPA_KEY_HANDLE tpm_handle; 24 TCS_KEY_HANDLE tcs_handle; 25 UINT16 flags; 26 int ref_cnt; 27 UINT32 time_stamp; 28 TSS_UUID uuid; 29 TSS_UUID p_uuid; 30 TSS_KEY *blob; 31 struct key_mem_cache *parent; 32 struct key_mem_cache *next, *prev; 33 }; 34 35 extern struct key_mem_cache *key_mem_cache_head; 36 MUTEX_DECLARE_EXTERN(mem_cache_lock); 37 38 struct tpm_properties 39 { 40 UINT32 num_pcrs; 41 UINT32 num_dirs; 42 UINT32 num_keys; 43 UINT32 num_auths; 44 TSS_BOOL authctx_swap; 45 TSS_BOOL keyctx_swap; 46 TPM_VERSION version; 47 BYTE manufacturer[16]; 48 }; 49 50 extern struct tpm_properties tpm_metrics; 51 52 #define TPM_VERSION_IS(maj, min) \ 53 ((tpm_metrics.version.major == maj) && (tpm_metrics.version.minor == min)) 54 55 #define TSS_UUID_IS_OWNEREVICT(uuid) \ 56 ((!uuid->ulTimeLow) && (!uuid->usTimeMid) && (!uuid->usTimeHigh) && \ 57 (!uuid->bClockSeqHigh) && (!uuid->bClockSeqLow) && (!uuid->rgbNode[0]) && \ 58 (!uuid->rgbNode[1]) && (!uuid->rgbNode[2]) && (!uuid->rgbNode[3]) && \ 59 (uuid->rgbNode[4] == 1)) 60 61 #ifndef MIN 62 #define MIN(a,b) ((a) < (b) ? (a) : (b)) 63 #endif 64 #ifndef MAX 65 #define MAX(a,b) ((a) > (b) ? (a) : (b)) 66 #endif 67 68 TSS_RESULT get_tpm_metrics(struct tpm_properties *); 69 70 TSS_RESULT auth_mgr_init(); 71 TSS_RESULT auth_mgr_final(); 72 TSS_RESULT auth_mgr_check(TCS_CONTEXT_HANDLE, TPM_AUTHHANDLE *); 73 TSS_RESULT auth_mgr_release_auth_handle(TCS_AUTHHANDLE, TCS_CONTEXT_HANDLE, TSS_BOOL); 74 void auth_mgr_release_auth(TPM_AUTH *, TPM_AUTH *, TCS_CONTEXT_HANDLE); 75 TSS_RESULT auth_mgr_oiap(TCS_CONTEXT_HANDLE, TCS_AUTHHANDLE *, TCPA_NONCE *); 76 TSS_RESULT auth_mgr_osap(TCS_CONTEXT_HANDLE, TCPA_ENTITY_TYPE, UINT32, TCPA_NONCE, 77 TCS_AUTHHANDLE *, TCPA_NONCE *, TCPA_NONCE *); 78 TSS_RESULT auth_mgr_close_context(TCS_CONTEXT_HANDLE); 79 TSS_RESULT auth_mgr_swap_out(TCS_CONTEXT_HANDLE); 80 TSS_BOOL auth_mgr_req_new(TCS_CONTEXT_HANDLE); 81 TSS_RESULT auth_mgr_add(TCS_CONTEXT_HANDLE, TPM_AUTHHANDLE); 82 83 TSS_RESULT event_log_init(); 84 TSS_RESULT event_log_final(); 85 TSS_RESULT owner_evict_init(); 86 87 #ifdef TSS_BUILD_PCR_EVENTS 88 #define EVENT_LOG_init() event_log_init() 89 #define EVENT_LOG_final() event_log_final() 90 #else 91 #define EVENT_LOG_init() (TSS_SUCCESS) 92 #define EVENT_LOG_final() 93 #endif 94 95 #define next( x ) x = x->next 96 97 TSS_RESULT key_mgr_dec_ref_count(TCS_KEY_HANDLE); 98 TSS_RESULT key_mgr_inc_ref_count(TCS_KEY_HANDLE); 99 void key_mgr_ref_count(); 100 TSS_RESULT key_mgr_load_by_uuid(TCS_CONTEXT_HANDLE, TSS_UUID *, TCS_LOADKEY_INFO *, 101 TCS_KEY_HANDLE *); 102 TSS_RESULT key_mgr_load_by_blob(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE, UINT32, BYTE *, 103 TPM_AUTH *, TCS_KEY_HANDLE *, TCS_KEY_HANDLE *); 104 TSS_RESULT key_mgr_evict(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE); 105 106 107 extern TCS_CONTEXT_HANDLE InternalContext; 108 109 TSS_RESULT mc_update_time_stamp(TCPA_KEY_HANDLE); 110 TCS_KEY_HANDLE getNextTcsKeyHandle(); 111 TCPA_STORE_PUBKEY *getParentPubBySlot(TCPA_KEY_HANDLE slot); 112 TCPA_STORE_PUBKEY *mc_get_pub_by_slot(TCPA_KEY_HANDLE); 113 TCPA_STORE_PUBKEY *mc_get_pub_by_handle(TCS_KEY_HANDLE); 114 TSS_UUID *mc_get_uuid_by_pub(TCPA_STORE_PUBKEY *); 115 TSS_RESULT mc_get_handles_by_uuid(TSS_UUID *, TCS_KEY_HANDLE *, TCPA_KEY_HANDLE *); 116 TCS_KEY_HANDLE mc_get_handle_by_encdata(BYTE *); 117 TSS_RESULT mc_update_encdata(BYTE *, BYTE *); 118 TSS_RESULT mc_find_next_ownerevict_uuid(TSS_UUID *); 119 TSS_RESULT mc_set_uuid(TCS_KEY_HANDLE, TSS_UUID *); 120 121 TSS_RESULT initDiskCache(void); 122 void replaceEncData_PS(TSS_UUID, BYTE *encData, BYTE *newEncData); 123 124 TSS_RESULT mc_add_entry(TCS_KEY_HANDLE, TCPA_KEY_HANDLE, TSS_KEY *); 125 TSS_RESULT mc_add_entry_init(TCS_KEY_HANDLE, TCPA_KEY_HANDLE, TSS_KEY *, TSS_UUID *); 126 TSS_RESULT mc_remove_entry(TCS_KEY_HANDLE); 127 TSS_RESULT mc_set_slot_by_slot(TCPA_KEY_HANDLE, TCPA_KEY_HANDLE); 128 TSS_RESULT mc_set_slot_by_handle(TCS_KEY_HANDLE, TCPA_KEY_HANDLE); 129 TCPA_KEY_HANDLE mc_get_slot_by_handle(TCS_KEY_HANDLE); 130 TCPA_KEY_HANDLE mc_get_slot_by_handle_lock(TCS_KEY_HANDLE); 131 TCPA_KEY_HANDLE mc_get_slot_by_pub(TCPA_STORE_PUBKEY *); 132 TCS_KEY_HANDLE mc_get_handle_by_pub(TCPA_STORE_PUBKEY *, TCS_KEY_HANDLE); 133 TCPA_STORE_PUBKEY *mc_get_parent_pub_by_pub(TCPA_STORE_PUBKEY *); 134 TSS_BOOL isKeyRegistered(TCPA_STORE_PUBKEY *); 135 TSS_RESULT mc_get_blob_by_pub(TCPA_STORE_PUBKEY *, TSS_KEY **); 136 TSS_RESULT evictFirstKey(TCS_KEY_HANDLE); 137 TSS_RESULT getParentUUIDByUUID(TSS_UUID *, TSS_UUID *); 138 TSS_RESULT getRegisteredKeyByUUID(TSS_UUID *, BYTE *, UINT16 *); 139 TSS_RESULT isPubRegistered(TCPA_STORE_PUBKEY *); 140 TSS_RESULT getRegisteredUuidByPub(TCPA_STORE_PUBKEY *, TSS_UUID **); 141 TSS_RESULT getRegisteredKeyByPub(TCPA_STORE_PUBKEY *, UINT32 *, BYTE **); 142 TSS_BOOL isKeyLoaded(TCPA_KEY_HANDLE); 143 TSS_RESULT LoadKeyShim(TCS_CONTEXT_HANDLE, TCPA_STORE_PUBKEY *, TSS_UUID *,TCPA_KEY_HANDLE *); 144 TSS_RESULT mc_set_parent_by_handle(TCS_KEY_HANDLE, TCS_KEY_HANDLE); 145 TSS_RESULT isUUIDRegistered(TSS_UUID *, TSS_BOOL *); 146 void destroy_key_refs(TSS_KEY *); 147 148 /* cxt.c */ 149 TSS_RESULT context_close_auth(TCS_CONTEXT_HANDLE); 150 TSS_RESULT checkContextForAuth(TCS_CONTEXT_HANDLE, TCS_AUTHHANDLE); 151 TSS_RESULT addContextForAuth(TCS_CONTEXT_HANDLE, TCS_AUTHHANDLE); 152 TSS_RESULT ctx_verify_context(TCS_CONTEXT_HANDLE); 153 COND_VAR *ctx_get_cond_var(TCS_CONTEXT_HANDLE); 154 TSS_RESULT ctx_mark_key_loaded(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE); 155 TSS_RESULT ctx_remove_key_loaded(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE); 156 TSS_BOOL ctx_has_key_loaded(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE); 157 void ctx_ref_count_keys(struct tcs_context *); 158 struct tcs_context *get_context(TCS_CONTEXT_HANDLE); 159 TSS_RESULT ctx_req_exclusive_transport(TCS_CONTEXT_HANDLE); 160 TSS_RESULT ctx_set_transport_enabled(TCS_CONTEXT_HANDLE, TPM_TRANSHANDLE); 161 TSS_RESULT ctx_set_transport_disabled(TCS_CONTEXT_HANDLE, TCS_HANDLE *); 162 163 #ifdef TSS_BUILD_KEY 164 #define CTX_ref_count_keys(c) ctx_ref_count_keys(c) 165 #define KEY_MGR_ref_count() key_mgr_ref_count() 166 TSS_RESULT ensureKeyIsLoaded(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE, TCPA_KEY_HANDLE *); 167 #else 168 #define CTX_ref_count_keys(c) 169 #define KEY_MGR_ref_count() 170 #define ensureKeyIsLoaded(...) (1 /* XXX non-zero return will indicate failure */) 171 #endif 172 173 174 TCS_CONTEXT_HANDLE make_context(); 175 void destroy_context(TCS_CONTEXT_HANDLE); 176 177 /* tcs_utils.c */ 178 TSS_RESULT get_current_version(TPM_VERSION *); 179 void LogData(char *string, UINT32 data); 180 void LogResult(char *string, TSS_RESULT result); 181 TSS_RESULT canILoadThisKey(TCPA_KEY_PARMS *parms, TSS_BOOL *); 182 TSS_RESULT internal_EvictByKeySlot(TCPA_KEY_HANDLE slot); 183 184 TSS_RESULT clearKeysFromChip(TCS_CONTEXT_HANDLE hContext); 185 TSS_RESULT clearUnknownKeys(TCS_CONTEXT_HANDLE, UINT32 *); 186 187 void UINT64ToArray(UINT64, BYTE *); 188 void UINT32ToArray(UINT32, BYTE *); 189 void UINT16ToArray(UINT16, BYTE *); 190 UINT64 Decode_UINT64(BYTE *); 191 UINT32 Decode_UINT32(BYTE *); 192 UINT16 Decode_UINT16(BYTE *); 193 void LoadBlob_UINT64(UINT64 *, UINT64, BYTE *); 194 void LoadBlob_UINT32(UINT64 *, UINT32, BYTE *); 195 void LoadBlob_UINT16(UINT64 *, UINT16, BYTE *); 196 void UnloadBlob_UINT64(UINT64 *, UINT64 *, BYTE *); 197 void UnloadBlob_UINT32(UINT64 *, UINT32 *, BYTE *); 198 void UnloadBlob_UINT16(UINT64 *, UINT16 *, BYTE *); 199 void LoadBlob_BYTE(UINT64 *, BYTE, BYTE *); 200 void UnloadBlob_BYTE(UINT64 *, BYTE *, BYTE *); 201 void LoadBlob_BOOL(UINT64 *, TSS_BOOL, BYTE *); 202 void UnloadBlob_BOOL(UINT64 *, TSS_BOOL *, BYTE *); 203 void LoadBlob(UINT64 *, UINT32, BYTE *, BYTE *); 204 void UnloadBlob(UINT64 *, UINT32, BYTE *, BYTE *); 205 void LoadBlob_Header(UINT16, UINT32, UINT32, BYTE *); 206 #ifdef TSS_DEBUG 207 #define UnloadBlob_Header(b,u) LogUnloadBlob_Header(b,u, __FILE__, __LINE__) 208 TSS_RESULT LogUnloadBlob_Header(BYTE *, UINT32 *, char *, int); 209 #else 210 TSS_RESULT UnloadBlob_Header(BYTE *, UINT32 *); 211 #endif 212 TSS_RESULT UnloadBlob_MIGRATIONKEYAUTH(UINT64 *, BYTE *, TCPA_MIGRATIONKEYAUTH *); 213 void LoadBlob_Auth(UINT64 *, BYTE *, TPM_AUTH *); 214 void UnloadBlob_Auth(UINT64 *, BYTE *, TPM_AUTH *); 215 void LoadBlob_KEY_PARMS(UINT64 *, BYTE *, TCPA_KEY_PARMS *); 216 TSS_RESULT UnloadBlob_KEY_PARMS(UINT64 *, BYTE *, TCPA_KEY_PARMS *); 217 TSS_RESULT UnloadBlob_STORE_PUBKEY(UINT64 *, BYTE *, TCPA_STORE_PUBKEY *); 218 void LoadBlob_STORE_PUBKEY(UINT64 *, BYTE *, TCPA_STORE_PUBKEY *); 219 void UnloadBlob_VERSION(UINT64 *, BYTE *, TPM_VERSION *); 220 void LoadBlob_VERSION(UINT64 *, BYTE *, TPM_VERSION *); 221 void UnloadBlob_TCPA_VERSION(UINT64 *, BYTE *, TCPA_VERSION *); 222 void LoadBlob_TCPA_VERSION(UINT64 *, BYTE *, TCPA_VERSION *); 223 TSS_RESULT UnloadBlob_TSS_KEY(UINT64 *, BYTE *, TSS_KEY *); 224 void LoadBlob_TSS_KEY(UINT64 *, BYTE *, TSS_KEY *); 225 void LoadBlob_PUBKEY(UINT64 *, BYTE *, TCPA_PUBKEY *); 226 TSS_RESULT UnloadBlob_PUBKEY(UINT64 *, BYTE *, TCPA_PUBKEY *); 227 void LoadBlob_SYMMETRIC_KEY(UINT64 *, BYTE *, TCPA_SYMMETRIC_KEY *); 228 TSS_RESULT UnloadBlob_SYMMETRIC_KEY(UINT64 *, BYTE *, TCPA_SYMMETRIC_KEY *); 229 TSS_RESULT UnloadBlob_PCR_SELECTION(UINT64 *, BYTE *, TCPA_PCR_SELECTION *); 230 void LoadBlob_PCR_SELECTION(UINT64 *, BYTE *, TCPA_PCR_SELECTION); 231 TSS_RESULT UnloadBlob_PCR_COMPOSITE(UINT64 *, BYTE *, TCPA_PCR_COMPOSITE *); 232 void LoadBlob_PCR_INFO(UINT64 *, BYTE *, TCPA_PCR_INFO *); 233 TSS_RESULT UnloadBlob_PCR_INFO(UINT64 *, BYTE *, TCPA_PCR_INFO *); 234 TSS_RESULT UnloadBlob_STORED_DATA(UINT64 *, BYTE *, TCPA_STORED_DATA *); 235 void LoadBlob_STORED_DATA(UINT64 *, BYTE *, TCPA_STORED_DATA *); 236 void LoadBlob_KEY_FLAGS(UINT64 *, BYTE *, TCPA_KEY_FLAGS *); 237 void UnloadBlob_KEY_FLAGS(UINT64 *, BYTE *, TCPA_KEY_FLAGS *); 238 TSS_RESULT UnloadBlob_CERTIFY_INFO(UINT64 *, BYTE *, TCPA_CERTIFY_INFO *); 239 TSS_RESULT UnloadBlob_KEY_HANDLE_LIST(UINT64 *, BYTE *, TCPA_KEY_HANDLE_LIST *); 240 void LoadBlob_UUID(UINT64 *, BYTE *, TSS_UUID); 241 void UnloadBlob_UUID(UINT64 *, BYTE *, TSS_UUID *); 242 void LoadBlob_COUNTER_VALUE(UINT64 *, BYTE *, TPM_COUNTER_VALUE *); 243 void UnloadBlob_COUNTER_VALUE(UINT64 *, BYTE *, TPM_COUNTER_VALUE *); 244 void LoadBlob_DIGEST(UINT64 *, BYTE *, TPM_DIGEST *); 245 void UnloadBlob_DIGEST(UINT64 *, BYTE *, TPM_DIGEST *); 246 void LoadBlob_NONCE(UINT64 *, BYTE *, TPM_NONCE *); 247 void UnloadBlob_NONCE(UINT64 *, BYTE *, TPM_NONCE *); 248 void LoadBlob_AUTHDATA(UINT64 *, BYTE *, TPM_AUTHDATA *); 249 void UnloadBlob_AUTHDATA(UINT64 *, BYTE *, TPM_AUTHDATA *); 250 #define LoadBlob_ENCAUTH(a, b, c) LoadBlob_AUTHDATA(a, b, c) 251 #define UnloadBlob_ENCAUTH(a, b, c) UnloadBlob_AUTHDATA(a, b, c) 252 253 void UnloadBlob_CURRENT_TICKS(UINT64 *, BYTE *, TPM_CURRENT_TICKS *); 254 TSS_RESULT UnloadBlob_PCR_INFO_SHORT(UINT64 *, BYTE *, TPM_PCR_INFO_SHORT *); 255 256 TSS_RESULT Hash(UINT32, UINT32, BYTE *, BYTE *); 257 void free_external_events(UINT32, TSS_PCR_EVENT *); 258 259 TSS_RESULT internal_TerminateHandle(TCS_AUTHHANDLE handle); 260 UINT32 get_pcr_event_size(TSS_PCR_EVENT *); 261 TSS_RESULT fill_key_info(struct key_disk_cache *, struct key_mem_cache *, TSS_KM_KEYINFO *); 262 TSS_RESULT fill_key_info2(struct key_disk_cache *, struct key_mem_cache *, TSS_KM_KEYINFO2 *); 263 264 char platform_get_runlevel(); 265 TSS_RESULT tpm_rsp_parse(TPM_COMMAND_CODE, BYTE *, UINT32, ...); 266 TSS_RESULT tpm_rqu_build(TPM_COMMAND_CODE, UINT64 *, BYTE *, ...); 267 TSS_RESULT tpm_preload_check(TCS_CONTEXT_HANDLE, TPM_COMMAND_CODE ordinal, ...); 268 TSS_RESULT getKeyByCacheEntry(struct key_disk_cache *, BYTE *, UINT16 *); 269 TSS_RESULT add_cache_entry(TCS_CONTEXT_HANDLE, BYTE *, TCS_KEY_HANDLE, TPM_KEY_HANDLE, TCS_KEY_HANDLE *); 270 TSS_RESULT get_slot(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE, TPM_KEY_HANDLE *); 271 TSS_RESULT get_slot_lite(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE, TPM_KEY_HANDLE *); 272 TSS_RESULT load_key_init(TPM_COMMAND_CODE, TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE, UINT32, BYTE*, TSS_BOOL, TPM_AUTH*, TSS_BOOL*, UINT64*, BYTE*, TCS_KEY_HANDLE*, TPM_KEY_HANDLE*); 273 TSS_RESULT load_key_final(TCS_CONTEXT_HANDLE, TCS_KEY_HANDLE, TCS_KEY_HANDLE *, BYTE *, TPM_KEY_HANDLE); 274 TSS_RESULT LoadKeyByBlob_Internal(UINT32,TCS_CONTEXT_HANDLE,TCS_KEY_HANDLE,UINT32,BYTE *,TPM_AUTH *, 275 TCS_KEY_HANDLE *,TCS_KEY_HANDLE *); 276 TSS_RESULT TSC_PhysicalPresence_Internal(UINT16 physPres); 277 TSS_RESULT TCSP_FlushSpecific_Common(UINT32, TPM_RESOURCE_TYPE); 278 279 TSS_RESULT TCSP_GetRegisteredKeyByPublicInfo_Internal(TCS_CONTEXT_HANDLE tcsContext, TCPA_ALGORITHM_ID algID, /* in */ 280 UINT32 ulPublicInfoLength, /* in */ 281 BYTE * rgbPublicInfo, /* in */ 282 UINT32 * keySize, BYTE ** keyBlob); 283 284 TSS_RESULT TCS_OpenContext_Internal(TCS_CONTEXT_HANDLE * hContext /* out */ 285 ); 286 287 TSS_RESULT TCS_CloseContext_Internal(TCS_CONTEXT_HANDLE hContext /* in */ 288 ); 289 290 TSS_RESULT TCS_FreeMemory_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 291 BYTE * pMemory /* in */ 292 ); 293 294 TSS_RESULT TCS_LogPcrEvent_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 295 TSS_PCR_EVENT Event, /* in */ 296 UINT32 * pNumber /* out */ 297 ); 298 299 TSS_RESULT TCS_GetPcrEvent_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 300 UINT32 PcrIndex, /* in */ 301 UINT32 * pNumber, /* in, out */ 302 TSS_PCR_EVENT ** ppEvent /* out */ 303 ); 304 305 TSS_RESULT TCS_GetPcrEventsByPcr_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 306 UINT32 PcrIndex, /* in */ 307 UINT32 FirstEvent, /* in */ 308 UINT32 * pEventCount, /* in,out */ 309 TSS_PCR_EVENT ** ppEvents /* out */ 310 ); 311 312 TSS_RESULT TCS_GetPcrEventLog_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 313 UINT32 * pEventCount, /* out */ 314 TSS_PCR_EVENT ** ppEvents /* out */ 315 ); 316 317 TSS_RESULT TCS_RegisterKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 318 TSS_UUID *WrappingKeyUUID, /* in */ 319 TSS_UUID *KeyUUID, /* in */ 320 UINT32 cKeySize, /* in */ 321 BYTE * rgbKey, /* in */ 322 UINT32 cVendorData, /* in */ 323 BYTE * gbVendorData /* in */ 324 ); 325 326 TSS_RESULT TCS_UnregisterKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 327 TSS_UUID KeyUUID /* in */ 328 ); 329 330 TSS_RESULT TCS_EnumRegisteredKeys_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 331 TSS_UUID * pKeyUUID, /* in */ 332 UINT32 * pcKeyHierarchySize, /* out */ 333 TSS_KM_KEYINFO ** ppKeyHierarchy /* out */ 334 ); 335 336 TSS_RESULT TCS_EnumRegisteredKeys_Internal2(TCS_CONTEXT_HANDLE hContext, /* in */ 337 TSS_UUID * pKeyUUID, /* in */ 338 UINT32 * pcKeyHierarchySize, /* out */ 339 TSS_KM_KEYINFO2 ** ppKeyHierarchy /* out */ 340 ); 341 342 TSS_RESULT TCS_GetRegisteredKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 343 TSS_UUID *KeyUUID, /* in */ 344 TSS_KM_KEYINFO ** ppKeyInfo /* out */ 345 ); 346 347 TSS_RESULT TCS_GetRegisteredKeyBlob_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 348 TSS_UUID *KeyUUID, /* in */ 349 UINT32 * pcKeySize, /* out */ 350 BYTE ** prgbKey /* out */ 351 ); 352 353 TSS_RESULT TCSP_LoadKeyByBlob_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 354 TCS_KEY_HANDLE hUnwrappingKey, /* in */ 355 UINT32 cWrappedKeyBlobSize, /* in */ 356 BYTE * rgbWrappedKeyBlob, /* in */ 357 TPM_AUTH * pAuth, /* in, out */ 358 TCS_KEY_HANDLE * phKeyTCSI, /* out */ 359 TCS_KEY_HANDLE * phKeyHMAC /* out */ 360 ); 361 362 TSS_RESULT TCSP_LoadKey2ByBlob_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 363 TCS_KEY_HANDLE hUnwrappingKey, /* in */ 364 UINT32 cWrappedKeyBlobSize, /* in */ 365 BYTE * rgbWrappedKeyBlob, /* in */ 366 TPM_AUTH * pAuth, /* in, out */ 367 TCS_KEY_HANDLE * phKeyTCSI /* out */ 368 ); 369 370 TSS_RESULT TCSP_LoadKeyByUUID_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 371 TSS_UUID *KeyUUID, /* in */ 372 TCS_LOADKEY_INFO * pLoadKeyInfo, /* in, out */ 373 TCS_KEY_HANDLE * phKeyTCSI /* out */ 374 ); 375 376 TSS_RESULT TCSP_EvictKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 377 TCS_KEY_HANDLE hKey /* in */ 378 ); 379 380 TSS_RESULT TCSP_CreateWrapKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 381 TCS_KEY_HANDLE hWrappingKey, /* in */ 382 TCPA_ENCAUTH KeyUsageAuth, /* in */ 383 TCPA_ENCAUTH KeyMigrationAuth, /* in */ 384 UINT32 keyInfoSize, /* in */ 385 BYTE * keyInfo, /* in */ 386 UINT32 * keyDataSize, /* out */ 387 BYTE ** keyData, /* out */ 388 TPM_AUTH * pAuth /* in, out */ 389 ); 390 391 TSS_RESULT TCSP_GetPubKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 392 TCS_KEY_HANDLE hKey, /* in */ 393 TPM_AUTH * pAuth, /* in, out */ 394 UINT32 * pcPubKeySize, /* out */ 395 BYTE ** prgbPubKey /* out */ 396 ); 397 TSS_RESULT TCSP_MakeIdentity_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 398 TCPA_ENCAUTH identityAuth, /* in */ 399 TCPA_CHOSENID_HASH IDLabel_PrivCAHash, /* in */ 400 UINT32 idKeyInfoSize, /*in */ 401 BYTE * idKeyInfo, /*in */ 402 TPM_AUTH * pSrkAuth, /* in, out */ 403 TPM_AUTH * pOwnerAuth, /* in, out */ 404 UINT32 * idKeySize, /* out */ 405 BYTE ** idKey, /* out */ 406 UINT32 * pcIdentityBindingSize, /* out */ 407 BYTE ** prgbIdentityBinding, /* out */ 408 UINT32 * pcEndorsementCredentialSize, /* out */ 409 BYTE ** prgbEndorsementCredential, /* out */ 410 UINT32 * pcPlatformCredentialSize, /* out */ 411 BYTE ** prgbPlatformCredential, /* out */ 412 UINT32 * pcConformanceCredentialSize, /* out */ 413 BYTE ** prgbConformanceCredential /* out */ 414 ); 415 416 TSS_RESULT TCSP_MakeIdentity2_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 417 TCPA_ENCAUTH identityAuth, /* in */ 418 TCPA_CHOSENID_HASH IDLabel_PrivCAHash, /* in */ 419 UINT32 idKeyInfoSize, /*in */ 420 BYTE * idKeyInfo, /*in */ 421 TPM_AUTH * pSrkAuth, /* in, out */ 422 TPM_AUTH * pOwnerAuth, /* in, out */ 423 UINT32 * idKeySize, /* out */ 424 BYTE ** idKey, /* out */ 425 UINT32 * pcIdentityBindingSize, /* out */ 426 BYTE ** prgbIdentityBinding /* out */ 427 ); 428 429 TSS_RESULT TCS_GetCredential_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 430 UINT32 ulCredentialType, /* in */ 431 UINT32 ulCredentialAccessMode, /* in */ 432 UINT32 * pulCredentialSize, /* out */ 433 BYTE ** prgbCredentialData /* out */ 434 ); 435 436 TSS_RESULT TCSP_SetOwnerInstall_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 437 TSS_BOOL state /* in */ 438 ); 439 440 TSS_RESULT TCSP_TakeOwnership_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 441 UINT16 protocolID, /* in */ 442 UINT32 encOwnerAuthSize, /* in */ 443 BYTE * encOwnerAuth, /* in */ 444 UINT32 encSrkAuthSize, /* in */ 445 BYTE * encSrkAuth, /* in */ 446 UINT32 srkInfoSize, /*in */ 447 BYTE * srkInfo, /*in */ 448 TPM_AUTH * ownerAuth, /* in, out */ 449 UINT32 * srkKeySize, /*out */ 450 BYTE ** srkKey /*out */ 451 ); 452 453 TSS_RESULT TCSP_OIAP_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 454 TCS_AUTHHANDLE * authHandle, /* out */ 455 TCPA_NONCE * nonce0 /* out */ 456 ); 457 458 TSS_RESULT TCSP_OSAP_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 459 TCPA_ENTITY_TYPE entityType, /* in */ 460 UINT32 entityValue, /* in */ 461 TCPA_NONCE nonceOddOSAP, /* in */ 462 TCS_AUTHHANDLE * authHandle, /* out */ 463 TCPA_NONCE * nonceEven, /* out */ 464 TCPA_NONCE * nonceEvenOSAP /* out */ 465 ); 466 467 TSS_RESULT TCSP_ChangeAuth_Internal(TCS_CONTEXT_HANDLE contextHandle, /* in */ 468 TCS_KEY_HANDLE parentHandle, /* in */ 469 TCPA_PROTOCOL_ID protocolID, /* in */ 470 TCPA_ENCAUTH newAuth, /* in */ 471 TCPA_ENTITY_TYPE entityType, /* in */ 472 UINT32 encDataSize, /* in */ 473 BYTE * encData, /* in */ 474 TPM_AUTH * ownerAuth, /* in, out */ 475 TPM_AUTH * entityAuth, /* in, out */ 476 UINT32 * outDataSize, /* out */ 477 BYTE ** outData /* out */ 478 ); 479 480 TSS_RESULT TCSP_ChangeAuthOwner_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 481 TCPA_PROTOCOL_ID protocolID, /* in */ 482 TCPA_ENCAUTH newAuth, /* in */ 483 TCPA_ENTITY_TYPE entityType, /* in */ 484 TPM_AUTH * ownerAuth /* in, out */ 485 ); 486 487 TSS_RESULT TCSP_ChangeAuthAsymStart_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 488 TCS_KEY_HANDLE idHandle, /* in */ 489 TCPA_NONCE antiReplay, /* in */ 490 UINT32 KeySizeIn, /* in */ 491 BYTE * KeyDataIn, /* in */ 492 TPM_AUTH * pAuth, /* in, out */ 493 UINT32 * KeySizeOut, /* out */ 494 BYTE ** KeyDataOut, /* out */ 495 UINT32 * CertifyInfoSize, /* out */ 496 BYTE ** CertifyInfo, /* out */ 497 UINT32 * sigSize, /* out */ 498 BYTE ** sig, /* out */ 499 TCS_KEY_HANDLE * ephHandle /* out */ 500 ); 501 502 TSS_RESULT TCSP_ChangeAuthAsymFinish_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 503 TCS_KEY_HANDLE parentHandle, /* in */ 504 TCS_KEY_HANDLE ephHandle, /* in */ 505 TCPA_ENTITY_TYPE entityType, /* in */ 506 TCPA_HMAC newAuthLink, /* in */ 507 UINT32 newAuthSize, /* in */ 508 BYTE * encNewAuth, /* in */ 509 UINT32 encDataSizeIn, /* in */ 510 BYTE * encDataIn, /* in */ 511 TPM_AUTH * ownerAuth, /* in, out */ 512 UINT32 * encDataSizeOut, /* out */ 513 BYTE ** encDataOut, /* out */ 514 TCPA_NONCE * saltNonce, /* out */ 515 TCPA_DIGEST * changeProof /* out */ 516 ); 517 518 TSS_RESULT TCSP_TerminateHandle_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 519 TCS_AUTHHANDLE handle /* in */ 520 ); 521 522 TSS_RESULT TCSP_ActivateTPMIdentity_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 523 TCS_KEY_HANDLE idKey, /* in */ 524 UINT32 blobSize, /* in */ 525 BYTE * blob, /* in */ 526 TPM_AUTH * idKeyAuth, /* in, out */ 527 TPM_AUTH * ownerAuth, /* in, out */ 528 UINT32 * SymmetricKeySize, /* out */ 529 BYTE ** SymmetricKey /* out */ 530 ); 531 532 TSS_RESULT TCSP_Extend_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 533 TCPA_PCRINDEX pcrNum, /* in */ 534 TCPA_DIGEST inDigest, /* in */ 535 TCPA_PCRVALUE * outDigest /* out */ 536 ); 537 538 TSS_RESULT TCSP_PcrRead_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 539 TCPA_PCRINDEX pcrNum, /* in */ 540 TCPA_PCRVALUE * outDigest /* out */ 541 ); 542 543 TSS_RESULT TCSP_PcrReset_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 544 UINT32 pcrDataSizeIn, /* in */ 545 BYTE * pcrData /* in */ 546 ); 547 548 TSS_RESULT TCSP_Quote_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 549 TCS_KEY_HANDLE keyHandle, /* in */ 550 TCPA_NONCE antiReplay, /* in */ 551 UINT32 pcrDataSizeIn, /* in */ 552 BYTE * pcrDataIn, /* in */ 553 TPM_AUTH * privAuth, /* in, out */ 554 UINT32 * pcrDataSizeOut, /* out */ 555 BYTE ** pcrDataOut, /* out */ 556 UINT32 * sigSize, /* out */ 557 BYTE ** sig /* out */ 558 ); 559 560 TSS_RESULT TCSP_Quote2_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 561 TCS_KEY_HANDLE keyHandle, /* in */ 562 TCPA_NONCE antiReplay, /* in */ 563 UINT32 pcrDataSizeIn, /* in */ 564 BYTE * pcrDataIn, /* in */ 565 TSS_BOOL addVersion, /* in */ 566 TPM_AUTH * privAuth, /* in, out */ 567 UINT32 * pcrDataSizeOut, /* out */ 568 BYTE ** pcrDataOut, /* out */ 569 UINT32 * versionInfoSize, /* out */ 570 BYTE ** versionInfo, /* out */ 571 UINT32 * sigSize, /* out */ 572 BYTE ** sig /* out */ 573 ); 574 575 TSS_RESULT TCSP_DirWriteAuth_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 576 TCPA_DIRINDEX dirIndex, /* in */ 577 TCPA_DIRVALUE newContents, /* in */ 578 TPM_AUTH * ownerAuth /* in, out */ 579 ); 580 581 TSS_RESULT TCSP_DirRead_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 582 TCPA_DIRINDEX dirIndex, /* in */ 583 TCPA_DIRVALUE * dirValue /* out */ 584 ); 585 586 /* Since only the ordinal differs between Seal and Sealx (from an API point of view), 587 use a common Seal function specifying the ordinal to be sent to the TPM. */ 588 TSS_RESULT TCSP_Seal_Internal(UINT32 sealOrdinal, /* in */ 589 TCS_CONTEXT_HANDLE hContext, /* in */ 590 TCS_KEY_HANDLE keyHandle, /* in */ 591 TCPA_ENCAUTH encAuth, /* in */ 592 UINT32 pcrInfoSize, /* in */ 593 BYTE * PcrInfo, /* in */ 594 UINT32 inDataSize, /* in */ 595 BYTE * inData, /* in */ 596 TPM_AUTH * pubAuth, /* in, out */ 597 UINT32 * SealedDataSize, /* out */ 598 BYTE ** SealedData /* out */ 599 ); 600 601 TSS_RESULT TCSP_Unseal_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 602 TCS_KEY_HANDLE parentHandle, /* in */ 603 UINT32 SealedDataSize, /* in */ 604 BYTE * SealedData, /* in */ 605 TPM_AUTH * parentAuth, /* in, out */ 606 TPM_AUTH * dataAuth, /* in, out */ 607 UINT32 * DataSize, /* out */ 608 BYTE ** Data /* out */ 609 ); 610 611 TSS_RESULT TCSP_UnBind_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 612 TCS_KEY_HANDLE keyHandle, /* in */ 613 UINT32 inDataSize, /* in */ 614 BYTE * inData, /* in */ 615 TPM_AUTH * privAuth, /* in, out */ 616 UINT32 * outDataSize, /* out */ 617 BYTE ** outData /* out */ 618 ); 619 TSS_RESULT TCSP_CreateMigrationBlob_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 620 TCS_KEY_HANDLE parentHandle, /* in */ 621 TCPA_MIGRATE_SCHEME migrationType, /* in */ 622 UINT32 MigrationKeyAuthSize, /* in */ 623 BYTE * MigrationKeyAuth, /* in */ 624 UINT32 encDataSize, /* in */ 625 BYTE * encData, /* in */ 626 TPM_AUTH * parentAuth, /* in, out */ 627 TPM_AUTH * entityAuth, /* in, out */ 628 UINT32 * randomSize, /* out */ 629 BYTE ** random, /* out */ 630 UINT32 * outDataSize, /* out */ 631 BYTE ** outData /* out */ 632 ); 633 634 TSS_RESULT TCSP_ConvertMigrationBlob_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 635 TCS_KEY_HANDLE parentHandle, /* in */ 636 UINT32 inDataSize, /* in */ 637 BYTE * inData, /* in */ 638 UINT32 randomSize, /* in */ 639 BYTE * random, /* in */ 640 TPM_AUTH * parentAuth, /* in, out */ 641 UINT32 * outDataSize, /* out */ 642 BYTE ** outData /* out */ 643 ); 644 645 TSS_RESULT TCSP_AuthorizeMigrationKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 646 TCPA_MIGRATE_SCHEME migrateScheme, /* in */ 647 UINT32 MigrationKeySize, /* in */ 648 BYTE * MigrationKey, /* in */ 649 TPM_AUTH * ownerAuth, /* in, out */ 650 UINT32 * MigrationKeyAuthSize, /* out */ 651 BYTE ** MigrationKeyAuth /* out */ 652 ); 653 654 TSS_RESULT TCSP_CertifyKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 655 TCS_KEY_HANDLE certHandle, /* in */ 656 TCS_KEY_HANDLE keyHandle, /* in */ 657 TCPA_NONCE antiReplay, /* in */ 658 TPM_AUTH * certAuth, /* in, out */ 659 TPM_AUTH * keyAuth, /* in, out */ 660 UINT32 * CertifyInfoSize, /* out */ 661 BYTE ** CertifyInfo, /* out */ 662 UINT32 * outDataSize, /* out */ 663 BYTE ** outData /* out */ 664 ); 665 666 TSS_RESULT TCSP_Sign_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 667 TCS_KEY_HANDLE keyHandle, /* in */ 668 UINT32 areaToSignSize, /* in */ 669 BYTE * areaToSign, /* in */ 670 TPM_AUTH * privAuth, /* in, out */ 671 UINT32 * sigSize, /* out */ 672 BYTE ** sig /* out */ 673 ); 674 675 TSS_RESULT TCSP_GetRandom_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 676 UINT32 * bytesRequested, /* in, out */ 677 BYTE ** randomBytes /* out */ 678 ); 679 680 TSS_RESULT TCSP_StirRandom_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 681 UINT32 inDataSize, /* in */ 682 BYTE * inData /* in */ 683 ); 684 685 TSS_RESULT TCS_GetCapability_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 686 TCPA_CAPABILITY_AREA capArea, /* in */ 687 UINT32 subCapSize, /* in */ 688 BYTE * subCap, /* in */ 689 UINT32 * respSize, /* out */ 690 BYTE ** resp /* out */ 691 ); 692 693 TSS_RESULT TCSP_GetCapability_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 694 TCPA_CAPABILITY_AREA capArea, /* in */ 695 UINT32 subCapSize, /* in */ 696 BYTE * subCap, /* in */ 697 UINT32 * respSize, /* out */ 698 BYTE ** resp /* out */ 699 ); 700 TSS_RESULT TCSP_SetCapability_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 701 TCPA_CAPABILITY_AREA capArea, /* in */ 702 UINT32 subCapSize, /* in */ 703 BYTE * subCap, /* in */ 704 UINT32 valueSize, /* in */ 705 BYTE * value, /* in */ 706 TPM_AUTH * pOwnerAuth /* in, out */ 707 ); 708 TSS_RESULT TCSP_GetCapabilityOwner_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 709 TPM_AUTH * pOwnerAuth, /* out */ 710 TCPA_VERSION * pVersion, /* out */ 711 UINT32 * pNonVolatileFlags, /* out */ 712 UINT32 * pVolatileFlags /* out */ 713 ); 714 715 TSS_RESULT TCSP_CreateEndorsementKeyPair_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 716 TCPA_NONCE antiReplay, /* in */ 717 UINT32 endorsementKeyInfoSize, /* in */ 718 BYTE * endorsementKeyInfo, /* in */ 719 UINT32 * endorsementKeySize, /* out */ 720 BYTE ** endorsementKey, /* out */ 721 TCPA_DIGEST * checksum /* out */ 722 ); 723 724 TSS_RESULT TCSP_ReadPubek_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 725 TCPA_NONCE antiReplay, /* in */ 726 UINT32 * pubEndorsementKeySize, /* out */ 727 BYTE ** pubEndorsementKey, /* out */ 728 TCPA_DIGEST * checksum /* out */ 729 ); 730 731 TSS_RESULT TCSP_DisablePubekRead_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 732 TPM_AUTH * ownerAuth /* in, out */ 733 ); 734 735 TSS_RESULT TCSP_OwnerReadPubek_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 736 TPM_AUTH * ownerAuth, /* in, out */ 737 UINT32 * pubEndorsementKeySize, /* out */ 738 BYTE ** pubEndorsementKey /* out */ 739 ); 740 741 TSS_RESULT TCSP_CreateRevocableEndorsementKeyPair_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 742 TPM_NONCE antiReplay, /* in */ 743 UINT32 endorsementKeyInfoSize, /* in */ 744 BYTE * endorsementKeyInfo, /* in */ 745 TSS_BOOL genResetAuth, /* in */ 746 TPM_DIGEST * eKResetAuth, /* in, out */ 747 UINT32 * endorsementKeySize, /* out */ 748 BYTE ** endorsementKey, /* out */ 749 TPM_DIGEST * checksum /* out */ 750 ); 751 752 TSS_RESULT TCSP_RevokeEndorsementKeyPair_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 753 TPM_DIGEST EKResetAuth /* in */ 754 ); 755 756 TSS_RESULT TCSP_SelfTestFull_Internal(TCS_CONTEXT_HANDLE hContext /* in */ 757 ); 758 759 TSS_RESULT TCSP_CertifySelfTest_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 760 TCS_KEY_HANDLE keyHandle, /* in */ 761 TCPA_NONCE antiReplay, /* in */ 762 TPM_AUTH * privAuth, /* in, out */ 763 UINT32 * sigSize, /* out */ 764 BYTE ** sig /* out */ 765 ); 766 767 TSS_RESULT TCSP_GetTestResult_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 768 UINT32 * outDataSize, /* out */ 769 BYTE ** outData /* out */ 770 ); 771 772 TSS_RESULT TCSP_OwnerSetDisable_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 773 TSS_BOOL disableState, /* in */ 774 TPM_AUTH * ownerAuth /* in, out */ 775 ); 776 777 TSS_RESULT TCSP_ResetLockValue_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 778 TPM_AUTH * ownerAuth /* in, out */ 779 ); 780 781 TSS_RESULT TCSP_OwnerClear_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 782 TPM_AUTH * ownerAuth /* in, out */ 783 ); 784 785 TSS_RESULT TCSP_DisableOwnerClear_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 786 TPM_AUTH * ownerAuth /* in, out */ 787 ); 788 789 TSS_RESULT TCSP_ForceClear_Internal(TCS_CONTEXT_HANDLE hContext /* in */ 790 ); 791 792 TSS_RESULT TCSP_DisableForceClear_Internal(TCS_CONTEXT_HANDLE hContext /* in */ 793 ); 794 795 TSS_RESULT TCSP_PhysicalPresence_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 796 TCPA_PHYSICAL_PRESENCE fPhysicalPresence /* in */ 797 ); 798 799 TSS_RESULT TCSP_PhysicalDisable_Internal(TCS_CONTEXT_HANDLE hContext /* in */ 800 ); 801 802 TSS_RESULT TCSP_PhysicalEnable_Internal(TCS_CONTEXT_HANDLE hContext /* in */ 803 ); 804 805 TSS_RESULT TCSP_PhysicalSetDeactivated_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 806 TSS_BOOL state /* in */ 807 ); 808 809 TSS_RESULT TCSP_SetTempDeactivated_Internal(TCS_CONTEXT_HANDLE hContext /* in */ 810 ); 811 812 TSS_RESULT TCSP_SetTempDeactivated2_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 813 TPM_AUTH * operatorAuth /* in, out */ 814 ); 815 816 TSS_RESULT TCSP_FieldUpgrade_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 817 UINT32 dataInSize, /* in */ 818 BYTE * dataIn, /* in */ 819 UINT32 * dataOutSize, /* out */ 820 BYTE ** dataOut, /* out */ 821 TPM_AUTH * ownerAuth /* in, out */ 822 ); 823 824 TSS_RESULT TCSP_SetRedirection_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 825 TCS_KEY_HANDLE keyHandle, /* in */ 826 UINT32 c1, /* in */ 827 UINT32 c2, /* in */ 828 TPM_AUTH * privAuth /* in, out */ 829 ); 830 831 TSS_RESULT TCSP_CreateMaintenanceArchive_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 832 TSS_BOOL generateRandom, /* in */ 833 TPM_AUTH * ownerAuth, /* in, out */ 834 UINT32 * randomSize, /* out */ 835 BYTE ** random, /* out */ 836 UINT32 * archiveSize, /* out */ 837 BYTE ** archive /* out */ 838 ); 839 840 TSS_RESULT TCSP_LoadMaintenanceArchive_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 841 UINT32 dataInSize, /* in */ 842 BYTE * dataIn, /* in */ 843 TPM_AUTH * ownerAuth, /* in, out */ 844 UINT32 * dataOutSize, /* out */ 845 BYTE ** dataOut /* out */ 846 ); 847 848 TSS_RESULT TCSP_KillMaintenanceFeature_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 849 TPM_AUTH * ownerAuth /* in, out */ 850 ); 851 852 TSS_RESULT TCSP_LoadManuMaintPub_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 853 TCPA_NONCE antiReplay, /* in */ 854 UINT32 PubKeySize, /* in */ 855 BYTE * PubKey, /* in */ 856 TCPA_DIGEST * checksum /* out */ 857 ); 858 859 TSS_RESULT TCSP_ReadManuMaintPub_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 860 TCPA_NONCE antiReplay, /* in */ 861 TCPA_DIGEST * checksum /* out */ 862 ); 863 TSS_RESULT TCSP_Reset_Internal(TCS_CONTEXT_HANDLE hContext 864 ); 865 TSS_RESULT TCSP_DaaJoin_internal(TCS_CONTEXT_HANDLE hContext, /* in */ 866 TPM_HANDLE handle, /* in */ 867 BYTE stage, /* in */ 868 UINT32 inputSize0, /* in */ 869 BYTE *inputData0, /* in */ 870 UINT32 inputSize1, /* in */ 871 BYTE *inputData1, /* in */ 872 TPM_AUTH * ownerAuth, /* in, out */ 873 UINT32 *outputSize, /* out */ 874 BYTE **outputData /* out */ 875 ); 876 877 TSS_RESULT TCSP_DaaSign_internal(TCS_CONTEXT_HANDLE hContext, /* in */ 878 TPM_HANDLE handle, /* in */ 879 BYTE stage, /* in */ 880 UINT32 inputSize0, /* in */ 881 BYTE *inputData0, /* in */ 882 UINT32 inputSize1, /* in */ 883 BYTE *inputData1, /* in */ 884 TPM_AUTH * ownerAuth, /* in, out */ 885 UINT32 *outputSize, /* out */ 886 BYTE **outputData /* out */ 887 ); 888 889 890 TSS_RESULT TCSP_ReadCounter_Internal(TCS_CONTEXT_HANDLE hContext, 891 TSS_COUNTER_ID idCounter, 892 TPM_COUNTER_VALUE* counterValue 893 ); 894 895 TSS_RESULT TCSP_CreateCounter_Internal(TCS_CONTEXT_HANDLE hContext, 896 UINT32 LabelSize, 897 BYTE* pLabel, 898 TPM_ENCAUTH CounterAuth, 899 TPM_AUTH* pOwnerAuth, 900 TSS_COUNTER_ID* idCounter, 901 TPM_COUNTER_VALUE* counterValue 902 ); 903 904 TSS_RESULT TCSP_IncrementCounter_Internal(TCS_CONTEXT_HANDLE hContext, 905 TSS_COUNTER_ID idCounter, 906 TPM_AUTH* pCounterAuth, 907 TPM_COUNTER_VALUE* counterValue 908 ); 909 910 TSS_RESULT TCSP_ReleaseCounter_Internal(TCS_CONTEXT_HANDLE hContext, 911 TSS_COUNTER_ID idCounter, 912 TPM_AUTH* pCounterAuth 913 ); 914 915 TSS_RESULT TCSP_ReleaseCounterOwner_Internal(TCS_CONTEXT_HANDLE hContext, 916 TSS_COUNTER_ID idCounter, 917 TPM_AUTH* pOwnerAuth 918 ); 919 TSS_RESULT TCSP_ReadCurrentTicks_Internal(TCS_CONTEXT_HANDLE hContext, 920 UINT32* pulCurrentTime, 921 BYTE** prgbCurrentTime 922 ); 923 TSS_RESULT TCSP_TickStampBlob_Internal(TCS_CONTEXT_HANDLE hContext, 924 TCS_KEY_HANDLE hKey, 925 TPM_NONCE* antiReplay, 926 TPM_DIGEST* digestToStamp, 927 TPM_AUTH* privAuth, 928 UINT32* pulSignatureLength, 929 BYTE** prgbSignature, 930 UINT32* pulTickCountLength, 931 BYTE** prgbTickCount 932 ); 933 TSS_RESULT TCSP_EstablishTransport_Internal(TCS_CONTEXT_HANDLE hContext, 934 UINT32 ulTransControlFlags, 935 TCS_KEY_HANDLE hEncKey, 936 UINT32 ulTransSessionInfoSize, 937 BYTE* rgbTransSessionInfo, 938 UINT32 ulSecretSize, 939 BYTE* rgbSecret, 940 TPM_AUTH* pEncKeyAuth, 941 TPM_MODIFIER_INDICATOR* pbLocality, 942 TCS_HANDLE* hTransSession, 943 UINT32* ulCurrentTicksSize, 944 BYTE** prgbCurrentTicks, 945 TPM_NONCE* pTransNonce 946 ); 947 948 TSS_RESULT TCSP_ExecuteTransport_Internal(TCS_CONTEXT_HANDLE hContext, 949 TPM_COMMAND_CODE unWrappedCommandOrdinal, 950 UINT32 ulWrappedCmdParamInSize, 951 BYTE* rgbWrappedCmdParamIn, 952 UINT32* pulHandleListSize, 953 TCS_HANDLE** rghHandles, 954 TPM_AUTH* pWrappedCmdAuth1, 955 TPM_AUTH* pWrappedCmdAuth2, 956 TPM_AUTH* pTransAuth, 957 UINT64* punCurrentTicks, 958 TPM_MODIFIER_INDICATOR* pbLocality, 959 TPM_RESULT* pulWrappedCmdReturnCode, 960 UINT32* ulWrappedCmdParamOutSize, 961 BYTE** rgbWrappedCmdParamOut 962 ); 963 TSS_RESULT TCSP_ReleaseTransportSigned_Internal(TCS_CONTEXT_HANDLE hContext, 964 TCS_KEY_HANDLE hSignatureKey, 965 TPM_NONCE* AntiReplayNonce, 966 TPM_AUTH* pKeyAuth, 967 TPM_AUTH* pTransAuth, 968 TPM_MODIFIER_INDICATOR* pbLocality, 969 UINT32* pulCurrentTicksSize, 970 BYTE** prgbCurrentTicks, 971 UINT32* pulSignatureSize, 972 BYTE** prgbSignature 973 ); 974 975 TSS_RESULT TCSP_NV_DefineOrReleaseSpace_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 976 UINT32 cPubInfoSize, /* in */ 977 BYTE* pPubInfo, /* in */ 978 TPM_ENCAUTH encAuth, /* in */ 979 TPM_AUTH* pAuth /* in, out */ 980 ); 981 982 TSS_RESULT TCSP_NV_WriteValue_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 983 TSS_NV_INDEX hNVStore, /* in */ 984 UINT32 offset, /* in */ 985 UINT32 ulDataLength, /* in */ 986 BYTE* rgbDataToWrite, /* in */ 987 TPM_AUTH* privAuth /* in, out */ 988 ); 989 990 TSS_RESULT TCSP_NV_WriteValueAuth_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 991 TSS_NV_INDEX hNVStore, /* in */ 992 UINT32 offset, /* in */ 993 UINT32 ulDataLength, /* in */ 994 BYTE* rgbDataToWrite, /* in */ 995 TPM_AUTH* NVAuth /* in, out */ 996 ); 997 998 TSS_RESULT TCSP_NV_ReadValue_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 999 TSS_NV_INDEX hNVStore, /* in */ 1000 UINT32 offset, /* in */ 1001 UINT32* pulDataLength, /* in, out */ 1002 TPM_AUTH* privAuth, /* in, out */ 1003 BYTE** rgbDataRead /* out */ 1004 ); 1005 1006 TSS_RESULT TCSP_NV_ReadValueAuth_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1007 TSS_NV_INDEX hNVStore, /* in */ 1008 UINT32 offset, /* in */ 1009 UINT32* pulDataLength, /* in, out */ 1010 TPM_AUTH* NVAuth, /* in, out */ 1011 BYTE** rgbDataRead /* out */ 1012 ); 1013 1014 TSS_RESULT TCSP_SetOrdinalAuditStatus_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1015 TPM_AUTH* ownerAuth, /* in, out */ 1016 UINT32 ulOrdinal, /* in */ 1017 TSS_BOOL bAuditState /* in */ 1018 ); 1019 1020 TSS_RESULT TCSP_GetAuditDigest_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1021 UINT32 startOrdinal, /* in */ 1022 TPM_DIGEST* auditDigest, /* out */ 1023 UINT32* counterValueSize, /* out */ 1024 BYTE** counterValue, /* out */ 1025 TSS_BOOL* more, /* out */ 1026 UINT32* ordSize, /* out */ 1027 UINT32** ordList /* out */ 1028 ); 1029 1030 TSS_RESULT TCSP_GetAuditDigestSigned_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1031 TCS_KEY_HANDLE keyHandle, /* in */ 1032 TSS_BOOL closeAudit, /* in */ 1033 TPM_NONCE antiReplay, /* in */ 1034 TPM_AUTH* privAuth, /* in, out */ 1035 UINT32* counterValueSize, /* out */ 1036 BYTE** counterValue, /* out */ 1037 TPM_DIGEST* auditDigest, /* out */ 1038 TPM_DIGEST* ordinalDigest, /* out */ 1039 UINT32* sigSize, /* out */ 1040 BYTE** sig /* out */ 1041 ); 1042 1043 TSS_RESULT TCSP_SetOperatorAuth_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1044 TCPA_SECRET* operatorAuth /* in */ 1045 ); 1046 1047 TSS_RESULT TCSP_OwnerReadInternalPub_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1048 TCS_KEY_HANDLE hKey, /* in */ 1049 TPM_AUTH* pOwnerAuth, /*in, out*/ 1050 UINT32* punPubKeySize, /* out */ 1051 BYTE** ppbPubKeyData /* out */ 1052 ); 1053 1054 TSS_RESULT TCSP_Delegate_Manage_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1055 TPM_FAMILY_ID familyID, /* in */ 1056 TPM_FAMILY_OPERATION opFlag, /* in */ 1057 UINT32 opDataSize, /* in */ 1058 BYTE* opData, /* in */ 1059 TPM_AUTH* ownerAuth, /* in, out */ 1060 UINT32* retDataSize, /* out */ 1061 BYTE** retData /* out */ 1062 ); 1063 1064 TSS_RESULT TCSP_Delegate_CreateKeyDelegation_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1065 TCS_KEY_HANDLE hKey, /* in */ 1066 UINT32 publicInfoSize, /* in */ 1067 BYTE* publicInfo, /* in */ 1068 TPM_ENCAUTH* encDelAuth, /* in */ 1069 TPM_AUTH* keyAuth, /* in, out */ 1070 UINT32* blobSize, /* out */ 1071 BYTE** blob /* out */ 1072 ); 1073 1074 TSS_RESULT TCSP_Delegate_CreateOwnerDelegation_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1075 TSS_BOOL increment, /* in */ 1076 UINT32 publicInfoSize, /* in */ 1077 BYTE* publicInfo, /* in */ 1078 TPM_ENCAUTH* encDelAuth, /* in */ 1079 TPM_AUTH* ownerAuth, /* in, out */ 1080 UINT32* blobSize, /* out */ 1081 BYTE** blob /* out */ 1082 ); 1083 1084 TSS_RESULT TCSP_Delegate_LoadOwnerDelegation_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1085 TPM_DELEGATE_INDEX index, /* in */ 1086 UINT32 blobSize, /* in */ 1087 BYTE* blob, /* in */ 1088 TPM_AUTH* ownerAuth /* in, out */ 1089 ); 1090 1091 TSS_RESULT TCSP_Delegate_ReadTable_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1092 UINT32* pulFamilyTableSize, /* out */ 1093 BYTE** ppFamilyTable, /* out */ 1094 UINT32* pulDelegateTableSize, /* out */ 1095 BYTE** ppDelegateTable /* out */ 1096 ); 1097 1098 TSS_RESULT TCSP_Delegate_UpdateVerificationCount_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1099 UINT32 inputSize, /* in */ 1100 BYTE* input, /* in */ 1101 TPM_AUTH* ownerAuth, /* in, out */ 1102 UINT32* outputSize, /* out */ 1103 BYTE** output /* out */ 1104 ); 1105 1106 TSS_RESULT TCSP_Delegate_VerifyDelegation_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1107 UINT32 delegateSize, /* in */ 1108 BYTE* delegate /* in */ 1109 ); 1110 1111 TSS_RESULT TCSP_CMK_SetRestrictions_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1112 TSS_CMK_DELEGATE Restriction, /* in */ 1113 TPM_AUTH* ownerAuth /* in */ 1114 ); 1115 1116 TSS_RESULT TCSP_CMK_ApproveMA_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1117 TPM_DIGEST migAuthorityDigest, /* in */ 1118 TPM_AUTH* ownerAuth, /* in, out */ 1119 TPM_HMAC* HmacMigAuthDigest /* out */ 1120 ); 1121 1122 TSS_RESULT TCSP_CMK_CreateKey_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1123 TCS_KEY_HANDLE hWrappingKey, /* in */ 1124 TPM_ENCAUTH KeyUsageAuth, /* in */ 1125 TPM_HMAC MigAuthApproval, /* in */ 1126 TPM_DIGEST MigAuthorityDigest, /* in */ 1127 UINT32* keyDataSize, /* in, out */ 1128 BYTE** prgbKeyData, /* in, out */ 1129 TPM_AUTH* pAuth /* in, out */ 1130 ); 1131 1132 TSS_RESULT TCSP_CMK_CreateTicket_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1133 UINT32 PublicVerifyKeySize, /* in */ 1134 BYTE* PublicVerifyKey, /* in */ 1135 TPM_DIGEST SignedData, /* in */ 1136 UINT32 SigValueSize, /* in */ 1137 BYTE* SigValue, /* in */ 1138 TPM_AUTH* pOwnerAuth, /* in, out */ 1139 TPM_HMAC* SigTicket /* out */ 1140 ); 1141 1142 TSS_RESULT TCSP_CMK_CreateBlob_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1143 TCS_KEY_HANDLE parentHandle, /* in */ 1144 TSS_MIGRATE_SCHEME migrationType, /* in */ 1145 UINT32 MigrationKeyAuthSize, /* in */ 1146 BYTE* MigrationKeyAuth, /* in */ 1147 TPM_DIGEST PubSourceKeyDigest, /* in */ 1148 UINT32 msaListSize, /* in */ 1149 BYTE* msaList, /* in */ 1150 UINT32 restrictTicketSize, /* in */ 1151 BYTE* restrictTicket, /* in */ 1152 UINT32 sigTicketSize, /* in */ 1153 BYTE* sigTicket, /* in */ 1154 UINT32 encDataSize, /* in */ 1155 BYTE* encData, /* in */ 1156 TPM_AUTH* parentAuth, /* in, out */ 1157 UINT32* randomSize, /* out */ 1158 BYTE** random, /* out */ 1159 UINT32* outDataSize, /* out */ 1160 BYTE** outData /* out */ 1161 ); 1162 1163 TSS_RESULT TCSP_CMK_ConvertMigration_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1164 TCS_KEY_HANDLE parentHandle, /* in */ 1165 TPM_CMK_AUTH restrictTicket, /* in */ 1166 TPM_HMAC sigTicket, /* in */ 1167 UINT32 keyDataSize, /* in */ 1168 BYTE* prgbKeyData, /* in */ 1169 UINT32 msaListSize, /* in */ 1170 BYTE* msaList, /* in */ 1171 UINT32 randomSize, /* in */ 1172 BYTE* random, /* in */ 1173 TPM_AUTH* parentAuth, /* in, out */ 1174 UINT32* outDataSize, /* out */ 1175 BYTE** outData /* out */ 1176 ); 1177 TSS_RESULT TCSP_FlushSpecific_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1178 TCS_HANDLE hResHandle, /* in */ 1179 TPM_RESOURCE_TYPE resourceType /* in */ 1180 ); 1181 1182 TSS_RESULT TCSP_KeyControlOwner_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1183 TCS_KEY_HANDLE hKey, /* in */ 1184 UINT32 ulPubKeyLength, /* in */ 1185 BYTE* rgbPubKey, /* in */ 1186 UINT32 attribName, /* in */ 1187 TSS_BOOL attribValue, /* in */ 1188 TPM_AUTH* pOwnerAuth, /* in,out */ 1189 TSS_UUID* pUuidData /* out */ 1190 ); 1191 1192 TSS_RESULT TCSP_DSAP_Internal(TCS_CONTEXT_HANDLE hContext, /* in */ 1193 TPM_ENTITY_TYPE entityType, /* in */ 1194 TCS_KEY_HANDLE hKey, /* in */ 1195 TPM_NONCE *nonceOddDSAP, /* in */ 1196 UINT32 entityValueSize, /* in */ 1197 BYTE* entityValue, /* in */ 1198 TCS_AUTHHANDLE *authHandle, /* out */ 1199 TPM_NONCE *nonceEven, /* out */ 1200 TPM_NONCE *nonceEvenDSAP /* out */ 1201 ); 1202 1203 #endif /*_TCS_UTILS_H_ */ 1204