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 _RPC_TCSTP_TCS_H_ 12 #define _RPC_TCSTP_TCS_H_ 13 14 #include "rpc_tcstp.h" 15 16 #define DECLARE_TCSTP_FUNC(x) \ 17 TSS_RESULT tcs_wrap_##x(struct tcsd_thread_data *) 18 /* Auth session, context and TPM caps support are always compiled in. TPM caps 19 * are necessary so that the TCSD can know what type of TPM its talking to */ 20 DECLARE_TCSTP_FUNC(OpenContext); 21 DECLARE_TCSTP_FUNC(CloseContext); 22 DECLARE_TCSTP_FUNC(OIAP); 23 DECLARE_TCSTP_FUNC(OSAP); 24 DECLARE_TCSTP_FUNC(GetCapability); 25 DECLARE_TCSTP_FUNC(GetCapabilityOwner); 26 DECLARE_TCSTP_FUNC(SetCapability); 27 28 #ifdef TSS_BUILD_RANDOM 29 DECLARE_TCSTP_FUNC(GetRandom); 30 DECLARE_TCSTP_FUNC(StirRandom); 31 #else 32 #define tcs_wrap_GetRandom tcs_wrap_Error 33 #define tcs_wrap_StirRandom tcs_wrap_Error 34 #endif 35 36 #ifdef TSS_BUILD_EK 37 DECLARE_TCSTP_FUNC(CreateEndorsementKeyPair); 38 DECLARE_TCSTP_FUNC(ReadPubek); 39 DECLARE_TCSTP_FUNC(OwnerReadPubek); 40 DECLARE_TCSTP_FUNC(DisablePubekRead); 41 #ifdef TSS_BUILD_TSS12 42 DECLARE_TCSTP_FUNC(CreateRevocableEndorsementKeyPair); 43 DECLARE_TCSTP_FUNC(RevokeEndorsementKeyPair); 44 #else 45 #define tcs_wrap_CreateRevocableEndorsementKeyPair tcs_wrap_Error 46 #define tcs_wrap_RevokeEndorsementKeyPair tcs_wrap_Error 47 #endif 48 #else 49 #define tcs_wrap_CreateEndorsementKeyPair tcs_wrap_Error 50 #define tcs_wrap_ReadPubek tcs_wrap_Error 51 #define tcs_wrap_OwnerReadPubek tcs_wrap_Error 52 #define tcs_wrap_DisablePubekRead tcs_wrap_Error 53 #define tcs_wrap_CreateRevocableEndorsementKeyPair tcs_wrap_Error 54 #define tcs_wrap_RevokeEndorsementKeyPair tcs_wrap_Error 55 #endif 56 57 #ifdef TSS_BUILD_KEY 58 DECLARE_TCSTP_FUNC(EvictKey); 59 DECLARE_TCSTP_FUNC(GetPubkey); 60 DECLARE_TCSTP_FUNC(TerminateHandle); 61 DECLARE_TCSTP_FUNC(LoadKeyByBlob); 62 DECLARE_TCSTP_FUNC(CreateWrapKey); 63 #ifdef TSS_BUILD_TSS12 64 DECLARE_TCSTP_FUNC(KeyControlOwner); 65 DECLARE_TCSTP_FUNC(OwnerReadInternalPub); 66 #else 67 #define tcs_wrap_KeyControlOwner tcs_wrap_Error 68 #define tcs_wrap_OwnerReadInternalPub tcs_wrap_Error 69 #endif 70 #else 71 #define tcs_wrap_EvictKey tcs_wrap_Error 72 #define tcs_wrap_GetPubkey tcs_wrap_Error 73 #define tcs_wrap_TerminateHandle tcs_wrap_Error 74 #define tcs_wrap_LoadKeyByBlob tcs_wrap_Error 75 #define tcs_wrap_CreateWrapKey tcs_wrap_Error 76 #define tcs_wrap_KeyControlOwner tcs_wrap_Error 77 78 #endif 79 80 #ifdef TSS_BUILD_PCR_EXTEND 81 DECLARE_TCSTP_FUNC(Extend); 82 DECLARE_TCSTP_FUNC(PcrRead); 83 DECLARE_TCSTP_FUNC(PcrReset); 84 #else 85 #define tcs_wrap_Extend tcs_wrap_Error 86 #define tcs_wrap_PcrRead tcs_wrap_Error 87 #define tcs_wrap_PcrReset tcs_wrap_Error 88 #endif 89 90 #ifdef TSS_BUILD_CAPS 91 DECLARE_TCSTP_FUNC(TCSGetCapability); 92 #else 93 #define tcs_wrap_TCSGetCapability tcs_wrap_Error 94 #endif 95 96 #ifdef TSS_BUILD_OWN 97 DECLARE_TCSTP_FUNC(TakeOwnership); 98 DECLARE_TCSTP_FUNC(OwnerClear); 99 #else 100 #define tcs_wrap_TakeOwnership tcs_wrap_Error 101 #define tcs_wrap_OwnerClear tcs_wrap_Error 102 #endif 103 104 #ifdef TSS_BUILD_PS 105 DECLARE_TCSTP_FUNC(RegisterKey); 106 DECLARE_TCSTP_FUNC(UnregisterKey); 107 DECLARE_TCSTP_FUNC(GetRegisteredKeyBlob); 108 DECLARE_TCSTP_FUNC(LoadKeyByUUID); 109 DECLARE_TCSTP_FUNC(GetRegisteredKeyByPublicInfo); 110 DECLARE_TCSTP_FUNC(EnumRegisteredKeys); 111 DECLARE_TCSTP_FUNC(EnumRegisteredKeys2); 112 #else 113 #define tcs_wrap_RegisterKey tcs_wrap_Error 114 #define tcs_wrap_UnregisterKey tcs_wrap_Error 115 #define tcs_wrap_GetRegisteredKeyBlob tcs_wrap_Error 116 #define tcs_wrap_LoadKeyByUUID tcs_wrap_Error 117 #define tcs_wrap_GetRegisteredKeyByPublicInfo tcs_wrap_Error 118 #define tcs_wrap_EnumRegisteredKeys tcs_wrap_Error 119 #define tcs_wrap_EnumRegisteredKeys2 tcs_wrap_Error 120 #endif 121 122 #ifdef TSS_BUILD_SIGN 123 DECLARE_TCSTP_FUNC(Sign); 124 #else 125 #define tcs_wrap_Sign tcs_wrap_Error 126 #endif 127 128 #ifdef TSS_BUILD_DIR 129 DECLARE_TCSTP_FUNC(DirWriteAuth); 130 DECLARE_TCSTP_FUNC(DirRead); 131 #else 132 #define tcs_wrap_DirWriteAuth tcs_wrap_Error 133 #define tcs_wrap_DirRead tcs_wrap_Error 134 #endif 135 136 #ifdef TSS_BUILD_SEAL 137 DECLARE_TCSTP_FUNC(Seal); 138 DECLARE_TCSTP_FUNC(UnSeal); 139 #else 140 #define tcs_wrap_Seal tcs_wrap_Error 141 #define tcs_wrap_UnSeal tcs_wrap_Error 142 #endif 143 144 #ifdef TSS_BUILD_SEALX 145 DECLARE_TCSTP_FUNC(Sealx); 146 #else 147 #define tcs_wrap_Sealx tcs_wrap_Error 148 #endif 149 150 #ifdef TSS_BUILD_BIND 151 DECLARE_TCSTP_FUNC(UnBind); 152 #else 153 #define tcs_wrap_UnBind tcs_wrap_Error 154 #endif 155 156 #ifdef TSS_BUILD_CHANGEAUTH 157 DECLARE_TCSTP_FUNC(ChangeAuth); 158 DECLARE_TCSTP_FUNC(ChangeAuthOwner); 159 #else 160 #define tcs_wrap_ChangeAuth tcs_wrap_Error 161 #define tcs_wrap_ChangeAuthOwner tcs_wrap_Error 162 #endif 163 164 #ifdef TSS_BUILD_QUOTE 165 DECLARE_TCSTP_FUNC(Quote); 166 #else 167 #define tcs_wrap_Quote tcs_wrap_Error 168 #endif 169 170 #ifdef TSS_BUILD_QUOTE2 171 DECLARE_TCSTP_FUNC(Quote2); 172 #else 173 #define tcs_wrap_Quote2 tcs_wrap_Error 174 #endif 175 176 #ifdef TSS_BUILD_PCR_EVENTS 177 DECLARE_TCSTP_FUNC(LogPcrEvent); 178 DECLARE_TCSTP_FUNC(GetPcrEvent); 179 DECLARE_TCSTP_FUNC(GetPcrEventsByPcr); 180 DECLARE_TCSTP_FUNC(GetPcrEventLog); 181 #else 182 #define tcs_wrap_LogPcrEvent tcs_wrap_Error 183 #define tcs_wrap_GetPcrEvent tcs_wrap_Error 184 #define tcs_wrap_GetPcrEventsByPcr tcs_wrap_Error 185 #define tcs_wrap_GetPcrEventLog tcs_wrap_Error 186 #endif 187 188 #ifdef TSS_BUILD_SELFTEST 189 DECLARE_TCSTP_FUNC(SelfTestFull); 190 DECLARE_TCSTP_FUNC(CertifySelfTest); 191 DECLARE_TCSTP_FUNC(GetTestResult); 192 #else 193 #define tcs_wrap_SelfTestFull tcs_wrap_Error 194 #define tcs_wrap_CertifySelfTest tcs_wrap_Error 195 #define tcs_wrap_GetTestResult tcs_wrap_Error 196 #endif 197 198 #ifdef TSS_BUILD_ADMIN 199 DECLARE_TCSTP_FUNC(DisableOwnerClear); 200 DECLARE_TCSTP_FUNC(ForceClear); 201 DECLARE_TCSTP_FUNC(DisableForceClear); 202 DECLARE_TCSTP_FUNC(PhysicalEnable); 203 DECLARE_TCSTP_FUNC(PhysicalSetDeactivated); 204 DECLARE_TCSTP_FUNC(SetOwnerInstall); 205 DECLARE_TCSTP_FUNC(OwnerSetDisable); 206 DECLARE_TCSTP_FUNC(PhysicalDisable); 207 DECLARE_TCSTP_FUNC(PhysicalPresence); 208 DECLARE_TCSTP_FUNC(SetTempDeactivated); 209 #ifdef TSS_BUILD_TSS12 210 DECLARE_TCSTP_FUNC(SetTempDeactivated2); 211 DECLARE_TCSTP_FUNC(ResetLockValue); 212 #else 213 #define tcs_wrap_SetTempDeactivated2 tcs_wrap_Error 214 #define tcs_wrap_ResetLockValue tcs_wrap_Error 215 #endif 216 #else 217 #define tcs_wrap_DisableOwnerClear tcs_wrap_Error 218 #define tcs_wrap_ForceClear tcs_wrap_Error 219 #define tcs_wrap_DisableForceClear tcs_wrap_Error 220 #define tcs_wrap_PhysicalEnable tcs_wrap_Error 221 #define tcs_wrap_PhysicalSetDeactivated tcs_wrap_Error 222 #define tcs_wrap_SetOwnerInstall tcs_wrap_Error 223 #define tcs_wrap_OwnerSetDisable tcs_wrap_Error 224 #define tcs_wrap_PhysicalDisable tcs_wrap_Error 225 #define tcs_wrap_PhysicalPresence tcs_wrap_Error 226 #define tcs_wrap_SetTempDeactivated tcs_wrap_Error 227 #define tcs_wrap_SetTempDeactivated2 tcs_wrap_Error 228 #define tcs_wrap_ResetLockValue tcs_wrap_Error 229 #endif 230 231 #ifdef TSS_BUILD_CERTIFY 232 DECLARE_TCSTP_FUNC(CertifyKey); 233 #else 234 #define tcs_wrap_CertifyKey tcs_wrap_Error 235 #endif 236 237 #ifdef TSS_BUILD_AIK 238 DECLARE_TCSTP_FUNC(MakeIdentity); 239 DECLARE_TCSTP_FUNC(ActivateIdentity); 240 #ifdef TSS_BUILD_TSS12 241 DECLARE_TCSTP_FUNC(GetCredential); 242 #else 243 #define tcs_wrap_GetCredential tcs_wrap_Error 244 #endif 245 #else 246 #define tcs_wrap_MakeIdentity tcs_wrap_Error 247 #define tcs_wrap_ActivateIdentity tcs_wrap_Error 248 #define tcs_wrap_GetCredential tcs_wrap_Error 249 #endif 250 251 #ifdef TSS_BUILD_MIGRATION 252 DECLARE_TCSTP_FUNC(CreateMigrationBlob); 253 DECLARE_TCSTP_FUNC(ConvertMigrationBlob); 254 DECLARE_TCSTP_FUNC(AuthorizeMigrationKey); 255 #else 256 #define tcs_wrap_CreateMigrationBlob tcs_wrap_Error 257 #define tcs_wrap_ConvertMigrationBlob tcs_wrap_Error 258 #define tcs_wrap_AuthorizeMigrationKey tcs_wrap_Error 259 #endif 260 261 #ifdef TSS_BUILD_MAINT 262 DECLARE_TCSTP_FUNC(KillMaintenanceFeature); 263 DECLARE_TCSTP_FUNC(CreateMaintenanceArchive); 264 DECLARE_TCSTP_FUNC(LoadMaintenanceArchive); 265 DECLARE_TCSTP_FUNC(LoadManuMaintPub); 266 DECLARE_TCSTP_FUNC(ReadManuMaintPub); 267 #else 268 #define tcs_wrap_KillMaintenanceFeature tcs_wrap_Error 269 #define tcs_wrap_CreateMaintenanceArchive tcs_wrap_Error 270 #define tcs_wrap_LoadMaintenanceArchive tcs_wrap_Error 271 #define tcs_wrap_LoadManuMaintPub tcs_wrap_Error 272 #define tcs_wrap_ReadManuMaintPub tcs_wrap_Error 273 #endif 274 275 #ifdef TSS_BUILD_DAA 276 DECLARE_TCSTP_FUNC(DaaJoin); 277 DECLARE_TCSTP_FUNC(DaaSign); 278 #else 279 #define tcs_wrap_DaaJoin tcs_wrap_Error 280 #define tcs_wrap_DaaSign tcs_wrap_Error 281 #endif 282 283 #ifdef TSS_BUILD_NV 284 DECLARE_TCSTP_FUNC(NV_DefineOrReleaseSpace); 285 DECLARE_TCSTP_FUNC(NV_WriteValue); 286 DECLARE_TCSTP_FUNC(NV_WriteValueAuth); 287 DECLARE_TCSTP_FUNC(NV_ReadValue); 288 DECLARE_TCSTP_FUNC(NV_ReadValueAuth); 289 #else 290 #define tcs_wrap_NV_DefineOrReleaseSpace tcs_wrap_Error 291 #define tcs_wrap_NV_WriteValue tcs_wrap_Error 292 #define tcs_wrap_NV_WriteValueAuth tcs_wrap_Error 293 #define tcs_wrap_NV_ReadValue tcs_wrap_Error 294 #define tcs_wrap_NV_ReadValueAuth tcs_wrap_Error 295 #endif 296 297 #ifdef TSS_BUILD_COUNTER 298 DECLARE_TCSTP_FUNC(ReadCounter); 299 DECLARE_TCSTP_FUNC(CreateCounter); 300 DECLARE_TCSTP_FUNC(IncrementCounter); 301 DECLARE_TCSTP_FUNC(ReleaseCounter); 302 DECLARE_TCSTP_FUNC(ReleaseCounterOwner); 303 #else 304 #define tcs_wrap_ReadCounter tcs_wrap_Error 305 #define tcs_wrap_CreateCounter tcs_wrap_Error 306 #define tcs_wrap_IncrementCounter tcs_wrap_Error 307 #define tcs_wrap_ReleaseCounter tcs_wrap_Error 308 #define tcs_wrap_ReleaseCounterOwner tcs_wrap_Error 309 #endif 310 311 #ifdef TSS_BUILD_TICK 312 DECLARE_TCSTP_FUNC(ReadCurrentTicks); 313 DECLARE_TCSTP_FUNC(TickStampBlob); 314 #else 315 #define tcs_wrap_ReadCurrentTicks tcs_wrap_Error 316 #define tcs_wrap_TickStampBlob tcs_wrap_Error 317 #endif 318 319 #ifdef TSS_BUILD_TRANSPORT 320 DECLARE_TCSTP_FUNC(EstablishTransport); 321 DECLARE_TCSTP_FUNC(ExecuteTransport); 322 DECLARE_TCSTP_FUNC(ReleaseTransportSigned); 323 #else 324 #define tcs_wrap_EstablishTransport tcs_wrap_Error 325 #define tcs_wrap_ExecuteTransport tcs_wrap_Error 326 #define tcs_wrap_ReleaseTransportSigned tcs_wrap_Error 327 #endif 328 329 #ifdef TSS_BUILD_AUDIT 330 DECLARE_TCSTP_FUNC(SetOrdinalAuditStatus); 331 DECLARE_TCSTP_FUNC(GetAuditDigest); 332 DECLARE_TCSTP_FUNC(GetAuditDigestSigned); 333 #else 334 #define tcs_wrap_SetOrdinalAuditStatus tcs_wrap_Error 335 #define tcs_wrap_GetAuditDigest tcs_wrap_Error 336 #define tcs_wrap_GetAuditDigestSigned tcs_wrap_Error 337 #endif 338 339 #ifdef TSS_BUILD_TSS12 340 DECLARE_TCSTP_FUNC(SetOperatorAuth); 341 DECLARE_TCSTP_FUNC(FlushSpecific); 342 #else 343 #define tcs_wrap_SetOperatorAuth tcs_wrap_Error 344 #define tcs_wrap_FlushSpecific tcs_wrap_Error 345 #endif 346 347 #ifdef TSS_BUILD_DELEGATION 348 DECLARE_TCSTP_FUNC(Delegate_Manage); 349 DECLARE_TCSTP_FUNC(Delegate_CreateKeyDelegation); 350 DECLARE_TCSTP_FUNC(Delegate_CreateOwnerDelegation); 351 DECLARE_TCSTP_FUNC(Delegate_LoadOwnerDelegation); 352 DECLARE_TCSTP_FUNC(Delegate_ReadTable); 353 DECLARE_TCSTP_FUNC(Delegate_UpdateVerificationCount); 354 DECLARE_TCSTP_FUNC(Delegate_VerifyDelegation); 355 DECLARE_TCSTP_FUNC(DSAP); 356 #else 357 #define tcs_wrap_Delegate_Manage tcs_wrap_Error 358 #define tcs_wrap_Delegate_CreateKeyDelegation tcs_wrap_Error 359 #define tcs_wrap_Delegate_CreateOwnerDelegation tcs_wrap_Error 360 #define tcs_wrap_Delegate_LoadOwnerDelegation tcs_wrap_Error 361 #define tcs_wrap_Delegate_ReadTable tcs_wrap_Error 362 #define tcs_wrap_Delegate_UpdateVerificationCount tcs_wrap_Error 363 #define tcs_wrap_Delegate_VerifyDelegation tcs_wrap_Error 364 #define tcs_wrap_DSAP tcs_wrap_Error 365 #endif 366 367 #ifdef TSS_BUILD_CMK 368 DECLARE_TCSTP_FUNC(CMK_SetRestrictions); 369 DECLARE_TCSTP_FUNC(CMK_ApproveMA); 370 DECLARE_TCSTP_FUNC(CMK_CreateKey); 371 DECLARE_TCSTP_FUNC(CMK_CreateTicket); 372 DECLARE_TCSTP_FUNC(CMK_CreateBlob); 373 DECLARE_TCSTP_FUNC(CMK_ConvertMigration); 374 #else 375 #define tcs_wrap_CMK_SetRestrictions tcs_wrap_Error 376 #define tcs_wrap_CMK_ApproveMA tcs_wrap_Error 377 #define tcs_wrap_CMK_CreateKey tcs_wrap_Error 378 #define tcs_wrap_CMK_CreateTicket tcs_wrap_Error 379 #define tcs_wrap_CMK_CreateBlob tcs_wrap_Error 380 #define tcs_wrap_CMK_ConvertMigration tcs_wrap_Error 381 #endif 382 383 DECLARE_TCSTP_FUNC(dispatchCommand); 384 385 void LoadBlob_Auth_Special(UINT64 *, BYTE *, TPM_AUTH *); 386 void UnloadBlob_Auth_Special(UINT64 *, BYTE *, TPM_AUTH *); 387 void LoadBlob_KM_KEYINFO(UINT64 *, BYTE *, TSS_KM_KEYINFO *); 388 void LoadBlob_KM_KEYINFO2(UINT64 *, BYTE *, TSS_KM_KEYINFO2 *); 389 void UnloadBlob_KM_KEYINFO(UINT64 *, BYTE *, TSS_KM_KEYINFO *); 390 void UnloadBlob_KM_KEYINFO2(UINT64 *, BYTE *, TSS_KM_KEYINFO2 *); 391 void LoadBlob_LOADKEY_INFO(UINT64 *, BYTE *, TCS_LOADKEY_INFO *); 392 void UnloadBlob_LOADKEY_INFO(UINT64 *, BYTE *, TCS_LOADKEY_INFO *); 393 void LoadBlob_PCR_EVENT(UINT64 *, BYTE *, TSS_PCR_EVENT *); 394 TSS_RESULT UnloadBlob_PCR_EVENT(UINT64 *, BYTE *, TSS_PCR_EVENT *); 395 int setData(TCSD_PACKET_TYPE, unsigned int, void *, int, struct tcsd_comm_data *); 396 UINT32 getData(TCSD_PACKET_TYPE, unsigned int, void *, int, struct tcsd_comm_data *); 397 void initData(struct tcsd_comm_data *, int); 398 int recv_from_socket(int, void *, int); 399 int send_to_socket(int, void *, int); 400 TSS_RESULT getTCSDPacket(struct tcsd_thread_data *); 401 402 MUTEX_DECLARE_EXTERN(tcsp_lock); 403 404 #endif 405 406 407