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