tpmclient: remove syscontext functions
Remove test/tpmclient/syscontext.c and test/tpmclient/syscontext.c
and use common context helpers.
Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
diff --git a/Makefile-test.am b/Makefile-test.am
index aab8444..4af2e0a 100644
--- a/Makefile-test.am
+++ b/Makefile-test.am
@@ -264,8 +264,7 @@
test/tpmclient/DecryptEncrypt.c \
test/tpmclient/Entity.c test/tpmclient/kdfa.c \
test/integration/main.c test/tpmclient/sample.h \
- test/tpmclient/StartAuthSession.c test/tpmclient/syscontext.c \
- test/tpmclient/syscontext.h test/tpmclient/TpmCalcPHash.c \
+ test/tpmclient/StartAuthSession.c test/tpmclient/TpmCalcPHash.c \
test/tpmclient/tpmclient.int.c test/tpmclient/tpmclient.h \
test/tpmclient/TpmHandleToName.c test/tpmclient/SessionHmac.c
diff --git a/test/tpmclient/DecryptEncrypt.c b/test/tpmclient/DecryptEncrypt.c
index fd128a0..7d23db0 100644
--- a/test/tpmclient/DecryptEncrypt.c
+++ b/test/tpmclient/DecryptEncrypt.c
@@ -27,7 +27,7 @@
#include <string.h>
#include "tss2_tpm2_types.h"
-
+#include "../integration/context-util.h"
#include "sample.h"
TSS2_RC GetBlockSizeInBits( TPMI_ALG_SYM algorithm, UINT32 *blockSizeInBits )
@@ -119,17 +119,14 @@
inPublic.publicArea.parameters.symDetail.sym.mode = symmetric->mode;
inPublic.publicArea.unique.sym.size = 0;
- sysContext = InitSysContext( 1000, resMgrTctiContext, &abiVersion );
- if( sysContext == 0 )
- {
+ sysContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (sysContext == NULL)
return TSS2_APP_RC_INIT_SYS_CONTEXT_FAILED;
- }
INIT_SIMPLE_TPM2B_SIZE( *keyName );
- rval = Tss2_Sys_LoadExternal( sysContext, 0, &inPrivate, &inPublic, TPM2_RH_NULL, keyHandle, keyName, 0 );
+ rval = Tss2_Sys_LoadExternal(sysContext, 0, &inPrivate, &inPublic, TPM2_RH_NULL, keyHandle, keyName, 0);
- TeardownSysContext( &sysContext );
-
+ sapi_teardown(sysContext);
return rval;
}
@@ -147,10 +144,9 @@
.count = 1,
.auths = { 0 }};
- sysContext = InitSysContext( 1000, resMgrTctiContext, &abiVersion );
- if( sysContext == 0 )
- {
- TeardownSysContext( &sysContext );
+ sysContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (sysContext == NULL) {
+ sapi_teardown(sysContext);
return TSS2_APP_RC_TEARDOWN_SYS_CONTEXT_FAILED;
}
@@ -176,7 +172,7 @@
}
}
}
- TeardownSysContext( &sysContext );
+ sapi_teardown(sysContext);
return rval;
}
@@ -194,10 +190,9 @@
.count = 1,
.auths = { 0 }};
- sysContext = InitSysContext( 1000, resMgrTctiContext, &abiVersion );
- if( sysContext == 0 )
- {
- TeardownSysContext( &sysContext );
+ sysContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (sysContext == NULL) {
+ sapi_teardown(sysContext);
return TSS2_APP_RC_TEARDOWN_SYS_CONTEXT_FAILED;
}
@@ -223,8 +218,7 @@
}
}
}
- TeardownSysContext( &sysContext );
-
+ sapi_teardown(sysContext);
return rval;
}
diff --git a/test/tpmclient/StartAuthSession.c b/test/tpmclient/StartAuthSession.c
index abfe4ec..8c95894 100644
--- a/test/tpmclient/StartAuthSession.c
+++ b/test/tpmclient/StartAuthSession.c
@@ -28,9 +28,10 @@
#include <stdlib.h>
#include "tss2_sys.h"
+#include "sysapi_util.h"
#include "sample.h"
-#include "../integration/sapi-util.h"
+#include "../integration/context-util.h"
#define LOGMODULE testtpmclient
#include "util/log.h"
@@ -171,8 +172,8 @@
key.size = 0;
- tmpSysContext = InitSysContext( 1000, tctiContext, &abiVersion );
- if( tmpSysContext == 0 )
+ tmpSysContext = sapi_init_from_tcti_ctx(tctiContext);
+ if (tmpSysContext == NULL)
return TSS2_APP_RC_INIT_SYS_CONTEXT_FAILED;
if( session->nonceOlder.size == 0 )
@@ -203,17 +204,15 @@
{
// Generate the key used as input to the KDF.
rval = ConcatSizedByteBuffer((TPM2B_MAX_BUFFER *)&key, (TPM2B *)&session->authValueBind);
- if( rval != TPM2_RC_SUCCESS )
- {
- TeardownSysContext( &tmpSysContext );
- return( rval );
+ if (rval != TPM2_RC_SUCCESS) {
+ sapi_teardown(tmpSysContext);
+ return rval;
}
rval = ConcatSizedByteBuffer((TPM2B_MAX_BUFFER *)&key, (TPM2B *)&session->salt);
- if( rval != TPM2_RC_SUCCESS )
- {
- TeardownSysContext( &tmpSysContext );
- return( rval );
+ if (rval != TPM2_RC_SUCCESS) {
+ sapi_teardown(tmpSysContext);
+ return rval;
}
bytes = GetDigestSize( session->authHash );
@@ -228,10 +227,9 @@
(TPM2B *)&session->nonceOlder, bytes * 8, (TPM2B_MAX_BUFFER *)&session->sessionKey);
}
- if( rval != TPM2_RC_SUCCESS )
- {
- TeardownSysContext( &tmpSysContext );
- return( TSS2_APP_RC_CREATE_SESSION_KEY_FAILED );
+ if (rval != TPM2_RC_SUCCESS) {
+ sapi_teardown(tmpSysContext);
+ return TSS2_APP_RC_CREATE_SESSION_KEY_FAILED;
}
}
@@ -240,8 +238,7 @@
session->nvNameChanged = 0;
}
- TeardownSysContext( &tmpSysContext );
-
+ sapi_teardown(tmpSysContext);
return rval;
}
diff --git a/test/tpmclient/TpmHandleToName.c b/test/tpmclient/TpmHandleToName.c
index 47c2d2b..cb71a39 100644
--- a/test/tpmclient/TpmHandleToName.c
+++ b/test/tpmclient/TpmHandleToName.c
@@ -29,10 +29,9 @@
#include "sample.h"
#include "sysapi_util.h"
+#include "../integration/context-util.h"
#include "util/tss2_endian.h"
-//
-//
UINT32 TpmHandleToName( TPM2_HANDLE handle, TPM2B_NAME *name )
{
TSS2_RC rval;
@@ -56,24 +55,24 @@
switch( handle >> TPM2_HR_SHIFT )
{
case TPM2_HT_NV_INDEX:
- sysContext = InitSysContext( 1000, resMgrTctiContext, &abiVersion );
- if( sysContext == 0 )
+ sysContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (sysContext == NULL)
return TSS2_APP_RC_INIT_SYS_CONTEXT_FAILED;
nvPublic.size = 0;
rval = Tss2_Sys_NV_ReadPublic( sysContext, handle, 0, &nvPublic, name, 0 );
- TeardownSysContext( &sysContext );
+ sapi_teardown(sysContext);
break;
case TPM2_HT_TRANSIENT:
case TPM2_HT_PERSISTENT:
- sysContext = InitSysContext( 1000, resMgrTctiContext, &abiVersion );
- if( sysContext == 0 )
+ sysContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (sysContext == NULL)
return TSS2_APP_RC_INIT_SYS_CONTEXT_FAILED;
public.size = 0;
rval = Tss2_Sys_ReadPublic( sysContext, handle, 0, &public, name, &qualifiedName, 0 );
- TeardownSysContext( &sysContext );
+ sapi_teardown(sysContext);
break;
default:
diff --git a/test/tpmclient/sample.h b/test/tpmclient/sample.h
index 2c48c49..29f5c45 100644
--- a/test/tpmclient/sample.h
+++ b/test/tpmclient/sample.h
@@ -37,10 +37,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "syscontext.h"
extern TSS2_TCTI_CONTEXT *resMgrTctiContext;
-extern TSS2_ABI_VERSION abiVersion;
enum TSS2_APP_RC_CODE
{
diff --git a/test/tpmclient/syscontext.c b/test/tpmclient/syscontext.c
deleted file mode 100644
index 35514f6..0000000
--- a/test/tpmclient/syscontext.c
+++ /dev/null
@@ -1,83 +0,0 @@
-//**********************************************************************;
-// Copyright (c) 2015, Intel Corporation
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-//
-// 2. 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.
-//**********************************************************************;
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "tss2_sys.h"
-
-#include "sysapi_util.h"
-
-// Allocates space for and initializes system
-// context structure.
-// Returns:
-// ptr to system context, if successful
-// NULL pointer, if not successful.
-
-TSS2_SYS_CONTEXT *InitSysContext(
- UINT16 maxCommandSize,
- TSS2_TCTI_CONTEXT *tctiContext,
- TSS2_ABI_VERSION *abiVersion
- )
-{
- UINT32 contextSize;
- TSS2_RC rval;
- TSS2_SYS_CONTEXT *sysContext;
-
- // Get the size needed for system context structure.
- contextSize = Tss2_Sys_GetContextSize( maxCommandSize );
-
- // Allocate the space for the system context structure.
- sysContext = malloc( contextSize );
-
- if( sysContext != 0 )
- {
- // Initialized the system context structure.
- rval = Tss2_Sys_Initialize( sysContext, contextSize, tctiContext, abiVersion );
-
- if( rval == TSS2_RC_SUCCESS ) {
- return sysContext;
- } else {
- free (sysContext);
- return NULL;
- }
- }
- else
- {
- return 0;
- }
-}
-
-void TeardownSysContext( TSS2_SYS_CONTEXT **sysContext )
-{
- if( *sysContext != 0 )
- {
- Tss2_Sys_Finalize(*sysContext);
-
- free(*sysContext);
- *sysContext = 0;
- }
-}
diff --git a/test/tpmclient/syscontext.h b/test/tpmclient/syscontext.h
deleted file mode 100644
index a487e53..0000000
--- a/test/tpmclient/syscontext.h
+++ /dev/null
@@ -1,47 +0,0 @@
-//**********************************************************************;
-// Copyright (c) 2015, Intel Corporation
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-//
-// 2. 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.
-//**********************************************************************;
-
-#ifndef SYS_CONTEXT_H
-#define SYS_CONTEXT_H
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "tss2_sys.h"
-#include "tss2_tcti.h"
-
-#include "sysapi_util.h"
-
-TSS2_SYS_CONTEXT *InitSysContext(
- UINT16 maxCommandSize,
- TSS2_TCTI_CONTEXT *tctiContext,
- TSS2_ABI_VERSION *abiVersion
- );
-
-void TeardownSysContext( TSS2_SYS_CONTEXT **sysContext );
-
-#endif
diff --git a/test/tpmclient/tpmclient.int.c b/test/tpmclient/tpmclient.int.c
index 89e1898..b803e58 100644
--- a/test/tpmclient/tpmclient.int.c
+++ b/test/tpmclient/tpmclient.int.c
@@ -41,7 +41,6 @@
#include "tpmclient.h"
#include "util/tss2_endian.h"
#include "sysapi_util.h"
-#include "syscontext.h"
#define LOGMODULE testtpmclient
#include "util/log.h"
@@ -99,7 +98,6 @@
TSS2_SYS_CONTEXT *sysContext;
TSS2_TCTI_CONTEXT *resMgrTctiContext = 0;
-TSS2_ABI_VERSION abiVersion = { TSSWG_INTEROP, TSS_SAPI_FIRST_FAMILY, TSS_SAPI_FIRST_LEVEL, TSS_SAPI_FIRST_VERSION };
#define MSFT_MANUFACTURER_ID 0x4d534654
#define IBM_MANUFACTURER_ID 0x49424d20
@@ -146,12 +144,9 @@
static void Cleanup()
{
- fflush( stdout );
-
- if( resMgrTctiContext != 0 )
- {
- tcti_platform_command( resMgrTctiContext, MS_SIM_POWER_OFF );
- tcti_teardown (resMgrTctiContext);
+ if (resMgrTctiContext != NULL) {
+ tcti_platform_command(resMgrTctiContext, MS_SIM_POWER_OFF);
+ tcti_teardown(resMgrTctiContext);
resMgrTctiContext = NULL;
}
@@ -160,7 +155,7 @@
static void InitSysContextFailure()
{
- LOG_ERROR("InitSysContext failed, exiting..." );
+ LOG_ERROR("InitSysContext failed, exiting...");
Cleanup();
}
@@ -2149,11 +2144,9 @@
(void)(testString);
// Create sysContext structure.
- simpleTestContext = InitSysContext( 1000, resMgrTctiContext, &abiVersion );
- if( simpleTestContext == 0 )
- {
+ simpleTestContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (simpleTestContext == NULL)
InitSysContextFailure();
- }
// Setup the NV index's authorization value.
nvAuth.size = strlen( sharedSecret );
@@ -2434,11 +2427,9 @@
// Remove the real session from sessions table.
rval = EndAuthSession( nvSession );
+ CheckPassed(rval);
- CheckPassed( rval );
-
- TeardownSysContext( &simpleTestContext );
-
+ sapi_teardown(simpleTestContext);
}
static void TestEncryptDecryptSession()
@@ -2749,11 +2740,9 @@
LOG_INFO("GET/SET DECRYPT PARAM TESTS:" );
// Create two sysContext structures.
- decryptParamTestSysContext = InitSysContext( TPM2_MAX_NV_BUFFER_SIZE, resMgrTctiContext, &abiVersion );
- if( decryptParamTestSysContext == 0 )
- {
+ decryptParamTestSysContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (decryptParamTestSysContext == NULL)
InitSysContextFailure();
- }
// Test for bad sequence: Tss2_Sys_GetDecryptParam
rval = Tss2_Sys_GetDecryptParam( decryptParamTestSysContext, &decryptParamSize, &decryptParamBuffer );
@@ -2844,19 +2833,18 @@
}
// Test for insufficient size.
- rval = Tss2_Sys_GetCpBuffer( decryptParamTestSysContext, &cpBufferUsedSize2, &cpBuffer2 );
- CheckPassed( rval );
- nvWriteData.size = TPM2_MAX_NV_BUFFER_SIZE -
+ rval = Tss2_Sys_GetCpBuffer(decryptParamTestSysContext, &cpBufferUsedSize2, &cpBuffer2);
+ CheckPassed(rval);
+ nvWriteData.size = TPM2_MAX_COMMAND_SIZE -
BE_TO_HOST_32(((TPM20_Header_In *)(((_TSS2_SYS_CONTEXT_BLOB *)decryptParamTestSysContext)->cmdBuffer))->commandSize) + 1;
- rval = Tss2_Sys_SetDecryptParam( decryptParamTestSysContext, nvWriteData.size, &( nvWriteData.buffer[0] ) );
- CheckFailed( rval, TSS2_SYS_RC_INSUFFICIENT_CONTEXT );
+ rval = Tss2_Sys_SetDecryptParam(decryptParamTestSysContext, nvWriteData.size, nvWriteData.buffer);
+ CheckFailed(rval, TSS2_SYS_RC_INSUFFICIENT_CONTEXT);
// Test that one less will work. This tests that we're checking the correct corner case.
nvWriteData.size -= 1;
- rval = Tss2_Sys_SetDecryptParam( decryptParamTestSysContext, nvWriteData.size, &( nvWriteData.buffer[0] ) );
- CheckPassed( rval );
-
+ rval = Tss2_Sys_SetDecryptParam(decryptParamTestSysContext, nvWriteData.size, nvWriteData.buffer);
+ CheckPassed(rval);
rval = Tss2_Sys_NV_Write_Prepare( decryptParamTestSysContext, TPM20_INDEX_PASSWORD_TEST,
TPM20_INDEX_PASSWORD_TEST, 0, 0x55aa );
@@ -2896,7 +2884,7 @@
rval = Tss2_Sys_SetDecryptParam( decryptParamTestSysContext, 1, &( nvWriteData.buffer[0] ) );
CheckFailed( rval, TSS2_SYS_RC_BAD_SIZE );
- TeardownSysContext( &decryptParamTestSysContext );
+ sapi_teardown(decryptParamTestSysContext);
}
static void SysFinalizeTests()
@@ -2915,21 +2903,17 @@
LOG_INFO("SYS GETCONTEXTSIZE TESTS:" );
- testSysContext = InitSysContext( 9, resMgrTctiContext, &abiVersion );
- if( testSysContext == 0 )
- {
+ testSysContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (testSysContext == NULL)
InitSysContextFailure();
- }
- rval = Tss2_Sys_Startup( testSysContext, TPM2_SU_CLEAR );
- CheckFailed( rval, TSS2_MU_RC_INSUFFICIENT_BUFFER );
+ rval = Tss2_Sys_Startup(testSysContext, TPM2_SU_CLEAR);
+ CheckPassed(rval);
- rval = Tss2_Sys_GetTestResult_Prepare( testSysContext );
- CheckPassed( rval );
+ rval = Tss2_Sys_GetTestResult_Prepare(testSysContext);
+ CheckPassed(rval);
- // Note: other cases tested by other tests.
-
- TeardownSysContext( &testSysContext );
+ sapi_teardown(testSysContext);
}
static void GetTctiContextTests()
@@ -2940,19 +2924,17 @@
LOG_INFO("SYS GETTCTICONTEXT TESTS:" );
- testSysContext = InitSysContext( 9, resMgrTctiContext, &abiVersion );
- if( testSysContext == 0 )
- {
+ testSysContext = sapi_init_from_tcti_ctx(resMgrTctiContext);
+ if (testSysContext == NULL)
InitSysContextFailure();
- }
- rval = Tss2_Sys_GetTctiContext( testSysContext, 0 );
- CheckFailed( rval, TSS2_SYS_RC_BAD_REFERENCE );
+ rval = Tss2_Sys_GetTctiContext(testSysContext, 0);
+ CheckFailed(rval, TSS2_SYS_RC_BAD_REFERENCE);
- rval = Tss2_Sys_GetTctiContext( 0, &tctiContext );
- CheckFailed( rval, TSS2_SYS_RC_BAD_REFERENCE );
+ rval = Tss2_Sys_GetTctiContext(0, &tctiContext);
+ CheckFailed(rval, TSS2_SYS_RC_BAD_REFERENCE);
- TeardownSysContext( &testSysContext );
+ sapi_teardown(testSysContext);
}
static void GetSetEncryptParamTests()
@@ -3155,7 +3137,10 @@
loadedSha1KeyAuth.buffer[1] = 0xff;
rval = tcti_platform_command( resMgrTctiContext, MS_SIM_POWER_OFF );
- CheckPassed( rval );
+ CheckPassed(rval);
+
+ rval = tcti_platform_command( resMgrTctiContext, MS_SIM_POWER_ON );
+ CheckPassed(rval);
InitEntities();