From f9a2e69bbc0e5f11ec2fe351ed8e610853857aba Mon Sep 17 00:00:00 2001 From: Tadeusz Struk Date: Thu, 9 Jan 2020 14:16:50 -0800 Subject: [PATCH] esys: Check object handle node before calling compute_session_value() Fixes: #1593 Signed-off-by: Tadeusz Struk --- src/tss2-esys/api/Esys_ActivateCredential.c | 15 +++++++++++---- src/tss2-esys/api/Esys_Certify.c | 12 ++++++++++-- src/tss2-esys/api/Esys_CertifyCreation.c | 8 ++++++-- src/tss2-esys/api/Esys_ChangeEPS.c | 8 ++++++-- src/tss2-esys/api/Esys_ChangePPS.c | 6 +++++- src/tss2-esys/api/Esys_Clear.c | 6 +++++- src/tss2-esys/api/Esys_ClearControl.c | 6 +++++- src/tss2-esys/api/Esys_ClockRateAdjust.c | 8 ++++++-- src/tss2-esys/api/Esys_ClockSet.c | 6 +++++- src/tss2-esys/api/Esys_Commit.c | 6 +++++- src/tss2-esys/api/Esys_Create.c | 7 ++++++- src/tss2-esys/api/Esys_CreateLoaded.c | 6 +++++- src/tss2-esys/api/Esys_CreatePrimary.c | 6 +++++- .../api/Esys_DictionaryAttackLockReset.c | 6 +++++- .../api/Esys_DictionaryAttackParameters.c | 6 +++++- src/tss2-esys/api/Esys_Duplicate.c | 6 +++++- src/tss2-esys/api/Esys_ECDH_ZGen.c | 6 +++++- src/tss2-esys/api/Esys_EncryptDecrypt.c | 6 +++++- src/tss2-esys/api/Esys_EncryptDecrypt2.c | 6 +++++- src/tss2-esys/api/Esys_EventSequenceComplete.c | 15 +++++++++++---- src/tss2-esys/api/Esys_EvictControl.c | 6 +++++- src/tss2-esys/api/Esys_FieldUpgradeStart.c | 6 +++++- src/tss2-esys/api/Esys_GetCommandAuditDigest.c | 6 +++++- src/tss2-esys/api/Esys_GetSessionAuditDigest.c | 6 +++++- src/tss2-esys/api/Esys_GetTime.c | 6 +++++- src/tss2-esys/api/Esys_HMAC.c | 6 +++++- src/tss2-esys/api/Esys_HMAC_Start.c | 6 +++++- src/tss2-esys/api/Esys_HierarchyChangeAuth.c | 6 +++++- src/tss2-esys/api/Esys_HierarchyControl.c | 6 +++++- src/tss2-esys/api/Esys_Import.c | 6 +++++- src/tss2-esys/api/Esys_Load.c | 6 +++++- src/tss2-esys/api/Esys_NV_Certify.c | 12 ++++++++++-- src/tss2-esys/api/Esys_NV_ChangeAuth.c | 6 +++++- src/tss2-esys/api/Esys_NV_DefineSpace.c | 6 +++++- src/tss2-esys/api/Esys_NV_Extend.c | 6 +++++- src/tss2-esys/api/Esys_NV_GlobalWriteLock.c | 6 +++++- src/tss2-esys/api/Esys_NV_Increment.c | 6 +++++- src/tss2-esys/api/Esys_NV_Read.c | 6 +++++- src/tss2-esys/api/Esys_NV_ReadLock.c | 6 +++++- src/tss2-esys/api/Esys_NV_SetBits.c | 6 +++++- src/tss2-esys/api/Esys_NV_UndefineSpace.c | 6 +++++- src/tss2-esys/api/Esys_NV_UndefineSpaceSpecial.c | 12 ++++++++++-- src/tss2-esys/api/Esys_NV_Write.c | 6 +++++- src/tss2-esys/api/Esys_NV_WriteLock.c | 6 +++++- src/tss2-esys/api/Esys_ObjectChangeAuth.c | 6 +++++- src/tss2-esys/api/Esys_PCR_Allocate.c | 6 +++++- src/tss2-esys/api/Esys_PCR_Event.c | 6 +++++- src/tss2-esys/api/Esys_PCR_Extend.c | 6 +++++- src/tss2-esys/api/Esys_PCR_Reset.c | 6 +++++- src/tss2-esys/api/Esys_PCR_SetAuthPolicy.c | 6 +++++- src/tss2-esys/api/Esys_PCR_SetAuthValue.c | 6 +++++- src/tss2-esys/api/Esys_PP_Commands.c | 6 +++++- src/tss2-esys/api/Esys_PolicyAuthorizeNV.c | 6 +++++- src/tss2-esys/api/Esys_PolicyNV.c | 6 +++++- src/tss2-esys/api/Esys_PolicySecret.c | 6 +++++- src/tss2-esys/api/Esys_Quote.c | 6 +++++- src/tss2-esys/api/Esys_RSA_Decrypt.c | 6 +++++- src/tss2-esys/api/Esys_Rewrap.c | 6 +++++- src/tss2-esys/api/Esys_SequenceComplete.c | 9 ++++++--- src/tss2-esys/api/Esys_SequenceUpdate.c | 9 ++++++--- src/tss2-esys/api/Esys_SetAlgorithmSet.c | 6 +++++- .../api/Esys_SetCommandCodeAuditStatus.c | 6 +++++- src/tss2-esys/api/Esys_SetPrimaryPolicy.c | 6 +++++- src/tss2-esys/api/Esys_Sign.c | 6 +++++- src/tss2-esys/api/Esys_Unseal.c | 6 +++++- src/tss2-esys/api/Esys_ZGen_2Phase.c | 6 +++++- 66 files changed, 363 insertions(+), 82 deletions(-) diff --git a/src/tss2-esys/api/Esys_ActivateCredential.c b/src/tss2-esys/api/Esys_ActivateCredential.c index 3d332521528e..9377ad2a0627 100644 --- a/src/tss2-esys/api/Esys_ActivateCredential.c +++ b/src/tss2-esys/api/Esys_ActivateCredential.c @@ -194,10 +194,17 @@ Esys_ActivateCredential_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], - &activateHandleNode->rsrc.name, &activateHandleNode->auth); - iesys_compute_session_value(esysContext->session_tab[1], - &keyHandleNode->rsrc.name, &keyHandleNode->auth); + if (activateHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], + &activateHandleNode->rsrc.name, &activateHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + + if (keyHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[1], + &keyHandleNode->rsrc.name, &keyHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); /* Generate the auth values and set them in the SAPI command buffer */ diff --git a/src/tss2-esys/api/Esys_Certify.c b/src/tss2-esys/api/Esys_Certify.c index d34d70b88ff7..96c627606684 100644 --- a/src/tss2-esys/api/Esys_Certify.c +++ b/src/tss2-esys/api/Esys_Certify.c @@ -193,10 +193,18 @@ Esys_Certify_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (objectHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &objectHandleNode->rsrc.name, &objectHandleNode->auth); - iesys_compute_session_value(esysContext->session_tab[1], + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + + if (signHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[1], &signHandleNode->rsrc.name, &signHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); /* Generate the auth values and set them in the SAPI command buffer */ diff --git a/src/tss2-esys/api/Esys_CertifyCreation.c b/src/tss2-esys/api/Esys_CertifyCreation.c index 04c07a9bf33c..3135a49f77ca 100644 --- a/src/tss2-esys/api/Esys_CertifyCreation.c +++ b/src/tss2-esys/api/Esys_CertifyCreation.c @@ -209,8 +209,12 @@ Esys_CertifyCreation_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], - &signHandleNode->rsrc.name, &signHandleNode->auth); + if (signHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], + &signHandleNode->rsrc.name, &signHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_ChangeEPS.c b/src/tss2-esys/api/Esys_ChangeEPS.c index 954c442547f3..d76a613d417e 100644 --- a/src/tss2-esys/api/Esys_ChangeEPS.c +++ b/src/tss2-esys/api/Esys_ChangeEPS.c @@ -175,8 +175,12 @@ Esys_ChangeEPS_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], - &authHandleNode->rsrc.name, &authHandleNode->auth); + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], + &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_ChangePPS.c b/src/tss2-esys/api/Esys_ChangePPS.c index c182533cebc5..ea0f9746c247 100644 --- a/src/tss2-esys/api/Esys_ChangePPS.c +++ b/src/tss2-esys/api/Esys_ChangePPS.c @@ -175,8 +175,12 @@ Esys_ChangePPS_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Clear.c b/src/tss2-esys/api/Esys_Clear.c index 96ffb470309f..f5c0b827425a 100644 --- a/src/tss2-esys/api/Esys_Clear.c +++ b/src/tss2-esys/api/Esys_Clear.c @@ -174,8 +174,12 @@ Esys_Clear_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_ClearControl.c b/src/tss2-esys/api/Esys_ClearControl.c index a9fcd1b5e2e9..a4d8b4d0bab6 100644 --- a/src/tss2-esys/api/Esys_ClearControl.c +++ b/src/tss2-esys/api/Esys_ClearControl.c @@ -181,8 +181,12 @@ Esys_ClearControl_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authNode->rsrc.name, &authNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_ClockRateAdjust.c b/src/tss2-esys/api/Esys_ClockRateAdjust.c index cb25c8502d23..931645c95296 100644 --- a/src/tss2-esys/api/Esys_ClockRateAdjust.c +++ b/src/tss2-esys/api/Esys_ClockRateAdjust.c @@ -179,8 +179,12 @@ Esys_ClockRateAdjust_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], - &authNode->rsrc.name, &authNode->auth); + if (authNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], + &authNode->rsrc.name, &authNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_ClockSet.c b/src/tss2-esys/api/Esys_ClockSet.c index 7191576aec6b..b38219e7cbf3 100644 --- a/src/tss2-esys/api/Esys_ClockSet.c +++ b/src/tss2-esys/api/Esys_ClockSet.c @@ -179,8 +179,12 @@ Esys_ClockSet_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authNode->rsrc.name, &authNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Commit.c b/src/tss2-esys/api/Esys_Commit.c index 52298e4c7c6c..8992c20ca419 100644 --- a/src/tss2-esys/api/Esys_Commit.c +++ b/src/tss2-esys/api/Esys_Commit.c @@ -190,8 +190,12 @@ Esys_Commit_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (signHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &signHandleNode->rsrc.name, &signHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Create.c b/src/tss2-esys/api/Esys_Create.c index c7e59f7ed5ff..c21ed7bc7d42 100644 --- a/src/tss2-esys/api/Esys_Create.c +++ b/src/tss2-esys/api/Esys_Create.c @@ -204,8 +204,13 @@ Esys_Create_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + + if (parentHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &parentHandleNode->rsrc.name, &parentHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_CreateLoaded.c b/src/tss2-esys/api/Esys_CreateLoaded.c index a92649cade27..7b366045e5eb 100644 --- a/src/tss2-esys/api/Esys_CreateLoaded.c +++ b/src/tss2-esys/api/Esys_CreateLoaded.c @@ -210,8 +210,12 @@ Esys_CreateLoaded_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (parentHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &parentHandleNode->rsrc.name, &parentHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_CreatePrimary.c b/src/tss2-esys/api/Esys_CreatePrimary.c index 9eb19042e7bb..a9b9e8f2dfe6 100644 --- a/src/tss2-esys/api/Esys_CreatePrimary.c +++ b/src/tss2-esys/api/Esys_CreatePrimary.c @@ -223,8 +223,12 @@ Esys_CreatePrimary_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (primaryHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &primaryHandleNode->rsrc.name, &primaryHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_DictionaryAttackLockReset.c b/src/tss2-esys/api/Esys_DictionaryAttackLockReset.c index 1e8207fe7cfc..bada24bd3dbd 100644 --- a/src/tss2-esys/api/Esys_DictionaryAttackLockReset.c +++ b/src/tss2-esys/api/Esys_DictionaryAttackLockReset.c @@ -176,8 +176,12 @@ Esys_DictionaryAttackLockReset_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (lockHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &lockHandleNode->rsrc.name, &lockHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_DictionaryAttackParameters.c b/src/tss2-esys/api/Esys_DictionaryAttackParameters.c index f10aa2f06b46..a61a5b4d4f26 100644 --- a/src/tss2-esys/api/Esys_DictionaryAttackParameters.c +++ b/src/tss2-esys/api/Esys_DictionaryAttackParameters.c @@ -198,8 +198,12 @@ Esys_DictionaryAttackParameters_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (lockHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &lockHandleNode->rsrc.name, &lockHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Duplicate.c b/src/tss2-esys/api/Esys_Duplicate.c index d0e5799897e2..c587fd740af7 100644 --- a/src/tss2-esys/api/Esys_Duplicate.c +++ b/src/tss2-esys/api/Esys_Duplicate.c @@ -202,8 +202,12 @@ Esys_Duplicate_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (objectHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &objectHandleNode->rsrc.name, &objectHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_ECDH_ZGen.c b/src/tss2-esys/api/Esys_ECDH_ZGen.c index 24e487363f0f..dad825960e62 100644 --- a/src/tss2-esys/api/Esys_ECDH_ZGen.c +++ b/src/tss2-esys/api/Esys_ECDH_ZGen.c @@ -171,8 +171,12 @@ Esys_ECDH_ZGen_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (keyHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &keyHandleNode->rsrc.name, &keyHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_EncryptDecrypt.c b/src/tss2-esys/api/Esys_EncryptDecrypt.c index 506f22e68317..e3b6cc64f58a 100644 --- a/src/tss2-esys/api/Esys_EncryptDecrypt.c +++ b/src/tss2-esys/api/Esys_EncryptDecrypt.c @@ -196,8 +196,12 @@ Esys_EncryptDecrypt_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (keyHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &keyHandleNode->rsrc.name, &keyHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_EncryptDecrypt2.c b/src/tss2-esys/api/Esys_EncryptDecrypt2.c index a6fa4b1f2185..bdbae8392f57 100644 --- a/src/tss2-esys/api/Esys_EncryptDecrypt2.c +++ b/src/tss2-esys/api/Esys_EncryptDecrypt2.c @@ -190,8 +190,12 @@ Esys_EncryptDecrypt2_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (keyHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &keyHandleNode->rsrc.name, &keyHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_EventSequenceComplete.c b/src/tss2-esys/api/Esys_EventSequenceComplete.c index c318a67a4369..6ee7904a358d 100644 --- a/src/tss2-esys/api/Esys_EventSequenceComplete.c +++ b/src/tss2-esys/api/Esys_EventSequenceComplete.c @@ -189,11 +189,18 @@ Esys_EventSequenceComplete_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (pcrHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &pcrHandleNode->rsrc.name, &pcrHandleNode->auth); - iesys_compute_session_value(esysContext->session_tab[1], - sequenceHandleNode ? &sequenceHandleNode->rsrc.name : NULL, - sequenceHandleNode ? &sequenceHandleNode->auth : NULL); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + + if (sequenceHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[1], + &sequenceHandleNode->rsrc.name, &sequenceHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); /* Generate the auth values and set them in the SAPI command buffer */ diff --git a/src/tss2-esys/api/Esys_EvictControl.c b/src/tss2-esys/api/Esys_EvictControl.c index fe7aaaccf888..faade51c7060 100644 --- a/src/tss2-esys/api/Esys_EvictControl.c +++ b/src/tss2-esys/api/Esys_EvictControl.c @@ -209,8 +209,12 @@ Esys_EvictControl_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authNode->rsrc.name, &authNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_FieldUpgradeStart.c b/src/tss2-esys/api/Esys_FieldUpgradeStart.c index 27f963accf40..2e1a07e29700 100644 --- a/src/tss2-esys/api/Esys_FieldUpgradeStart.c +++ b/src/tss2-esys/api/Esys_FieldUpgradeStart.c @@ -196,8 +196,12 @@ Esys_FieldUpgradeStart_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authorizationNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authorizationNode->rsrc.name, &authorizationNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_GetCommandAuditDigest.c b/src/tss2-esys/api/Esys_GetCommandAuditDigest.c index 0c3b642b3c51..714b3706bf40 100644 --- a/src/tss2-esys/api/Esys_GetCommandAuditDigest.c +++ b/src/tss2-esys/api/Esys_GetCommandAuditDigest.c @@ -196,8 +196,12 @@ Esys_GetCommandAuditDigest_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (privacyHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &privacyHandleNode->rsrc.name, &privacyHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], &signHandleNode->rsrc.name, &signHandleNode->auth); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_GetSessionAuditDigest.c b/src/tss2-esys/api/Esys_GetSessionAuditDigest.c index 9d7ef314a637..38a62787d892 100644 --- a/src/tss2-esys/api/Esys_GetSessionAuditDigest.c +++ b/src/tss2-esys/api/Esys_GetSessionAuditDigest.c @@ -210,8 +210,12 @@ Esys_GetSessionAuditDigest_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (privacyAdminHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &privacyAdminHandleNode->rsrc.name, &privacyAdminHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], &signHandleNode->rsrc.name, &signHandleNode->auth); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_GetTime.c b/src/tss2-esys/api/Esys_GetTime.c index 2142b8ec47df..6948dcbdcba6 100644 --- a/src/tss2-esys/api/Esys_GetTime.c +++ b/src/tss2-esys/api/Esys_GetTime.c @@ -194,8 +194,12 @@ Esys_GetTime_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (privacyAdminHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &privacyAdminHandleNode->rsrc.name, &privacyAdminHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], &signHandleNode->rsrc.name, &signHandleNode->auth); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_HMAC.c b/src/tss2-esys/api/Esys_HMAC.c index 0d92f1c0c363..0e57c647d959 100644 --- a/src/tss2-esys/api/Esys_HMAC.c +++ b/src/tss2-esys/api/Esys_HMAC.c @@ -177,8 +177,12 @@ Esys_HMAC_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (handleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &handleNode->rsrc.name, &handleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_HMAC_Start.c b/src/tss2-esys/api/Esys_HMAC_Start.c index afecbfbaf0a6..b129be39a4d2 100644 --- a/src/tss2-esys/api/Esys_HMAC_Start.c +++ b/src/tss2-esys/api/Esys_HMAC_Start.c @@ -194,8 +194,12 @@ Esys_HMAC_Start_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (handleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &handleNode->rsrc.name, &handleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_HierarchyChangeAuth.c b/src/tss2-esys/api/Esys_HierarchyChangeAuth.c index 90d87bb5d76c..39672ed6823b 100644 --- a/src/tss2-esys/api/Esys_HierarchyChangeAuth.c +++ b/src/tss2-esys/api/Esys_HierarchyChangeAuth.c @@ -194,8 +194,12 @@ Esys_HierarchyChangeAuth_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_HierarchyControl.c b/src/tss2-esys/api/Esys_HierarchyControl.c index 16fd593a6484..55207f20e6d2 100644 --- a/src/tss2-esys/api/Esys_HierarchyControl.c +++ b/src/tss2-esys/api/Esys_HierarchyControl.c @@ -189,8 +189,12 @@ Esys_HierarchyControl_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Import.c b/src/tss2-esys/api/Esys_Import.c index d7c36352b21f..8c24ed410c37 100644 --- a/src/tss2-esys/api/Esys_Import.c +++ b/src/tss2-esys/api/Esys_Import.c @@ -199,8 +199,12 @@ Esys_Import_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (parentHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &parentHandleNode->rsrc.name, &parentHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Load.c b/src/tss2-esys/api/Esys_Load.c index b695991924c8..410d9c8bcc73 100644 --- a/src/tss2-esys/api/Esys_Load.c +++ b/src/tss2-esys/api/Esys_Load.c @@ -191,8 +191,12 @@ Esys_Load_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (parentHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &parentHandleNode->rsrc.name, &parentHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_Certify.c b/src/tss2-esys/api/Esys_NV_Certify.c index 8f0eb6e65536..8b79fb69dae0 100644 --- a/src/tss2-esys/api/Esys_NV_Certify.c +++ b/src/tss2-esys/api/Esys_NV_Certify.c @@ -215,10 +215,18 @@ Esys_NV_Certify_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (signHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &signHandleNode->rsrc.name, &signHandleNode->auth); - iesys_compute_session_value(esysContext->session_tab[1], + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[1], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); /* Generate the auth values and set them in the SAPI command buffer */ diff --git a/src/tss2-esys/api/Esys_NV_ChangeAuth.c b/src/tss2-esys/api/Esys_NV_ChangeAuth.c index d2aced330113..3004a3dd4b1d 100644 --- a/src/tss2-esys/api/Esys_NV_ChangeAuth.c +++ b/src/tss2-esys/api/Esys_NV_ChangeAuth.c @@ -190,8 +190,12 @@ Esys_NV_ChangeAuth_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (nvIndexNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &nvIndexNode->rsrc.name, &nvIndexNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_DefineSpace.c b/src/tss2-esys/api/Esys_NV_DefineSpace.c index 01b6a3e3fd7b..70ae2a73d0be 100644 --- a/src/tss2-esys/api/Esys_NV_DefineSpace.c +++ b/src/tss2-esys/api/Esys_NV_DefineSpace.c @@ -213,8 +213,12 @@ Esys_NV_DefineSpace_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_Extend.c b/src/tss2-esys/api/Esys_NV_Extend.c index 23eeabddc24d..0b3d61b99405 100644 --- a/src/tss2-esys/api/Esys_NV_Extend.c +++ b/src/tss2-esys/api/Esys_NV_Extend.c @@ -194,8 +194,12 @@ Esys_NV_Extend_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_GlobalWriteLock.c b/src/tss2-esys/api/Esys_NV_GlobalWriteLock.c index f84ec4f0994e..56a9b1171462 100644 --- a/src/tss2-esys/api/Esys_NV_GlobalWriteLock.c +++ b/src/tss2-esys/api/Esys_NV_GlobalWriteLock.c @@ -176,8 +176,12 @@ Esys_NV_GlobalWriteLock_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_Increment.c b/src/tss2-esys/api/Esys_NV_Increment.c index 17504c6db1f1..6248b4b6c007 100644 --- a/src/tss2-esys/api/Esys_NV_Increment.c +++ b/src/tss2-esys/api/Esys_NV_Increment.c @@ -195,8 +195,12 @@ Esys_NV_Increment_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_Read.c b/src/tss2-esys/api/Esys_NV_Read.c index f97784f72b85..40f54ec7fea4 100644 --- a/src/tss2-esys/api/Esys_NV_Read.c +++ b/src/tss2-esys/api/Esys_NV_Read.c @@ -192,8 +192,12 @@ Esys_NV_Read_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_ReadLock.c b/src/tss2-esys/api/Esys_NV_ReadLock.c index ee15450f3e09..529446a02b30 100644 --- a/src/tss2-esys/api/Esys_NV_ReadLock.c +++ b/src/tss2-esys/api/Esys_NV_ReadLock.c @@ -195,8 +195,12 @@ Esys_NV_ReadLock_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_SetBits.c b/src/tss2-esys/api/Esys_NV_SetBits.c index a3d5508c0cbe..17d769880e16 100644 --- a/src/tss2-esys/api/Esys_NV_SetBits.c +++ b/src/tss2-esys/api/Esys_NV_SetBits.c @@ -200,8 +200,12 @@ Esys_NV_SetBits_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_UndefineSpace.c b/src/tss2-esys/api/Esys_NV_UndefineSpace.c index e816299dddbf..14a04789eb6e 100644 --- a/src/tss2-esys/api/Esys_NV_UndefineSpace.c +++ b/src/tss2-esys/api/Esys_NV_UndefineSpace.c @@ -193,8 +193,12 @@ Esys_NV_UndefineSpace_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_UndefineSpaceSpecial.c b/src/tss2-esys/api/Esys_NV_UndefineSpaceSpecial.c index c3df73f80a25..bd5aa2ef838d 100644 --- a/src/tss2-esys/api/Esys_NV_UndefineSpaceSpecial.c +++ b/src/tss2-esys/api/Esys_NV_UndefineSpaceSpecial.c @@ -195,10 +195,18 @@ Esys_NV_UndefineSpaceSpecial_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (nvIndexNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &nvIndexNode->rsrc.name, &nvIndexNode->auth); - iesys_compute_session_value(esysContext->session_tab[1], + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + + if (platformNode != NULL) + iesys_compute_session_value(esysContext->session_tab[1], &platformNode->rsrc.name, &platformNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); /* Generate the auth values and set them in the SAPI command buffer */ diff --git a/src/tss2-esys/api/Esys_NV_Write.c b/src/tss2-esys/api/Esys_NV_Write.c index f18e9d9724d7..c132def44c4a 100644 --- a/src/tss2-esys/api/Esys_NV_Write.c +++ b/src/tss2-esys/api/Esys_NV_Write.c @@ -198,8 +198,12 @@ Esys_NV_Write_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_NV_WriteLock.c b/src/tss2-esys/api/Esys_NV_WriteLock.c index b2a8f646aaf4..c8b7ef4d2bc6 100644 --- a/src/tss2-esys/api/Esys_NV_WriteLock.c +++ b/src/tss2-esys/api/Esys_NV_WriteLock.c @@ -195,8 +195,12 @@ Esys_NV_WriteLock_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_ObjectChangeAuth.c b/src/tss2-esys/api/Esys_ObjectChangeAuth.c index e7e018893f68..408b354f057a 100644 --- a/src/tss2-esys/api/Esys_ObjectChangeAuth.c +++ b/src/tss2-esys/api/Esys_ObjectChangeAuth.c @@ -183,8 +183,12 @@ Esys_ObjectChangeAuth_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (objectHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &objectHandleNode->rsrc.name, &objectHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PCR_Allocate.c b/src/tss2-esys/api/Esys_PCR_Allocate.c index ea82b45182ae..d9a426ce8bab 100644 --- a/src/tss2-esys/api/Esys_PCR_Allocate.c +++ b/src/tss2-esys/api/Esys_PCR_Allocate.c @@ -194,8 +194,12 @@ Esys_PCR_Allocate_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PCR_Event.c b/src/tss2-esys/api/Esys_PCR_Event.c index 30ef453adc17..a01335629141 100644 --- a/src/tss2-esys/api/Esys_PCR_Event.c +++ b/src/tss2-esys/api/Esys_PCR_Event.c @@ -176,8 +176,12 @@ Esys_PCR_Event_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (pcrHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &pcrHandleNode->rsrc.name, &pcrHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PCR_Extend.c b/src/tss2-esys/api/Esys_PCR_Extend.c index bbb1e4133aa2..8e2d4ad39403 100644 --- a/src/tss2-esys/api/Esys_PCR_Extend.c +++ b/src/tss2-esys/api/Esys_PCR_Extend.c @@ -179,8 +179,12 @@ Esys_PCR_Extend_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (pcrHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &pcrHandleNode->rsrc.name, &pcrHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PCR_Reset.c b/src/tss2-esys/api/Esys_PCR_Reset.c index ed5a9aa49089..178a7924632c 100644 --- a/src/tss2-esys/api/Esys_PCR_Reset.c +++ b/src/tss2-esys/api/Esys_PCR_Reset.c @@ -175,8 +175,12 @@ Esys_PCR_Reset_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (pcrHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &pcrHandleNode->rsrc.name, &pcrHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PCR_SetAuthPolicy.c b/src/tss2-esys/api/Esys_PCR_SetAuthPolicy.c index a98817d36cd6..a7197c945103 100644 --- a/src/tss2-esys/api/Esys_PCR_SetAuthPolicy.c +++ b/src/tss2-esys/api/Esys_PCR_SetAuthPolicy.c @@ -184,8 +184,12 @@ Esys_PCR_SetAuthPolicy_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PCR_SetAuthValue.c b/src/tss2-esys/api/Esys_PCR_SetAuthValue.c index 8bd1e37b3bc5..68e7c8a6d95f 100644 --- a/src/tss2-esys/api/Esys_PCR_SetAuthValue.c +++ b/src/tss2-esys/api/Esys_PCR_SetAuthValue.c @@ -175,8 +175,12 @@ Esys_PCR_SetAuthValue_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (pcrHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &pcrHandleNode->rsrc.name, &pcrHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PP_Commands.c b/src/tss2-esys/api/Esys_PP_Commands.c index 188a5a459124..a7b803482a19 100644 --- a/src/tss2-esys/api/Esys_PP_Commands.c +++ b/src/tss2-esys/api/Esys_PP_Commands.c @@ -189,8 +189,12 @@ Esys_PP_Commands_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authNode->rsrc.name, &authNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PolicyAuthorizeNV.c b/src/tss2-esys/api/Esys_PolicyAuthorizeNV.c index bf52ec0d7041..4b71768872d7 100644 --- a/src/tss2-esys/api/Esys_PolicyAuthorizeNV.c +++ b/src/tss2-esys/api/Esys_PolicyAuthorizeNV.c @@ -199,8 +199,12 @@ Esys_PolicyAuthorizeNV_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PolicyNV.c b/src/tss2-esys/api/Esys_PolicyNV.c index 752856e2eda7..cfff5fc33da1 100644 --- a/src/tss2-esys/api/Esys_PolicyNV.c +++ b/src/tss2-esys/api/Esys_PolicyNV.c @@ -206,8 +206,12 @@ Esys_PolicyNV_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_PolicySecret.c b/src/tss2-esys/api/Esys_PolicySecret.c index 671c40cdba0c..c755578e9da7 100644 --- a/src/tss2-esys/api/Esys_PolicySecret.c +++ b/src/tss2-esys/api/Esys_PolicySecret.c @@ -208,8 +208,12 @@ Esys_PolicySecret_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Quote.c b/src/tss2-esys/api/Esys_Quote.c index 3c3f7f10f852..44ba57f2fe1a 100644 --- a/src/tss2-esys/api/Esys_Quote.c +++ b/src/tss2-esys/api/Esys_Quote.c @@ -185,8 +185,12 @@ Esys_Quote_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (signHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &signHandleNode->rsrc.name, &signHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_RSA_Decrypt.c b/src/tss2-esys/api/Esys_RSA_Decrypt.c index 30ec54e3d0d2..a4c953be1f3b 100644 --- a/src/tss2-esys/api/Esys_RSA_Decrypt.c +++ b/src/tss2-esys/api/Esys_RSA_Decrypt.c @@ -182,8 +182,12 @@ Esys_RSA_Decrypt_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (keyHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &keyHandleNode->rsrc.name, &keyHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Rewrap.c b/src/tss2-esys/api/Esys_Rewrap.c index f31538d008fc..f1127ce47706 100644 --- a/src/tss2-esys/api/Esys_Rewrap.c +++ b/src/tss2-esys/api/Esys_Rewrap.c @@ -197,8 +197,12 @@ Esys_Rewrap_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (oldParentNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &oldParentNode->rsrc.name, &oldParentNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_SequenceComplete.c b/src/tss2-esys/api/Esys_SequenceComplete.c index c6afd9097366..2227afc1f453 100644 --- a/src/tss2-esys/api/Esys_SequenceComplete.c +++ b/src/tss2-esys/api/Esys_SequenceComplete.c @@ -190,9 +190,12 @@ Esys_SequenceComplete_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], - sequenceHandleNode ? &sequenceHandleNode->rsrc.name : NULL, - sequenceHandleNode ? &sequenceHandleNode->auth : NULL); + if (sequenceHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], + &sequenceHandleNode->rsrc.name, &sequenceHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_SequenceUpdate.c b/src/tss2-esys/api/Esys_SequenceUpdate.c index add3ec4f33bf..c1bc93daeb03 100644 --- a/src/tss2-esys/api/Esys_SequenceUpdate.c +++ b/src/tss2-esys/api/Esys_SequenceUpdate.c @@ -175,9 +175,12 @@ Esys_SequenceUpdate_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], - sequenceHandleNode ? &sequenceHandleNode->rsrc.name : NULL, - sequenceHandleNode ? &sequenceHandleNode->auth : NULL); + if (sequenceHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], + &sequenceHandleNode->rsrc.name, &sequenceHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_SetAlgorithmSet.c b/src/tss2-esys/api/Esys_SetAlgorithmSet.c index d73771e3f74a..4716f04b8793 100644 --- a/src/tss2-esys/api/Esys_SetAlgorithmSet.c +++ b/src/tss2-esys/api/Esys_SetAlgorithmSet.c @@ -182,8 +182,12 @@ Esys_SetAlgorithmSet_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_SetCommandCodeAuditStatus.c b/src/tss2-esys/api/Esys_SetCommandCodeAuditStatus.c index 1290a87b7563..38268b94e1cb 100644 --- a/src/tss2-esys/api/Esys_SetCommandCodeAuditStatus.c +++ b/src/tss2-esys/api/Esys_SetCommandCodeAuditStatus.c @@ -196,8 +196,12 @@ Esys_SetCommandCodeAuditStatus_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authNode->rsrc.name, &authNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_SetPrimaryPolicy.c b/src/tss2-esys/api/Esys_SetPrimaryPolicy.c index 51272d57c8e2..73b676870704 100644 --- a/src/tss2-esys/api/Esys_SetPrimaryPolicy.c +++ b/src/tss2-esys/api/Esys_SetPrimaryPolicy.c @@ -183,8 +183,12 @@ Esys_SetPrimaryPolicy_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (authHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &authHandleNode->rsrc.name, &authHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Sign.c b/src/tss2-esys/api/Esys_Sign.c index 06a0a451e4d9..374c17d35543 100644 --- a/src/tss2-esys/api/Esys_Sign.c +++ b/src/tss2-esys/api/Esys_Sign.c @@ -188,8 +188,12 @@ Esys_Sign_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (keyHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &keyHandleNode->rsrc.name, &keyHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_Unseal.c b/src/tss2-esys/api/Esys_Unseal.c index 1ac785809fe8..b3203a0e5aae 100644 --- a/src/tss2-esys/api/Esys_Unseal.c +++ b/src/tss2-esys/api/Esys_Unseal.c @@ -172,8 +172,12 @@ Esys_Unseal_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (itemHandleNode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &itemHandleNode->rsrc.name, &itemHandleNode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); diff --git a/src/tss2-esys/api/Esys_ZGen_2Phase.c b/src/tss2-esys/api/Esys_ZGen_2Phase.c index cb30880c3c71..c59996d35aea 100644 --- a/src/tss2-esys/api/Esys_ZGen_2Phase.c +++ b/src/tss2-esys/api/Esys_ZGen_2Phase.c @@ -190,8 +190,12 @@ Esys_ZGen_2Phase_Async( /* Calculate the cpHash Values */ r = init_session_tab(esysContext, shandle1, shandle2, shandle3); return_state_if_error(r, _ESYS_STATE_INIT, "Initialize session resources"); - iesys_compute_session_value(esysContext->session_tab[0], + if (keyANode != NULL) + iesys_compute_session_value(esysContext->session_tab[0], &keyANode->rsrc.name, &keyANode->auth); + else + iesys_compute_session_value(esysContext->session_tab[0], NULL, NULL); + iesys_compute_session_value(esysContext->session_tab[1], NULL, NULL); iesys_compute_session_value(esysContext->session_tab[2], NULL, NULL); -- 2.27.0