• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 Huawei Technologies Co., Ltd.
3  * Licensed under the Mulan PSL v2.
4  * You can use this software according to the terms and conditions of the Mulan PSL v2.
5  * You may obtain a copy of Mulan PSL v2 at:
6  * http://license.coscl.org.cn/MulanPSL2
7  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
8  * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
9  * PURPOSE.
10  * See the Mulan PSL v2 for more details.
11  */
12 
13 #include <common_test.h>
14 #include <securec.h>
15 
SetUp()16 void CryptoTest::SetUp()
17 {
18     TEEC_Result ret;
19     TEEC_UUID testId = CRYPTO_API_UUID;
20     ret = session.Start(&testId);
21     ASSERT_EQ(ret, TEEC_SUCCESS);
22     operation.started = 1;
23     operation.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE, TEEC_NONE, TEEC_NONE, TEEC_NONE);
24     testMem.sharedMem.size = FUN_NAME_LEN;
25     testMem.sharedMem.flags = TEEC_MEM_OUTPUT | TEEC_MEM_INPUT;
26     ret = TEEC_AllocateSharedMemory(&session.context, &testMem.sharedMem);
27     (void)memset_s(reinterpret_cast<char*>(testMem.sharedMem.buffer), FUN_NAME_LEN, 0, FUN_NAME_LEN);
28     ASSERT_EQ(ret, TEEC_SUCCESS);
29 }
30 
TearDown()31 void CryptoTest::TearDown()
32 {
33     TEEC_ReleaseSharedMemory(&testMem.sharedMem);
34     session.Destroy();
35 }
36 
InvokeTest(const char * casename)37 TEEC_Result CryptoTest::InvokeTest(const char *casename)
38 {
39     int rc;
40     rc = strcpy_s(reinterpret_cast<char*>(testMem.sharedMem.buffer), FUN_NAME_LEN, casename);
41     if (rc != 0) {
42         return TEEC_FAIL;
43     }
44     operation.params[0].memref.parent = &testMem.sharedMem;
45     operation.params[0].memref.offset = 0;
46     operation.params[0].memref.size = testMem.sharedMem.size;
47     return TEEC_InvokeCommand(&session.session, CMD_RUN_BY_FUN_SEQ, &operation, &origin);
48 }
49