Home | History | Annotate | Line # | Download | only in include
      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