You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1034 lines
43 KiB

/* Microsoft Reference Implementation for TPM 2.0
*
* The copyright in this software is being made available under the BSD License,
* included below. This software may be subject to other third party and
* contributor rights, including patent rights, and no such rights are granted
* under this license.
*
* Copyright (c) Microsoft Corporation
*
* All rights reserved.
*
* BSD License
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list
* of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice, this
* list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS""
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*(Auto-generated)
* Created by TpmDispatch; Version 4.0 July 8,2017
* Date: Feb 28, 2020 Time: 03:04:48PM
*/
#if CC_Startup
case TPM_CC_Startup:
break;
#endif // CC_Startup
#if CC_Shutdown
case TPM_CC_Shutdown:
break;
#endif // CC_Shutdown
#if CC_SelfTest
case TPM_CC_SelfTest:
break;
#endif // CC_SelfTest
#if CC_IncrementalSelfTest
case TPM_CC_IncrementalSelfTest:
break;
#endif // CC_IncrementalSelfTest
#if CC_GetTestResult
case TPM_CC_GetTestResult:
break;
#endif // CC_GetTestResult
#if CC_StartAuthSession
case TPM_CC_StartAuthSession:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_ENTITY_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_StartAuthSession
#if CC_PolicyRestart
case TPM_CC_PolicyRestart:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyRestart
#if CC_Create
case TPM_CC_Create:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Create
#if CC_Load
case TPM_CC_Load:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Load
#if CC_LoadExternal
case TPM_CC_LoadExternal:
break;
#endif // CC_LoadExternal
#if CC_ReadPublic
case TPM_CC_ReadPublic:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ReadPublic
#if CC_ActivateCredential
case TPM_CC_ActivateCredential:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_ActivateCredential
#if CC_MakeCredential
case TPM_CC_MakeCredential:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_MakeCredential
#if CC_Unseal
case TPM_CC_Unseal:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Unseal
#if CC_ObjectChangeAuth
case TPM_CC_ObjectChangeAuth:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_ObjectChangeAuth
#if CC_CreateLoaded
case TPM_CC_CreateLoaded:
*handleCount = 1;
result = TPMI_DH_PARENT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_CreateLoaded
#if CC_Duplicate
case TPM_CC_Duplicate:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_Duplicate
#if CC_Rewrap
case TPM_CC_Rewrap:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_Rewrap
#if CC_Import
case TPM_CC_Import:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Import
#if CC_RSA_Encrypt
case TPM_CC_RSA_Encrypt:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_RSA_Encrypt
#if CC_RSA_Decrypt
case TPM_CC_RSA_Decrypt:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_RSA_Decrypt
#if CC_ECDH_KeyGen
case TPM_CC_ECDH_KeyGen:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ECDH_KeyGen
#if CC_ECDH_ZGen
case TPM_CC_ECDH_ZGen:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ECDH_ZGen
#if CC_ECC_Parameters
case TPM_CC_ECC_Parameters:
break;
#endif // CC_ECC_Parameters
#if CC_ZGen_2Phase
case TPM_CC_ZGen_2Phase:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ZGen_2Phase
#if CC_ECC_Encrypt
case TPM_CC_ECC_Encrypt:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ECC_Encrypt
#if CC_ECC_Decrypt
case TPM_CC_ECC_Decrypt:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ECC_Decrypt
#if CC_EncryptDecrypt
case TPM_CC_EncryptDecrypt:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_EncryptDecrypt
#if CC_EncryptDecrypt2
case TPM_CC_EncryptDecrypt2:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_EncryptDecrypt2
#if CC_Hash
case TPM_CC_Hash:
break;
#endif // CC_Hash
#if CC_HMAC
case TPM_CC_HMAC:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_HMAC
#if CC_MAC
case TPM_CC_MAC:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_MAC
#if CC_GetRandom
case TPM_CC_GetRandom:
break;
#endif // CC_GetRandom
#if CC_StirRandom
case TPM_CC_StirRandom:
break;
#endif // CC_StirRandom
#if CC_HMAC_Start
case TPM_CC_HMAC_Start:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_HMAC_Start
#if CC_MAC_Start
case TPM_CC_MAC_Start:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_MAC_Start
#if CC_HashSequenceStart
case TPM_CC_HashSequenceStart:
break;
#endif // CC_HashSequenceStart
#if CC_SequenceUpdate
case TPM_CC_SequenceUpdate:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_SequenceUpdate
#if CC_SequenceComplete
case TPM_CC_SequenceComplete:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_SequenceComplete
#if CC_EventSequenceComplete
case TPM_CC_EventSequenceComplete:
*handleCount = 2;
result = TPMI_DH_PCR_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_EventSequenceComplete
#if CC_Certify
case TPM_CC_Certify:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_Certify
#if CC_CertifyCreation
case TPM_CC_CertifyCreation:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_CertifyCreation
#if CC_Quote
case TPM_CC_Quote:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Quote
#if CC_GetSessionAuditDigest
case TPM_CC_GetSessionAuditDigest:
*handleCount = 3;
result = TPMI_RH_ENDORSEMENT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
result = TPMI_SH_HMAC_Unmarshal(&handles[2], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_3;
break;
#endif // CC_GetSessionAuditDigest
#if CC_GetCommandAuditDigest
case TPM_CC_GetCommandAuditDigest:
*handleCount = 2;
result = TPMI_RH_ENDORSEMENT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_GetCommandAuditDigest
#if CC_GetTime
case TPM_CC_GetTime:
*handleCount = 2;
result = TPMI_RH_ENDORSEMENT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_GetTime
#if CC_CertifyX509
case TPM_CC_CertifyX509:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_CertifyX509
#if CC_Commit
case TPM_CC_Commit:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Commit
#if CC_EC_Ephemeral
case TPM_CC_EC_Ephemeral:
break;
#endif // CC_EC_Ephemeral
#if CC_VerifySignature
case TPM_CC_VerifySignature:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_VerifySignature
#if CC_Sign
case TPM_CC_Sign:
*handleCount = 1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Sign
#if CC_SetCommandCodeAuditStatus
case TPM_CC_SetCommandCodeAuditStatus:
*handleCount = 1;
result = TPMI_RH_PROVISION_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_SetCommandCodeAuditStatus
#if CC_PCR_Extend
case TPM_CC_PCR_Extend:
*handleCount = 1;
result = TPMI_DH_PCR_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PCR_Extend
#if CC_PCR_Event
case TPM_CC_PCR_Event:
*handleCount = 1;
result = TPMI_DH_PCR_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PCR_Event
#if CC_PCR_Read
case TPM_CC_PCR_Read:
break;
#endif // CC_PCR_Read
#if CC_PCR_Allocate
case TPM_CC_PCR_Allocate:
*handleCount = 1;
result = TPMI_RH_PLATFORM_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PCR_Allocate
#if CC_PCR_SetAuthPolicy
case TPM_CC_PCR_SetAuthPolicy:
*handleCount = 1;
result = TPMI_RH_PLATFORM_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PCR_SetAuthPolicy
#if CC_PCR_SetAuthValue
case TPM_CC_PCR_SetAuthValue:
*handleCount = 1;
result = TPMI_DH_PCR_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PCR_SetAuthValue
#if CC_PCR_Reset
case TPM_CC_PCR_Reset:
*handleCount = 1;
result = TPMI_DH_PCR_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PCR_Reset
#if CC_PolicySigned
case TPM_CC_PolicySigned:
*handleCount = 2;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_SH_POLICY_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_PolicySigned
#if CC_PolicySecret
case TPM_CC_PolicySecret:
*handleCount = 2;
result = TPMI_DH_ENTITY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_SH_POLICY_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_PolicySecret
#if CC_PolicyTicket
case TPM_CC_PolicyTicket:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyTicket
#if CC_PolicyOR
case TPM_CC_PolicyOR:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyOR
#if CC_PolicyPCR
case TPM_CC_PolicyPCR:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyPCR
#if CC_PolicyLocality
case TPM_CC_PolicyLocality:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyLocality
#if CC_PolicyNV
case TPM_CC_PolicyNV:
*handleCount = 3;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
result = TPMI_SH_POLICY_Unmarshal(&handles[2], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_3;
break;
#endif // CC_PolicyNV
#if CC_PolicyCounterTimer
case TPM_CC_PolicyCounterTimer:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyCounterTimer
#if CC_PolicyCommandCode
case TPM_CC_PolicyCommandCode:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyCommandCode
#if CC_PolicyPhysicalPresence
case TPM_CC_PolicyPhysicalPresence:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyPhysicalPresence
#if CC_PolicyCpHash
case TPM_CC_PolicyCpHash:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyCpHash
#if CC_PolicyNameHash
case TPM_CC_PolicyNameHash:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyNameHash
#if CC_PolicyDuplicationSelect
case TPM_CC_PolicyDuplicationSelect:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyDuplicationSelect
#if CC_PolicyAuthorize
case TPM_CC_PolicyAuthorize:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyAuthorize
#if CC_PolicyAuthValue
case TPM_CC_PolicyAuthValue:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyAuthValue
#if CC_PolicyPassword
case TPM_CC_PolicyPassword:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyPassword
#if CC_PolicyGetDigest
case TPM_CC_PolicyGetDigest:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyGetDigest
#if CC_PolicyNvWritten
case TPM_CC_PolicyNvWritten:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyNvWritten
#if CC_PolicyTemplate
case TPM_CC_PolicyTemplate:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PolicyTemplate
#if CC_PolicyAuthorizeNV
case TPM_CC_PolicyAuthorizeNV:
*handleCount = 3;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
result = TPMI_SH_POLICY_Unmarshal(&handles[2], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_3;
break;
#endif // CC_PolicyAuthorizeNV
#if CC_CreatePrimary
case TPM_CC_CreatePrimary:
*handleCount = 1;
result = TPMI_RH_HIERARCHY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_CreatePrimary
#if CC_HierarchyControl
case TPM_CC_HierarchyControl:
*handleCount = 1;
result = TPMI_RH_HIERARCHY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_HierarchyControl
#if CC_SetPrimaryPolicy
case TPM_CC_SetPrimaryPolicy:
*handleCount = 1;
result = TPMI_RH_HIERARCHY_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_SetPrimaryPolicy
#if CC_ChangePPS
case TPM_CC_ChangePPS:
*handleCount = 1;
result = TPMI_RH_PLATFORM_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ChangePPS
#if CC_ChangeEPS
case TPM_CC_ChangeEPS:
*handleCount = 1;
result = TPMI_RH_PLATFORM_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ChangeEPS
#if CC_Clear
case TPM_CC_Clear:
*handleCount = 1;
result = TPMI_RH_CLEAR_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Clear
#if CC_ClearControl
case TPM_CC_ClearControl:
*handleCount = 1;
result = TPMI_RH_CLEAR_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ClearControl
#if CC_HierarchyChangeAuth
case TPM_CC_HierarchyChangeAuth:
*handleCount = 1;
result = TPMI_RH_HIERARCHY_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_HierarchyChangeAuth
#if CC_DictionaryAttackLockReset
case TPM_CC_DictionaryAttackLockReset:
*handleCount = 1;
result = TPMI_RH_LOCKOUT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_DictionaryAttackLockReset
#if CC_DictionaryAttackParameters
case TPM_CC_DictionaryAttackParameters:
*handleCount = 1;
result = TPMI_RH_LOCKOUT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_DictionaryAttackParameters
#if CC_PP_Commands
case TPM_CC_PP_Commands:
*handleCount = 1;
result = TPMI_RH_PLATFORM_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_PP_Commands
#if CC_SetAlgorithmSet
case TPM_CC_SetAlgorithmSet:
*handleCount = 1;
result = TPMI_RH_PLATFORM_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_SetAlgorithmSet
#if CC_FieldUpgradeStart
case TPM_CC_FieldUpgradeStart:
*handleCount = 2;
result = TPMI_RH_PLATFORM_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_FieldUpgradeStart
#if CC_FieldUpgradeData
case TPM_CC_FieldUpgradeData:
break;
#endif // CC_FieldUpgradeData
#if CC_FirmwareRead
case TPM_CC_FirmwareRead:
break;
#endif // CC_FirmwareRead
#if CC_ContextSave
case TPM_CC_ContextSave:
*handleCount = 1;
result = TPMI_DH_CONTEXT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ContextSave
#if CC_ContextLoad
case TPM_CC_ContextLoad:
break;
#endif // CC_ContextLoad
#if CC_FlushContext
case TPM_CC_FlushContext:
break;
#endif // CC_FlushContext
#if CC_EvictControl
case TPM_CC_EvictControl:
*handleCount = 2;
result = TPMI_RH_PROVISION_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_DH_OBJECT_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_EvictControl
#if CC_ReadClock
case TPM_CC_ReadClock:
break;
#endif // CC_ReadClock
#if CC_ClockSet
case TPM_CC_ClockSet:
*handleCount = 1;
result = TPMI_RH_PROVISION_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ClockSet
#if CC_ClockRateAdjust
case TPM_CC_ClockRateAdjust:
*handleCount = 1;
result = TPMI_RH_PROVISION_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ClockRateAdjust
#if CC_GetCapability
case TPM_CC_GetCapability:
break;
#endif // CC_GetCapability
#if CC_TestParms
case TPM_CC_TestParms:
break;
#endif // CC_TestParms
#if CC_NV_DefineSpace
case TPM_CC_NV_DefineSpace:
*handleCount = 1;
result = TPMI_RH_PROVISION_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_NV_DefineSpace
#if CC_NV_UndefineSpace
case TPM_CC_NV_UndefineSpace:
*handleCount = 2;
result = TPMI_RH_PROVISION_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_UndefineSpace
#if CC_NV_UndefineSpaceSpecial
case TPM_CC_NV_UndefineSpaceSpecial:
*handleCount = 2;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_PLATFORM_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_UndefineSpaceSpecial
#if CC_NV_ReadPublic
case TPM_CC_NV_ReadPublic:
*handleCount = 1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_NV_ReadPublic
#if CC_NV_Write
case TPM_CC_NV_Write:
*handleCount = 2;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_Write
#if CC_NV_Increment
case TPM_CC_NV_Increment:
*handleCount = 2;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_Increment
#if CC_NV_Extend
case TPM_CC_NV_Extend:
*handleCount = 2;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_Extend
#if CC_NV_SetBits
case TPM_CC_NV_SetBits:
*handleCount = 2;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_SetBits
#if CC_NV_WriteLock
case TPM_CC_NV_WriteLock:
*handleCount = 2;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_WriteLock
#if CC_NV_GlobalWriteLock
case TPM_CC_NV_GlobalWriteLock:
*handleCount = 1;
result = TPMI_RH_PROVISION_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_NV_GlobalWriteLock
#if CC_NV_Read
case TPM_CC_NV_Read:
*handleCount = 2;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_Read
#if CC_NV_ReadLock
case TPM_CC_NV_ReadLock:
*handleCount = 2;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
break;
#endif // CC_NV_ReadLock
#if CC_NV_ChangeAuth
case TPM_CC_NV_ChangeAuth:
*handleCount = 1;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_NV_ChangeAuth
#if CC_NV_Certify
case TPM_CC_NV_Certify:
*handleCount = 3;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, TRUE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
result = TPMI_RH_NV_INDEX_Unmarshal(&handles[2], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_3;
break;
#endif // CC_NV_Certify
#if CC_AC_GetCapability
case TPM_CC_AC_GetCapability:
*handleCount = 1;
result = TPMI_RH_AC_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_AC_GetCapability
#if CC_AC_Send
case TPM_CC_AC_Send:
*handleCount = 3;
result = TPMI_DH_OBJECT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize, FALSE);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
result = TPMI_RH_NV_AUTH_Unmarshal(&handles[1], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_2;
result = TPMI_RH_AC_Unmarshal(&handles[2], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_3;
break;
#endif // CC_AC_Send
#if CC_Policy_AC_SendSelect
case TPM_CC_Policy_AC_SendSelect:
*handleCount = 1;
result = TPMI_SH_POLICY_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_Policy_AC_SendSelect
#if CC_ACT_SetTimeout
case TPM_CC_ACT_SetTimeout:
*handleCount = 1;
result = TPMI_RH_ACT_Unmarshal(&handles[0], handleBufferStart,
bufferRemainingSize);
if(TPM_RC_SUCCESS != result) return result + TPM_RC_H + TPM_RC_1;
break;
#endif // CC_ACT_SetTimeout
#if CC_Vendor_TCG_Test
case TPM_CC_Vendor_TCG_Test:
break;
#endif // CC_Vendor_TCG_Test