1723e4046Schristos 
2723e4046Schristos /*
3723e4046Schristos  * Licensed Materials - Property of IBM
4723e4046Schristos  *
5723e4046Schristos  * trousers - An open source TCG Software Stack
6723e4046Schristos  *
7723e4046Schristos  * (C) Copyright International Business Machines Corp. 2004-2007
8723e4046Schristos  *
9723e4046Schristos  */
10723e4046Schristos 
11723e4046Schristos #ifndef _RPC_TCSTP_TSP_H_
12723e4046Schristos #define _RPC_TCSTP_TSP_H_
13723e4046Schristos 
14723e4046Schristos #include "hosttable.h"
15723e4046Schristos #include "rpc_tcstp.h"
16723e4046Schristos #include "tcsd_wrap.h"
17723e4046Schristos #include "tcsd.h"
18723e4046Schristos 
19723e4046Schristos int setData(TCSD_PACKET_TYPE,int,void *,int,struct tcsd_comm_data *);
20723e4046Schristos UINT32 getData(TCSD_PACKET_TYPE,int,void *,int,struct tcsd_comm_data *);
21723e4046Schristos void initData(struct tcsd_comm_data *, int);
22723e4046Schristos TSS_RESULT sendTCSDPacket(struct host_table_entry *);
23723e4046Schristos TSS_RESULT send_init(struct host_table_entry *);
24723e4046Schristos TSS_RESULT tcs_sendit(struct host_table_entry *);
25*0861b331Schristos 
26*0861b331Schristos /* Underlying socket-related calls */
27*0861b331Schristos TSS_RESULT get_socket(struct host_table_entry *hte, int *sd);
28723e4046Schristos 
29723e4046Schristos /* Context commands always included */
30723e4046Schristos TSS_RESULT RPC_OpenContext_TP(struct host_table_entry *, UINT32 *, TCS_CONTEXT_HANDLE *);
31723e4046Schristos TSS_RESULT RPC_CloseContext_TP(struct host_table_entry *);
32723e4046Schristos TSS_RESULT RPC_FreeMemory_TP(struct host_table_entry *,BYTE *);
33723e4046Schristos 
34723e4046Schristos #ifdef TSS_BUILD_AUTH
35723e4046Schristos TSS_RESULT RPC_OIAP_TP(struct host_table_entry *,TCS_AUTHHANDLE *,TCPA_NONCE *);
36723e4046Schristos TSS_RESULT RPC_OSAP_TP(struct host_table_entry *,TCPA_ENTITY_TYPE,UINT32,TCPA_NONCE*,TCS_AUTHHANDLE *,TCPA_NONCE *,TCPA_NONCE *);
37723e4046Schristos #else
38723e4046Schristos #define RPC_OIAP_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
39723e4046Schristos #define RPC_OSAP_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
40723e4046Schristos #endif
41723e4046Schristos 
42723e4046Schristos #ifdef TSS_BUILD_PCR_EVENTS
43723e4046Schristos TSS_RESULT RPC_LogPcrEvent_TP(struct host_table_entry *,TSS_PCR_EVENT,UINT32 *);
44723e4046Schristos TSS_RESULT RPC_GetPcrEvent_TP(struct host_table_entry *,UINT32,UINT32 *,TSS_PCR_EVENT **);
45723e4046Schristos TSS_RESULT RPC_GetPcrEventLog_TP(struct host_table_entry *,UINT32 *,TSS_PCR_EVENT **);
46723e4046Schristos TSS_RESULT RPC_GetPcrEventsByPcr_TP(struct host_table_entry *,UINT32,UINT32,UINT32 *,TSS_PCR_EVENT **);
47723e4046Schristos #else
48723e4046Schristos #define RPC_LogPcrEvent_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
49723e4046Schristos #define RPC_GetPcrEvent_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
50723e4046Schristos #define RPC_GetPcrEventLog_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
51723e4046Schristos #define RPC_GetPcrEventsByPcr_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
52723e4046Schristos #endif
53723e4046Schristos 
54723e4046Schristos #ifdef TSS_BUILD_PS
55723e4046Schristos TSS_RESULT RPC_GetRegisteredKeyByPublicInfo_TP(struct host_table_entry * tcsContext,TCPA_ALGORITHM_ID algID,UINT32,BYTE *,UINT32 *,BYTE **);
56723e4046Schristos TSS_RESULT RPC_RegisterKey_TP(struct host_table_entry *,TSS_UUID,TSS_UUID,UINT32,BYTE *,UINT32,BYTE *);
57723e4046Schristos TSS_RESULT RPC_UnregisterKey_TP(struct host_table_entry *,TSS_UUID);
58723e4046Schristos TSS_RESULT RPC_EnumRegisteredKeys_TP(struct host_table_entry *,TSS_UUID *,UINT32 *,TSS_KM_KEYINFO **);
59723e4046Schristos TSS_RESULT RPC_EnumRegisteredKeys2_TP(struct host_table_entry *,TSS_UUID *,UINT32 *,TSS_KM_KEYINFO2 **);
60723e4046Schristos TSS_RESULT RPC_GetRegisteredKey_TP(struct host_table_entry *,TSS_UUID,TSS_KM_KEYINFO **);
61723e4046Schristos TSS_RESULT RPC_GetRegisteredKeyBlob_TP(struct host_table_entry *,TSS_UUID,UINT32 *,BYTE **);
62723e4046Schristos TSS_RESULT RPC_LoadKeyByUUID_TP(struct host_table_entry *,TSS_UUID,TCS_LOADKEY_INFO *,TCS_KEY_HANDLE *);
63723e4046Schristos #else
64723e4046Schristos #define RPC_GetRegisteredKeyByPublicInfo_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
65723e4046Schristos #define RPC_RegisterKey_TP(...)				TSPERR(TSS_E_INTERNAL_ERROR)
66723e4046Schristos #define RPC_UnregisterKey_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
67723e4046Schristos #define RPC_EnumRegisteredKeys_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
68723e4046Schristos #define RPC_EnumRegisteredKeys2_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
69723e4046Schristos #define RPC_GetRegisteredKey_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
70723e4046Schristos #define RPC_GetRegisteredKeyBlob_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
71723e4046Schristos #define RPC_LoadKeyByUUID_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
72723e4046Schristos #endif
73723e4046Schristos 
74723e4046Schristos #ifdef TSS_BUILD_KEY
75723e4046Schristos TSS_RESULT RPC_LoadKeyByBlob_TP(struct host_table_entry *,TCS_KEY_HANDLE,UINT32,BYTE *,TPM_AUTH *,TCS_KEY_HANDLE *,TCS_KEY_HANDLE *);
76723e4046Schristos TSS_RESULT RPC_EvictKey_TP(struct host_table_entry *,TCS_KEY_HANDLE);
77723e4046Schristos TSS_RESULT RPC_CreateWrapKey_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_ENCAUTH *,TCPA_ENCAUTH *,UINT32,BYTE *,UINT32 *,BYTE **,TPM_AUTH *);
78723e4046Schristos TSS_RESULT RPC_GetPubKey_TP(struct host_table_entry *,TCS_KEY_HANDLE,TPM_AUTH *,UINT32 *,BYTE **);
79723e4046Schristos TSS_RESULT RPC_TerminateHandle_TP(struct host_table_entry *,TCS_AUTHHANDLE);
80723e4046Schristos TSS_RESULT RPC_OwnerReadInternalPub_TP(struct host_table_entry *, TCS_KEY_HANDLE, TPM_AUTH *, UINT32 *, BYTE **);
81723e4046Schristos #ifdef TSS_BUILD_TSS12
82723e4046Schristos TSS_RESULT RPC_KeyControlOwner_TP(struct host_table_entry *, TCS_KEY_HANDLE, UINT32, BYTE *, UINT32, TSS_BOOL, TPM_AUTH *, TSS_UUID *);
83723e4046Schristos #else
84723e4046Schristos #define RPC_KeyControlOwner_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
85723e4046Schristos #endif
86723e4046Schristos #else
87723e4046Schristos #define RPC_LoadKeyByBlob_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
88723e4046Schristos #define RPC_EvictKey_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
89723e4046Schristos #define RPC_CreateWrapKey_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
90723e4046Schristos #define RPC_GetPubKey_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
91723e4046Schristos #define RPC_TerminateHandle_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
92723e4046Schristos #define RPC_OwnerReadInternalPub_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
93723e4046Schristos #define RPC_KeyControlOwner_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
94723e4046Schristos #endif
95723e4046Schristos 
96723e4046Schristos #ifdef TSS_BUILD_AIK
97723e4046Schristos TSS_RESULT RPC_MakeIdentity_TP(struct host_table_entry *,TCPA_ENCAUTH,TCPA_CHOSENID_HASH,UINT32,BYTE *,TPM_AUTH *,TPM_AUTH *,UINT32 *,BYTE **,UINT32 *,BYTE **,UINT32 *,BYTE **,UINT32 *,BYTE **,UINT32 *,BYTE **);
98723e4046Schristos TSS_RESULT RPC_GetCredential_TP(struct host_table_entry *,UINT32 ,UINT32 ,UINT32 *,BYTE **);
99723e4046Schristos TSS_RESULT RPC_ActivateTPMIdentity_TP(struct host_table_entry *,TCS_KEY_HANDLE,UINT32,BYTE *,TPM_AUTH *,TPM_AUTH *,UINT32 *,BYTE **);
100723e4046Schristos #else
101723e4046Schristos #define RPC_MakeIdentity_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
102723e4046Schristos #define RPC_GetCredential_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
103723e4046Schristos #define RPC_ActivateTPMIdentity_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
104723e4046Schristos #endif
105723e4046Schristos 
106723e4046Schristos #ifdef TSS_BUILD_ADMIN
107723e4046Schristos TSS_RESULT RPC_SetOwnerInstall_TP(struct host_table_entry *,TSS_BOOL);
108723e4046Schristos TSS_RESULT RPC_DisableOwnerClear_TP(struct host_table_entry *,TPM_AUTH *);
109723e4046Schristos TSS_RESULT RPC_ForceClear_TP(struct host_table_entry * hContext);
110723e4046Schristos TSS_RESULT RPC_DisableForceClear_TP(struct host_table_entry * hContext);
111723e4046Schristos TSS_RESULT RPC_PhysicalDisable_TP(struct host_table_entry * hContext);
112723e4046Schristos TSS_RESULT RPC_PhysicalEnable_TP(struct host_table_entry * hContext);
113723e4046Schristos TSS_RESULT RPC_PhysicalSetDeactivated_TP(struct host_table_entry *,TSS_BOOL);
114723e4046Schristos TSS_RESULT RPC_PhysicalPresence_TP(struct host_table_entry *,TCPA_PHYSICAL_PRESENCE);
115723e4046Schristos TSS_RESULT RPC_SetTempDeactivated_TP(struct host_table_entry * hContext);
116723e4046Schristos #ifdef TSS_BUILD_TSS12
117723e4046Schristos TSS_RESULT RPC_SetTempDeactivated2_TP(struct host_table_entry *, TPM_AUTH *);
118723e4046Schristos #else
119723e4046Schristos #define RPC_SetTempDeactivated2_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
120723e4046Schristos #endif
121723e4046Schristos TSS_RESULT RPC_FieldUpgrade_TP(struct host_table_entry *,UINT32,BYTE *,UINT32 *,BYTE **,TPM_AUTH *);
122723e4046Schristos TSS_RESULT RPC_SetRedirection_TP(struct host_table_entry *,TCS_KEY_HANDLE,UINT32,UINT32,TPM_AUTH *);
123723e4046Schristos TSS_RESULT RPC_OwnerSetDisable_TP(struct host_table_entry *,TSS_BOOL,TPM_AUTH *);
124723e4046Schristos TSS_RESULT RPC_ResetLockValue_TP(struct host_table_entry *, TPM_AUTH *);
125723e4046Schristos #else
126723e4046Schristos #define RPC_SetOwnerInstall_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
127723e4046Schristos #define RPC_DisableOwnerClear_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
128723e4046Schristos #define RPC_ForceClear_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
129723e4046Schristos #define RPC_DisableForceClear_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
130723e4046Schristos #define RPC_PhysicalDisable_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
131723e4046Schristos #define RPC_PhysicalEnable_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
132723e4046Schristos #define RPC_PhysicalSetDeactivated_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
133723e4046Schristos #define RPC_PhysicalPresence_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
134723e4046Schristos #define RPC_SetTempDeactivated_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
135723e4046Schristos #define RPC_SetTempDeactivated2_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
136723e4046Schristos #define RPC_FieldUpgrade_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
137723e4046Schristos #define RPC_SetRedirection_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
138723e4046Schristos #define RPC_OwnerSetDisable_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
139723e4046Schristos #define RPC_ResetLockValue_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
140723e4046Schristos #endif
141723e4046Schristos 
142723e4046Schristos #ifdef TSS_BUILD_OWN
143723e4046Schristos TSS_RESULT RPC_TakeOwnership_TP(struct host_table_entry *,UINT16,UINT32,BYTE *,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
144723e4046Schristos TSS_RESULT RPC_OwnerClear_TP(struct host_table_entry *,TPM_AUTH *);
145723e4046Schristos #else
146723e4046Schristos #define RPC_TakeOwnership_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
147723e4046Schristos #define RPC_OwnerClear_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
148723e4046Schristos #endif
149723e4046Schristos 
150723e4046Schristos #ifdef TSS_BUILD_CHANGEAUTH
151723e4046Schristos TSS_RESULT RPC_ChangeAuth_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_PROTOCOL_ID,TCPA_ENCAUTH *,TCPA_ENTITY_TYPE,UINT32,BYTE *,TPM_AUTH *,TPM_AUTH *,UINT32 *,BYTE **);
152723e4046Schristos TSS_RESULT RPC_ChangeAuthOwner_TP(struct host_table_entry *,TCPA_PROTOCOL_ID,TCPA_ENCAUTH *,TCPA_ENTITY_TYPE,TPM_AUTH *);
153723e4046Schristos TSS_RESULT RPC_ChangeAuthAsymStart_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_NONCE,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **,UINT32 *,BYTE **,UINT32 *,BYTE **,TCS_KEY_HANDLE *);
154723e4046Schristos TSS_RESULT RPC_ChangeAuthAsymFinish_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCS_KEY_HANDLE,TCPA_ENTITY_TYPE,TCPA_HMAC,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **,TCPA_SALT_NONCE *,TCPA_DIGEST *);
155723e4046Schristos #else
156723e4046Schristos #define RPC_ChangeAuth_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
157723e4046Schristos #define RPC_ChangeAuthOwner_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
158723e4046Schristos #define RPC_ChangeAuthAsymStart_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
159723e4046Schristos #define RPC_ChangeAuthAsymFinish_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
160723e4046Schristos #endif
161723e4046Schristos 
162723e4046Schristos #ifdef TSS_BUILD_PCR_EXTEND
163723e4046Schristos TSS_RESULT RPC_Extend_TP(struct host_table_entry *,TCPA_PCRINDEX,TCPA_DIGEST,TCPA_PCRVALUE *);
164723e4046Schristos TSS_RESULT RPC_PcrRead_TP(struct host_table_entry *,TCPA_PCRINDEX,TCPA_PCRVALUE *);
165723e4046Schristos TSS_RESULT RPC_PcrReset_TP(struct host_table_entry *,UINT32,BYTE *);
166723e4046Schristos #else
167723e4046Schristos #define RPC_Extend_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
168723e4046Schristos #define RPC_PcrRead_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
169723e4046Schristos #define RPC_PcrReset_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
170723e4046Schristos #endif
171723e4046Schristos 
172723e4046Schristos #ifdef TSS_BUILD_QUOTE
173723e4046Schristos TSS_RESULT RPC_Quote_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_NONCE *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **,UINT32 *,BYTE **);
174723e4046Schristos #else
175723e4046Schristos #define RPC_Quote_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
176723e4046Schristos #endif
177723e4046Schristos 
178723e4046Schristos #ifdef TSS_BUILD_QUOTE2
179723e4046Schristos TSS_RESULT RPC_Quote2_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_NONCE *,UINT32,BYTE *,TSS_BOOL,TPM_AUTH *,UINT32 *,BYTE **,UINT32 *,BYTE **,UINT32 *,BYTE **);
180723e4046Schristos #else
181723e4046Schristos #define RPC_Quote2_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
182723e4046Schristos #endif
183723e4046Schristos 
184723e4046Schristos #ifdef TSS_BUILD_DIR
185723e4046Schristos TSS_RESULT RPC_DirWriteAuth_TP(struct host_table_entry *,TCPA_DIRINDEX,TCPA_DIRVALUE *,TPM_AUTH *);
186723e4046Schristos TSS_RESULT RPC_DirRead_TP(struct host_table_entry *,TCPA_DIRINDEX,TCPA_DIRVALUE *);
187723e4046Schristos #else
188723e4046Schristos #define RPC_DirWriteAuth_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
189723e4046Schristos #define RPC_DirRead_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
190723e4046Schristos #endif
191723e4046Schristos 
192723e4046Schristos #ifdef TSS_BUILD_SEAL
193723e4046Schristos TSS_RESULT RPC_Seal_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_ENCAUTH *,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
194723e4046Schristos TSS_RESULT RPC_Unseal_TP(struct host_table_entry *,TCS_KEY_HANDLE,UINT32,BYTE *,TPM_AUTH *,TPM_AUTH *,UINT32 *,BYTE **);
195723e4046Schristos #else
196723e4046Schristos #define RPC_Seal_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
197723e4046Schristos #define RPC_Unseal_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
198723e4046Schristos #endif
199723e4046Schristos 
200723e4046Schristos #ifdef TSS_BUILD_SEALX
201723e4046Schristos TSS_RESULT RPC_Sealx_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_ENCAUTH *,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
202723e4046Schristos #else
203723e4046Schristos #define RPC_Sealx_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
204723e4046Schristos #endif
205723e4046Schristos 
206723e4046Schristos #ifdef TSS_BUILD_BIND
207723e4046Schristos TSS_RESULT RPC_UnBind_TP(struct host_table_entry *,TCS_KEY_HANDLE,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
208723e4046Schristos #else
209723e4046Schristos #define RPC_UnBind_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
210723e4046Schristos #endif
211723e4046Schristos 
212723e4046Schristos #ifdef TSS_BUILD_MIGRATION
213723e4046Schristos TSS_RESULT RPC_CreateMigrationBlob_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_MIGRATE_SCHEME,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *,TPM_AUTH *,UINT32 *,BYTE **,UINT32 *,BYTE **);
214723e4046Schristos TSS_RESULT RPC_ConvertMigrationBlob_TP(struct host_table_entry *,TCS_KEY_HANDLE,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
215723e4046Schristos TSS_RESULT RPC_AuthorizeMigrationKey_TP(struct host_table_entry *,TCPA_MIGRATE_SCHEME,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
216723e4046Schristos #else
217723e4046Schristos #define RPC_CreateMigrationBlob_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
218723e4046Schristos #define RPC_ConvertMigrationBlob_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
219723e4046Schristos #define RPC_AuthorizeMigrationKey_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
220723e4046Schristos #endif
221723e4046Schristos 
222723e4046Schristos #ifdef TSS_BUILD_CERTIFY
223723e4046Schristos TSS_RESULT RPC_CertifyKey_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCS_KEY_HANDLE,TPM_NONCE *,TPM_AUTH *,TPM_AUTH *,UINT32 *,BYTE **,UINT32 *,BYTE **);
224723e4046Schristos #else
225723e4046Schristos #define RPC_CertifyKey_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
226723e4046Schristos #endif
227723e4046Schristos 
228723e4046Schristos #ifdef TSS_BUILD_SIGN
229723e4046Schristos TSS_RESULT RPC_Sign_TP(struct host_table_entry *,TCS_KEY_HANDLE,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
230723e4046Schristos #else
231723e4046Schristos #define RPC_Sign_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
232723e4046Schristos #endif
233723e4046Schristos 
234723e4046Schristos #ifdef TSS_BUILD_RANDOM
235723e4046Schristos TSS_RESULT RPC_GetRandom_TP(struct host_table_entry *,UINT32,BYTE **);
236723e4046Schristos TSS_RESULT RPC_StirRandom_TP(struct host_table_entry *,UINT32,BYTE *);
237723e4046Schristos #else
238723e4046Schristos #define RPC_GetRandom_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
239723e4046Schristos #define RPC_StirRandom_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
240723e4046Schristos #endif
241723e4046Schristos 
242723e4046Schristos #ifdef TSS_BUILD_CAPS_TPM
243723e4046Schristos TSS_RESULT RPC_GetTPMCapability_TP(struct host_table_entry *,TCPA_CAPABILITY_AREA,UINT32,BYTE *,UINT32 *,BYTE **);
244723e4046Schristos TSS_RESULT RPC_GetCapabilitySigned_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_NONCE,TCPA_CAPABILITY_AREA,UINT32,BYTE *,TPM_AUTH *,TCPA_VERSION *,UINT32 *,BYTE **,UINT32 *,BYTE **);
245723e4046Schristos TSS_RESULT RPC_GetCapabilityOwner_TP(struct host_table_entry *,TPM_AUTH *,TCPA_VERSION *,UINT32 *,UINT32 *);
246723e4046Schristos TSS_RESULT RPC_SetCapability_TP(struct host_table_entry *,TCPA_CAPABILITY_AREA,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *);
247723e4046Schristos #else
248723e4046Schristos #define RPC_GetTPMCapability_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
249723e4046Schristos #define RPC_GetCapabilitySigned_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
250723e4046Schristos #define RPC_GetCapabilityOwner_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
251723e4046Schristos #define RPC_SetCapability_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
252723e4046Schristos #endif
253723e4046Schristos 
254723e4046Schristos #ifdef TSS_BUILD_CAPS
255723e4046Schristos TSS_RESULT RPC_GetCapability_TP(struct host_table_entry *,TCPA_CAPABILITY_AREA,UINT32,BYTE *,UINT32 *,BYTE **);
256723e4046Schristos #else
257723e4046Schristos #define RPC_GetCapability_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
258723e4046Schristos #endif
259723e4046Schristos 
260723e4046Schristos #ifdef TSS_BUILD_EK
261723e4046Schristos TSS_RESULT RPC_CreateEndorsementKeyPair_TP(struct host_table_entry *,TCPA_NONCE,UINT32,BYTE *,UINT32 *,BYTE **,TCPA_DIGEST *);
262723e4046Schristos TSS_RESULT RPC_ReadPubek_TP(struct host_table_entry *,TCPA_NONCE,UINT32 *,BYTE **,TCPA_DIGEST *);
263723e4046Schristos TSS_RESULT RPC_OwnerReadPubek_TP(struct host_table_entry *,TPM_AUTH *,UINT32 *,BYTE **);
264723e4046Schristos TSS_RESULT RPC_DisablePubekRead_TP(struct host_table_entry *,TPM_AUTH *);
265723e4046Schristos #ifdef TSS_BUILD_TSS12
266723e4046Schristos TSS_RESULT RPC_CreateRevocableEndorsementKeyPair_TP(struct host_table_entry *,TPM_NONCE,UINT32,BYTE *,TSS_BOOL,TPM_DIGEST *,UINT32 *,BYTE **,TPM_DIGEST *);
267723e4046Schristos TSS_RESULT RPC_RevokeEndorsementKeyPair_TP(struct host_table_entry *,TPM_DIGEST *);
268723e4046Schristos #else
269723e4046Schristos #define RPC_CreateRevocableEndorsementKeyPair_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
270723e4046Schristos #define RPC_RevokeEndorsementKeyPair_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
271723e4046Schristos #endif
272723e4046Schristos #else
273723e4046Schristos #define RPC_DisablePubekRead_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
274723e4046Schristos #define RPC_CreateEndorsementKeyPair_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
275723e4046Schristos #define RPC_ReadPubek_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
276723e4046Schristos #define RPC_OwnerReadPubek_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
277723e4046Schristos #define RPC_CreateRevocableEndorsementKeyPair_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
278723e4046Schristos #define RPC_RevokeEndorsementKeyPair_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
279723e4046Schristos #endif
280723e4046Schristos 
281723e4046Schristos #ifdef TSS_BUILD_SELFTEST
282723e4046Schristos TSS_RESULT RPC_SelfTestFull_TP(struct host_table_entry * hContext);
283723e4046Schristos TSS_RESULT RPC_CertifySelfTest_TP(struct host_table_entry *,TCS_KEY_HANDLE,TCPA_NONCE,TPM_AUTH *,UINT32 *,BYTE **);
284723e4046Schristos TSS_RESULT RPC_GetTestResult_TP(struct host_table_entry *,UINT32 *,BYTE **);
285723e4046Schristos #else
286723e4046Schristos #define RPC_SelfTestFull_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
287723e4046Schristos #define RPC_CertifySelfTest_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
288723e4046Schristos #define RPC_GetTestResult_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
289723e4046Schristos #endif
290723e4046Schristos 
291723e4046Schristos #ifdef TSS_BUILD_MAINT
292723e4046Schristos TSS_RESULT RPC_CreateMaintenanceArchive_TP(struct host_table_entry *,TSS_BOOL,TPM_AUTH *,UINT32 *,BYTE **,UINT32 *,BYTE **);
293723e4046Schristos TSS_RESULT RPC_LoadMaintenanceArchive_TP(struct host_table_entry *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
294723e4046Schristos TSS_RESULT RPC_KillMaintenanceFeature_TP(struct host_table_entry *,TPM_AUTH *);
295723e4046Schristos TSS_RESULT RPC_LoadManuMaintPub_TP(struct host_table_entry *,TCPA_NONCE,UINT32,BYTE *,TCPA_DIGEST *);
296723e4046Schristos TSS_RESULT RPC_ReadManuMaintPub_TP(struct host_table_entry *,TCPA_NONCE,TCPA_DIGEST *);
297723e4046Schristos #else
298723e4046Schristos #define RPC_CreateMaintenanceArchive_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
299723e4046Schristos #define RPC_LoadMaintenanceArchive_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
300723e4046Schristos #define RPC_KillMaintenanceFeature_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
301723e4046Schristos #define RPC_LoadManuMaintPub_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
302723e4046Schristos #define RPC_ReadManuMaintPub_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
303723e4046Schristos #endif
304723e4046Schristos 
305723e4046Schristos #ifdef TSS_BUILD_DAA
306723e4046Schristos TSS_RESULT RPC_DaaJoin_TP(struct host_table_entry *,TPM_HANDLE,BYTE,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
307723e4046Schristos TSS_RESULT RPC_DaaSign_TP(struct host_table_entry *,TPM_HANDLE,BYTE,UINT32,BYTE *,UINT32,BYTE *,TPM_AUTH *,UINT32 *,BYTE **);
308723e4046Schristos #else
309723e4046Schristos #define RPC_DaaJoin_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
310723e4046Schristos #define RPC_DaaSign_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
311723e4046Schristos #endif
312723e4046Schristos 
313723e4046Schristos #ifdef TSS_BUILD_COUNTER
314723e4046Schristos TSS_RESULT RPC_ReadCounter_TP(struct host_table_entry *,TSS_COUNTER_ID,TPM_COUNTER_VALUE *);
315723e4046Schristos TSS_RESULT RPC_CreateCounter_TP(struct host_table_entry *,UINT32,BYTE *,TPM_ENCAUTH,TPM_AUTH *,TSS_COUNTER_ID *,TPM_COUNTER_VALUE *);
316723e4046Schristos TSS_RESULT RPC_IncrementCounter_TP(struct host_table_entry *,TSS_COUNTER_ID,TPM_AUTH *,TPM_COUNTER_VALUE *);
317723e4046Schristos TSS_RESULT RPC_ReleaseCounter_TP(struct host_table_entry *,TSS_COUNTER_ID,TPM_AUTH *);
318723e4046Schristos TSS_RESULT RPC_ReleaseCounterOwner_TP(struct host_table_entry *,TSS_COUNTER_ID,TPM_AUTH *);
319723e4046Schristos #else
320723e4046Schristos #define RPC_ReadCounter_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
321723e4046Schristos #define RPC_CreateCounter_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
322723e4046Schristos #define RPC_IncrementCounter_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
323723e4046Schristos #define RPC_ReleaseCounter_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
324723e4046Schristos #define RPC_ReleaseCounterOwner_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
325723e4046Schristos #endif
326723e4046Schristos 
327723e4046Schristos #ifdef TSS_BUILD_TICK
328723e4046Schristos TSS_RESULT RPC_ReadCurrentTicks_TP(struct host_table_entry *,UINT32 *,BYTE **);
329723e4046Schristos TSS_RESULT RPC_TickStampBlob_TP(struct host_table_entry *,TCS_KEY_HANDLE,TPM_NONCE *,TPM_DIGEST *,TPM_AUTH *,UINT32 *,BYTE **,UINT32 *,BYTE **);
330723e4046Schristos #else
331723e4046Schristos #define RPC_ReadCurrentTicks_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
332723e4046Schristos #define RPC_TickStampBlob_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
333723e4046Schristos #endif
334723e4046Schristos 
335723e4046Schristos #ifdef TSS_BUILD_TRANSPORT
336723e4046Schristos TSS_RESULT RPC_EstablishTransport_TP(struct host_table_entry *, UINT32, TCS_KEY_HANDLE, UINT32, BYTE*, UINT32, BYTE*, TPM_AUTH*, TPM_MODIFIER_INDICATOR*, TCS_HANDLE*, UINT32*, BYTE**, TPM_NONCE*);
337723e4046Schristos TSS_RESULT RPC_ExecuteTransport_TP(struct host_table_entry *,TPM_COMMAND_CODE, UINT32, BYTE*, UINT32*, TCS_HANDLE**, TPM_AUTH*, TPM_AUTH*, TPM_AUTH*, UINT64*, TPM_MODIFIER_INDICATOR*, TPM_RESULT*, UINT32*, BYTE**);
338723e4046Schristos TSS_RESULT RPC_ReleaseTransportSigned_TP(struct host_table_entry *, TCS_KEY_HANDLE, TPM_NONCE *, TPM_AUTH*, TPM_AUTH*, TPM_MODIFIER_INDICATOR*, UINT32*, BYTE**, UINT32*, BYTE**);
339723e4046Schristos #else
340723e4046Schristos #define RPC_EstablishTransport_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
341723e4046Schristos #define RPC_ExecuteTransport_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
342723e4046Schristos #define RPC_ReleaseTransportSigned_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
343723e4046Schristos #endif
344723e4046Schristos 
345723e4046Schristos #ifdef TSS_BUILD_NV
346723e4046Schristos TSS_RESULT RPC_NV_DefineOrReleaseSpace_TP(struct host_table_entry *hte, UINT32, BYTE *, TCPA_ENCAUTH, TPM_AUTH *);
347723e4046Schristos TSS_RESULT RPC_NV_WriteValue_TP(struct host_table_entry *hte, TSS_NV_INDEX, UINT32, UINT32, BYTE *, TPM_AUTH *);
348723e4046Schristos TSS_RESULT RPC_NV_WriteValueAuth_TP(struct host_table_entry *hte, TSS_NV_INDEX, UINT32, UINT32, BYTE *, TPM_AUTH *);
349723e4046Schristos TSS_RESULT RPC_NV_ReadValue_TP(struct host_table_entry *hte, TSS_NV_INDEX, UINT32, UINT32 *, TPM_AUTH *, BYTE **);
350723e4046Schristos TSS_RESULT RPC_NV_ReadValueAuth_TP(struct host_table_entry *hte, TSS_NV_INDEX, UINT32, UINT32 *, TPM_AUTH *, BYTE **);
351723e4046Schristos #else
352723e4046Schristos #define RPC_NV_DefineOrReleaseSpace_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
353723e4046Schristos #define RPC_NV_WriteValue_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
354723e4046Schristos #define RPC_NV_WriteValueAuth_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
355723e4046Schristos #define RPC_NV_ReadValue_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
356723e4046Schristos #define RPC_NV_ReadValueAuth_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
357723e4046Schristos #endif
358723e4046Schristos 
359723e4046Schristos #ifdef TSS_BUILD_AUDIT
360723e4046Schristos TSS_RESULT RPC_SetOrdinalAuditStatus_TP(struct host_table_entry *hte, TPM_AUTH *, UINT32, TSS_BOOL);
361723e4046Schristos TSS_RESULT RPC_GetAuditDigest_TP(struct host_table_entry *hte, UINT32, TPM_DIGEST *, UINT32 *, BYTE **, TSS_BOOL *, UINT32 *, UINT32 **);
362723e4046Schristos TSS_RESULT RPC_GetAuditDigestSigned_TP(struct host_table_entry *hte, TCS_KEY_HANDLE, TSS_BOOL, TPM_NONCE *, TPM_AUTH *, UINT32 *, BYTE **, TPM_DIGEST *, TPM_DIGEST *, UINT32 *, BYTE **);
363723e4046Schristos #else
364723e4046Schristos #define RPC_SetOrdinalAuditStatus_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
365723e4046Schristos #define RPC_GetAuditDigest_TP(...)      TSPERR(TSS_E_INTERNAL_ERROR)
366723e4046Schristos #define RPC_GetAuditDigestSigned_TP(...)      TSPERR(TSS_E_INTERNAL_ERROR)
367723e4046Schristos #endif
368723e4046Schristos 
369723e4046Schristos #ifdef TSS_BUILD_TSS12
370723e4046Schristos TSS_RESULT RPC_SetOperatorAuth_TP(struct host_table_entry *hte, TCPA_SECRET *);
371723e4046Schristos TSS_RESULT RPC_FlushSpecific_TP(struct host_table_entry *hte, TCS_HANDLE, TPM_RESOURCE_TYPE);
372723e4046Schristos #else
373723e4046Schristos #define RPC_SetOperatorAuth_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
374723e4046Schristos #define RPC_FlushSpecific_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
375723e4046Schristos #endif
376723e4046Schristos 
377723e4046Schristos #ifdef TSS_BUILD_DELEGATION
378723e4046Schristos TSS_RESULT RPC_Delegate_Manage_TP(struct host_table_entry *hte, TPM_FAMILY_ID, TPM_FAMILY_OPERATION, UINT32, BYTE *, TPM_AUTH *, UINT32 *, BYTE **);
379723e4046Schristos TSS_RESULT RPC_Delegate_CreateKeyDelegation_TP(struct host_table_entry *hte, TCS_KEY_HANDLE, UINT32, BYTE *, TPM_ENCAUTH *, TPM_AUTH *, UINT32 *, BYTE **);
380723e4046Schristos TSS_RESULT RPC_Delegate_CreateOwnerDelegation_TP(struct host_table_entry *hte, TSS_BOOL, UINT32, BYTE *, TPM_ENCAUTH *, TPM_AUTH *, UINT32 *, BYTE **);
381723e4046Schristos TSS_RESULT RPC_Delegate_LoadOwnerDelegation_TP(struct host_table_entry *hte, TPM_DELEGATE_INDEX, UINT32, BYTE *, TPM_AUTH *);
382723e4046Schristos TSS_RESULT RPC_Delegate_ReadTable_TP(struct host_table_entry *hte, UINT32 *, BYTE **, UINT32 *, BYTE **);
383723e4046Schristos TSS_RESULT RPC_Delegate_UpdateVerificationCount_TP(struct host_table_entry *hte, UINT32, BYTE *, TPM_AUTH *, UINT32 *, BYTE **);
384723e4046Schristos TSS_RESULT RPC_Delegate_VerifyDelegation_TP(struct host_table_entry *hte, UINT32, BYTE *);
385723e4046Schristos TSS_RESULT RPC_DSAP_TP(struct host_table_entry *hte, TPM_ENTITY_TYPE, TCS_KEY_HANDLE, TPM_NONCE *, UINT32, BYTE *, TCS_AUTHHANDLE *, TPM_NONCE *, TPM_NONCE *);
386723e4046Schristos #else
387723e4046Schristos #define RPC_Delegate_Manage_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
388723e4046Schristos #define RPC_Delegate_CreateKeyDelegation_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
389723e4046Schristos #define RPC_Delegate_CreateOwnerDelegation_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
390723e4046Schristos #define RPC_Delegate_LoadOwnerDelegation_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
391723e4046Schristos #define RPC_Delegate_ReadTable_TP(...)			TSPERR(TSS_E_INTERNAL_ERROR)
392723e4046Schristos #define RPC_Delegate_UpdateVerificationCount_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
393723e4046Schristos #define RPC_Delegate_VerifyDelegation_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
394723e4046Schristos #define RPC_DSAP_TP(...)				TSPERR(TSS_E_INTERNAL_ERROR)
395723e4046Schristos #endif
396723e4046Schristos 
397723e4046Schristos #ifdef TSS_BUILD_CMK
398723e4046Schristos TSS_RESULT RPC_CMK_SetRestrictions_TP(struct host_table_entry *hte, TSS_CMK_DELEGATE, TPM_AUTH *);
399723e4046Schristos TSS_RESULT RPC_CMK_ApproveMA_TP(struct host_table_entry *hte, TPM_DIGEST, TPM_AUTH *, TPM_HMAC *);
400723e4046Schristos TSS_RESULT RPC_CMK_CreateKey_TP(struct host_table_entry *hte, TCS_KEY_HANDLE, TPM_ENCAUTH *, TPM_HMAC *, TPM_DIGEST *, UINT32 *, BYTE **, TPM_AUTH *);
401723e4046Schristos TSS_RESULT RPC_CMK_CreateTicket_TP(struct host_table_entry *hte, UINT32, BYTE *, TPM_DIGEST, UINT32, BYTE *, TPM_AUTH *, TPM_HMAC *);
402723e4046Schristos TSS_RESULT RPC_CMK_CreateBlob_TP(struct host_table_entry *hte, TCS_KEY_HANDLE, TSS_MIGRATE_SCHEME, UINT32, BYTE *, TPM_DIGEST, UINT32, BYTE *, UINT32, BYTE *, UINT32, BYTE *, UINT32, BYTE *, TPM_AUTH *, UINT32 *, BYTE **, UINT32 *, BYTE **);
403723e4046Schristos TSS_RESULT RPC_CMK_ConvertMigration_TP(struct host_table_entry *hte, TCS_KEY_HANDLE, TPM_CMK_AUTH, TPM_HMAC, UINT32, BYTE *, UINT32, BYTE *, UINT32, BYTE *, TPM_AUTH *, UINT32 *, BYTE **);
404723e4046Schristos #else
405723e4046Schristos #define RPC_CMK_SetRestrictions_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
406723e4046Schristos #define RPC_CMK_ApproveMA_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
407723e4046Schristos #define RPC_CMK_CreateKey_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
408723e4046Schristos #define RPC_CMK_CreateTicket_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
409723e4046Schristos #define RPC_CMK_CreateBlob_TP(...)		TSPERR(TSS_E_INTERNAL_ERROR)
410723e4046Schristos #define RPC_CMK_ConvertMigration_TP(...)	TSPERR(TSS_E_INTERNAL_ERROR)
411723e4046Schristos #endif
412723e4046Schristos 
413723e4046Schristos #endif
414