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