aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Auger <cauger@provenrun.com>2019-09-11 13:41:21 +0200
committerJérôme Forissier <jerome@forissier.org>2019-09-12 16:46:22 +0200
commite668b3fe7e108ba2ef44b6b69120470e72a165cb (patch)
tree317ac8628ce88b5a1145f8a6b1733103e230b9e6
parent110aac4733d1a7a1cf423bf2f73a42830141d7a3 (diff)
downloadoptee_test-e668b3fe7e108ba2ef44b6b69120470e72a165cb.tar.gz
ta: remove 0ms timeouts in the tested TAs
According to GP specification, a 0ms timeout is likely to trigger a TEE_ERROR_CANCEL error rather than the expected TEE_SUCCESS. TEE_ERROR_CANCEL is returned when the operation has been queued by the TEE but did not yet reached the TA. Signed-off-by: Cedric Auger <cedric.auger@provenrun.com> Reviewed-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
-rw-r--r--ta/crypt/derive_key_taf.c14
-rw-r--r--ta/crypt/seed_rng_taf.c6
-rw-r--r--ta/os_test/os_test.c24
-rw-r--r--ta/rpc_test/ta_rpc.c14
-rw-r--r--ta/sdp_basic/ta_sdp_basic.c12
-rw-r--r--ta/sims/ta_sims.c5
6 files changed, 47 insertions, 28 deletions
diff --git a/ta/crypt/derive_key_taf.c b/ta/crypt/derive_key_taf.c
index b1c90d2..04bb34a 100644
--- a/ta/crypt/derive_key_taf.c
+++ b/ta/crypt/derive_key_taf.c
@@ -37,7 +37,8 @@ static TEE_Result derive_unique_key(TEE_TASessionHandle session,
params[1].memref.buffer = key;
params[1].memref.size = key_size;
- res = TEE_InvokeTACommand(session, 0, PTA_SYSTEM_DERIVE_TA_UNIQUE_KEY,
+ res = TEE_InvokeTACommand(session, TEE_TIMEOUT_INFINITE,
+ PTA_SYSTEM_DERIVE_TA_UNIQUE_KEY,
param_types, params, &ret_origin);
if (res != TEE_SUCCESS)
EMSG("Failure when calling PTA_SYSTEM_DERIVE_TA_UNIQUE_KEY");
@@ -64,8 +65,8 @@ TEE_Result derive_ta_unique_key_test(uint32_t param_types,
TEE_PARAM_TYPE_NONE))
return TEE_ERROR_BAD_PARAMETERS;
- res = TEE_OpenTASession(&system_uuid, 0, 0, NULL, &session,
- &ret_origin);
+ res = TEE_OpenTASession(&system_uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &session, &ret_origin);
if (res != TEE_SUCCESS)
return res;
@@ -198,8 +199,8 @@ TEE_Result derive_ta_unique_key_test_shm(uint32_t param_types,
TEE_PARAM_TYPE_NONE))
return TEE_ERROR_BAD_PARAMETERS;
- res = TEE_OpenTASession(&system_uuid, 0, 0, NULL, &session,
- &ret_origin);
+ res = TEE_OpenTASession(&system_uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &session, &ret_origin);
if (res != TEE_SUCCESS)
return res;
@@ -209,7 +210,8 @@ TEE_Result derive_ta_unique_key_test_shm(uint32_t param_types,
* unsuccessful since we are using an out buffer coming from normal
* world.
*/
- res = TEE_InvokeTACommand(session, 0, PTA_SYSTEM_DERIVE_TA_UNIQUE_KEY,
+ res = TEE_InvokeTACommand(session, TEE_TIMEOUT_INFINITE,
+ PTA_SYSTEM_DERIVE_TA_UNIQUE_KEY,
param_types, params, &ret_origin);
TEE_CloseTASession(session);
diff --git a/ta/crypt/seed_rng_taf.c b/ta/crypt/seed_rng_taf.c
index f09adc8..2f05421 100644
--- a/ta/crypt/seed_rng_taf.c
+++ b/ta/crypt/seed_rng_taf.c
@@ -25,13 +25,15 @@ TEE_Result seed_rng_pool(uint32_t param_types, TEE_Param params[4])
if (!params[0].memref.size)
return TEE_ERROR_BAD_PARAMETERS;
- res = TEE_OpenTASession(&system_uuid, 0, 0, NULL, &sess, &ret_orig);
+ res = TEE_OpenTASession(&system_uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &sess, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("TEE_OpenTASession failed");
goto cleanup_return;
}
- res = TEE_InvokeTACommand(sess, 0, PTA_SYSTEM_ADD_RNG_ENTROPY,
+ res = TEE_InvokeTACommand(sess, TEE_TIMEOUT_INFINITE,
+ PTA_SYSTEM_ADD_RNG_ENTROPY,
param_types, params, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("TEE_InvokeTACommand failed");
diff --git a/ta/os_test/os_test.c b/ta/os_test/os_test.c
index 84c850b..52d7b49 100644
--- a/ta/os_test/os_test.c
+++ b/ta/os_test/os_test.c
@@ -465,7 +465,8 @@ static TEE_Result test_mem_access_right(uint32_t param_types,
if (res == TEE_SUCCESS)
return TEE_ERROR_GENERIC;
- res = TEE_OpenTASession(&test_uuid, 0, 0, NULL, &sess, &ret_orig);
+ res = TEE_OpenTASession(&test_uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &sess, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("test_mem_access_right: TEE_OpenTASession failed\n");
goto cleanup_return;
@@ -477,7 +478,8 @@ static TEE_Result test_mem_access_right(uint32_t param_types,
l_params[0].memref.size = sizeof(buf);
l_params[1].memref.buffer = NULL;
l_params[1].memref.size = 0;
- res = TEE_InvokeTACommand(sess, 0, TA_OS_TEST_CMD_PARAMS_ACCESS,
+ res = TEE_InvokeTACommand(sess, TEE_TIMEOUT_INFINITE,
+ TA_OS_TEST_CMD_PARAMS_ACCESS,
l_pts, l_params, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("test_mem_access_right: TEE_InvokeTACommand failed\n");
@@ -751,7 +753,8 @@ TEE_Result ta_entry_client_with_timeout(uint32_t param_types,
return TEE_ERROR_BAD_PARAMETERS;
}
- res = TEE_OpenTASession(&os_test_uuid, 0, 0, NULL, &sess, &ret_orig);
+ res = TEE_OpenTASession(&os_test_uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &sess, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG(
"ta_entry_client_with_timeout: TEE_OpenTASession failed\n");
@@ -804,7 +807,8 @@ TEE_Result ta_entry_client(uint32_t param_types, TEE_Param params[4])
return TEE_ERROR_OUT_OF_MEMORY;
TEE_MemMove(in, sha256_in, sizeof(sha256_in));
- res = TEE_OpenTASession(&crypt_uuid, 0, 0, NULL, &sess, &ret_orig);
+ res = TEE_OpenTASession(&crypt_uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &sess, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("ta_entry_client: TEE_OpenTASession failed\n");
goto cleanup_return;
@@ -817,7 +821,8 @@ TEE_Result ta_entry_client(uint32_t param_types, TEE_Param params[4])
l_params[1].memref.buffer = out;
l_params[1].memref.size = sizeof(out);
- res = TEE_InvokeTACommand(sess, 0, TA_CRYPT_CMD_SHA256, l_pts, l_params,
+ res = TEE_InvokeTACommand(sess, TEE_TIMEOUT_INFINITE,
+ TA_CRYPT_CMD_SHA256, l_pts, l_params,
&ret_orig);
if (res != TEE_SUCCESS) {
EMSG("ta_entry_client: TEE_InvokeTACommand failed\n");
@@ -947,7 +952,8 @@ TEE_Result ta_entry_ta2ta_memref(uint32_t param_types, TEE_Param params[4])
if (param_types != TEE_PARAM_TYPES(0, 0, 0, 0))
return TEE_ERROR_GENERIC;
- res = TEE_OpenTASession(&test_uuid, 0, 0, NULL, &sess, &ret_orig);
+ res = TEE_OpenTASession(&test_uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &sess, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("TEE_OpenTASession failed");
goto cleanup_return;
@@ -974,7 +980,8 @@ TEE_Result ta_entry_ta2ta_memref(uint32_t param_types, TEE_Param params[4])
* TA will compute: out = ++inout + in
* Expected values after this step: in: 5, inout: 11, out: 16
*/
- res = TEE_InvokeTACommand(sess, 0, TA_OS_TEST_CMD_TA2TA_MEMREF_MIX,
+ res = TEE_InvokeTACommand(sess, TEE_TIMEOUT_INFINITE,
+ TA_OS_TEST_CMD_TA2TA_MEMREF_MIX,
l_pts, l_params, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("TEE_InvokeTACommand failed");
@@ -991,7 +998,8 @@ TEE_Result ta_entry_ta2ta_memref(uint32_t param_types, TEE_Param params[4])
* TA will compute: out = ++inout + in
* Expected values after this step: in: 6, inout: 13, out: 19
*/
- res = TEE_InvokeTACommand(sess, 0, TA_OS_TEST_CMD_TA2TA_MEMREF_MIX,
+ res = TEE_InvokeTACommand(sess, TEE_TIMEOUT_INFINITE,
+ TA_OS_TEST_CMD_TA2TA_MEMREF_MIX,
l_pts, l_params, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("TEE_InvokeTACommand failed");
diff --git a/ta/rpc_test/ta_rpc.c b/ta/rpc_test/ta_rpc.c
index 29ec724..8a1caeb 100644
--- a/ta/rpc_test/ta_rpc.c
+++ b/ta/rpc_test/ta_rpc.c
@@ -46,8 +46,8 @@ static TEE_Result rpc_call_cryp(bool sec_mem, uint32_t nParamTypes,
TEE_PARAM_TYPES(TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE,
TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE);
- res = TEE_OpenTASession(&cryp_uuid, 0, types, params, &cryp_session,
- &origin);
+ res = TEE_OpenTASession(&cryp_uuid, TEE_TIMEOUT_INFINITE, types,
+ params, &cryp_session, &origin);
if (res != TEE_SUCCESS) {
EMSG("rpc_sha256 - TEE_OpenTASession returned 0x%x\n",
@@ -87,7 +87,8 @@ static TEE_Result rpc_call_cryp(bool sec_mem, uint32_t nParamTypes,
TEE_MemMove(params, pParams, sizeof(params));
}
- res = TEE_InvokeTACommand(cryp_session, 0, cmd, types, params, &origin);
+ res = TEE_InvokeTACommand(cryp_session, TEE_TIMEOUT_INFINITE, cmd,
+ types, params, &origin);
if (res != TEE_SUCCESS) {
EMSG("rpc_call_cryp - TEE_InvokeTACommand returned 0x%x\n",
(unsigned int)res);
@@ -165,15 +166,16 @@ TEE_Result rpc_open(void *session_context, uint32_t param_types,
(void)session_context;
(void)param_types;
- res = TEE_OpenTASession(&uuid, 0, 0, NULL, &session, &orig);
+ res = TEE_OpenTASession(&uuid, TEE_TIMEOUT_INFINITE, 0, NULL, &session,
+ &orig);
if (res != TEE_SUCCESS)
return res;
TEE_MemFill(params, 0, sizeof(TEE_Param) * 4);
res =
- TEE_InvokeTACommand(session, 0, TA_SIMS_CMD_GET_COUNTER, types, par,
- &orig);
+ TEE_InvokeTACommand(session, TEE_TIMEOUT_INFINITE,
+ TA_SIMS_CMD_GET_COUNTER, types, par, &orig);
if (res != TEE_SUCCESS)
goto exit;
diff --git a/ta/sdp_basic/ta_sdp_basic.c b/ta/sdp_basic/ta_sdp_basic.c
index aa2e65c..1decef5 100644
--- a/ta/sdp_basic/ta_sdp_basic.c
+++ b/ta/sdp_basic/ta_sdp_basic.c
@@ -274,7 +274,8 @@ static TEE_Result cmd_invoke(uint32_t nParamTypes,
TEE_Result res = TEE_ERROR_GENERIC;
if (sess == TEE_HANDLE_NULL) {
- res = TEE_OpenTASession(&uuid, 0, 0, NULL, &sess, &ret_orig);
+ res = TEE_OpenTASession(&uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &sess, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("SDP basic test TA: TEE_OpenTASession() FAILED \n");
goto cleanup_return;
@@ -282,7 +283,8 @@ static TEE_Result cmd_invoke(uint32_t nParamTypes,
}
- res = TEE_InvokeTACommand(sess, 0, nCommandID, nParamTypes, pParams, &ret_orig);
+ res = TEE_InvokeTACommand(sess, TEE_TIMEOUT_INFINITE,
+ nCommandID, nParamTypes, pParams, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("SDP basic test TA: TEE_OpenTASession() FAILED %x/%d\n",
res, ret_orig);
@@ -306,7 +308,8 @@ static TEE_Result cmd_invoke_pta(uint32_t nParamTypes,
TEE_Result res = TEE_ERROR_GENERIC;
if (sess == TEE_HANDLE_NULL) {
- res = TEE_OpenTASession(&uuid, 0, 0, NULL, &sess, &ret_orig);
+ res = TEE_OpenTASession(&uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &sess, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("SDP basic test TA: TEE_OpenTASession() FAILED \n");
goto cleanup_return;
@@ -314,7 +317,8 @@ static TEE_Result cmd_invoke_pta(uint32_t nParamTypes,
}
- res = TEE_InvokeTACommand(sess, 0, nCommandID, nParamTypes, pParams, &ret_orig);
+ res = TEE_InvokeTACommand(sess, TEE_TIMEOUT_INFINITE,
+ nCommandID, nParamTypes, pParams, &ret_orig);
if (res != TEE_SUCCESS) {
EMSG("SDP basic test TA: TEE_OpenTASession() FAILED %x/%d\n",
res, ret_orig);
diff --git a/ta/sims/ta_sims.c b/ta/sims/ta_sims.c
index 65c5ef4..47297c0 100644
--- a/ta/sims/ta_sims.c
+++ b/ta/sims/ta_sims.c
@@ -69,7 +69,8 @@ TEE_Result sims_open_ta_session(void *session_context, uint32_t param_types,
TEE_MemMove(uuid, params[0].memref.buffer, params[0].memref.size);
- res = TEE_OpenTASession(uuid, 0, 0, NULL, &sess, &ret_orig);
+ res = TEE_OpenTASession(uuid, TEE_TIMEOUT_INFINITE, 0, NULL,
+ &sess, &ret_orig);
TEE_Free(uuid);
if (res != TEE_SUCCESS)
return res;
@@ -202,7 +203,7 @@ TEE_Result sims_entry_panic(void *session_context, uint32_t param_types,
params[0].memref.size = 0;
/* Trigger panic to remote TA */
- (void)TEE_InvokeTACommand(ctx->sess, 0,
+ (void)TEE_InvokeTACommand(ctx->sess, TEE_TIMEOUT_INFINITE,
TA_SIMS_CMD_PANIC,
param_types, params,
&ret_orig);