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 "libteecvendoropensession_fuzzer.h"
14
15 #include <cstddef>
16 #include <cstdint>
17 #include "tee_client_api.h"
18 #include "tee_client_constants.h"
19 #include "tee_client_type.h"
20 #include "tee_client_inner.h"
21 #include "tee_client_inner_api.h"
22
23 namespace OHOS {
LibteecVendorOpenSessionFuzzTest(const uint8_t * data,size_t size)24 bool LibteecVendorOpenSessionFuzzTest(const uint8_t *data, size_t size)
25 {
26 bool result = false;
27 if (size > sizeof(TEEC_Context) + sizeof(TEEC_Session) + sizeof(TEEC_UUID) + sizeof(uint32_t) +
28 sizeof(TEEC_Operation) + sizeof(uint32_t) + sizeof(TEEC_Parameter) + sizeof(TEEC_SharedMemory)) {
29 uint8_t *temp = const_cast<uint8_t *>(data);
30 TEEC_Context context = *reinterpret_cast<TEEC_Context *>(temp);
31 temp += sizeof(TEEC_Context);
32 TEEC_Session session = *reinterpret_cast<TEEC_Session *>(temp);
33 temp += sizeof(TEEC_Session);
34 TEEC_UUID uuid = *reinterpret_cast<TEEC_UUID *>(temp);
35 temp += sizeof(TEEC_UUID);
36 uint32_t connectionMethod = *reinterpret_cast<uint32_t *>(temp);
37 temp += sizeof(uint32_t);
38 TEEC_Operation operation = *reinterpret_cast<TEEC_Operation *>(temp);
39 temp += sizeof(TEEC_Operation);
40 uint32_t returnOrigin = *reinterpret_cast<uint32_t *>(temp);
41 temp += sizeof(uint32_t);
42
43 TEEC_Parameter param = *reinterpret_cast<TEEC_Parameter *>(temp);
44 temp += sizeof(TEEC_Parameter);
45 TEEC_SharedMemory memory = *reinterpret_cast<TEEC_SharedMemory *>(temp);
46 temp += sizeof(TEEC_SharedMemory);
47 memory.context = &context;
48 param.memref.parent = &memory;
49 operation.params[0] = param;
50 operation.params[1] = param;
51 operation.params[2] = param;
52 operation.params[3] = param;
53 operation.session = &session;
54
55 TEEC_Result ret = TEEC_OpenSession(&context, &session, &uuid, connectionMethod,
56 reinterpret_cast<const char *>(temp), &operation, &returnOrigin);
57 if (ret == TEEC_SUCCESS) {
58 TEEC_CloseSession(&session);
59 }
60 }
61 return result;
62 }
63
TEEC_OpenSessionTest_001(const uint8_t * data,size_t size)64 void TEEC_OpenSessionTest_001(const uint8_t *data, size_t size)
65 {
66 TEEC_Context context = { 0 };
67 TEEC_Session session = { 0 };
68 TEEC_UUID uuid = { 0x95b9ad1e, 0x0af8, 0x4201, { 0x98, 0x91, 0x0d, 0xbe, 0x86, 0x02, 0xf3, 0x5f } };
69
70 TEEC_Result ret = TEEC_OpenSession(NULL, NULL, NULL, TEEC_LOGIN_IDENTIFY, NULL, NULL, NULL);
71
72 ret = TEEC_OpenSession(&context, NULL, NULL, TEEC_LOGIN_IDENTIFY, NULL, NULL, NULL);
73
74 ret = TEEC_OpenSession(&context, &session, NULL, TEEC_LOGIN_IDENTIFY, NULL, NULL, NULL);
75
76 ret = TEEC_OpenSession(&context, &session, &uuid, TEEC_LOGIN_IDENTIFY, NULL, NULL, NULL);
77 if (ret == TEEC_SUCCESS) {
78 TEEC_CloseSession(&session);
79 }
80 (void)data;
81 (void)size;
82 }
83
TEEC_OpenSessionInnerTest_001(const uint8_t * data,size_t size)84 void TEEC_OpenSessionInnerTest_001(const uint8_t *data, size_t size)
85 {
86 int callingPid = 0;
87 TaFileInfo taFile;
88 taFile.taFp = NULL;
89 char path[] = "/vendor/bin/95b9ad1e-0af8-4201-9891-0dbe8602f35f.sec";
90 taFile.taPath = (uint8_t *)path;
91
92 TEEC_ContextInner contextInner = { 0 };
93 TEEC_Session session = { 0 };
94 TEEC_UUID destination = { 0x95b9ad1e, 0x0af8, 0x4201, { 0x98, 0x91, 0x0d, 0xbe, 0x86, 0x02, 0xf3, 0x5f } };
95 TEEC_Operation operation = { 0 };
96 uint32_t retOrigin = 0;
97
98 TEEC_Result ret = TEEC_OpenSessionInner(callingPid, &taFile, NULL, &session, &destination,
99 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
100
101 ret = TEEC_OpenSessionInner(callingPid, NULL, &contextInner, &session, &destination,
102 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
103
104 ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, NULL, &destination,
105 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
106
107 ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, NULL,
108 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
109
110 ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
111 ~TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
112
113 ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
114 TEEC_LOGIN_IDENTIFY, (void *)&callingPid, &operation, &retOrigin);
115
116 operation.started = 0;
117 ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
118 TEEC_LOGIN_IDENTIFY, NULL, NULL, &retOrigin);
119
120 operation.started = 0;
121 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_NONE, TEEC_NONE, TEEC_NONE, TEEC_NONE);
122 ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
123 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
124 if (ret == TEEC_SUCCESS) {
125 TEEC_CloseSession(&session);
126 }
127 (void)data;
128 (void)size;
129 }
130
TEEC_OpenSessionInnerTest_002(const uint8_t * data,size_t size)131 void TEEC_OpenSessionInnerTest_002(const uint8_t *data, size_t size)
132 {
133 int callingPid = 0;
134 uint32_t retOrigin = 0;
135 TaFileInfo taFile;
136 taFile.taFp = NULL;
137 char path[] = "/vendor/bin/95b9ad1e-0af8-4201-9891-0dbe8602f35f";
138 taFile.taPath = (uint8_t *)path;
139
140 TEEC_ContextInner contextInner = { 0 };
141 TEEC_Session session = { 0 };
142 TEEC_UUID destination = { 0x95b9ad1e, 0x0af8, 0x4201, { 0x98, 0x91, 0x0d, 0xbe, 0x86, 0x02, 0xf3, 0x5f } };
143
144 TEEC_Result ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
145 TEEC_LOGIN_IDENTIFY, NULL, NULL, &retOrigin);
146 if (ret == TEEC_SUCCESS) {
147 TEEC_CloseSession(&session);
148 }
149 (void)data;
150 (void)size;
151 }
152
TEEC_EncodeParamTest_001(const uint8_t * data,size_t size)153 void TEEC_EncodeParamTest_001(const uint8_t *data, size_t size)
154 {
155 int callingPid = 0;
156 uint32_t retOrigin = 0;
157 TaFileInfo taFile;
158 taFile.taFp = NULL;
159 char path[] = "/vendor/bin/95b9ad1e-0af8-4201-9891-0dbe8602f35f.sec";
160 taFile.taPath = (uint8_t *)path;
161
162 TEEC_ContextInner contextInner = { 0 };
163 TEEC_Session session = { 0 };
164 TEEC_UUID destination = { 0x95b9ad1e, 0x0af8, 0x4201, { 0x98, 0x91, 0x0d, 0xbe, 0x86, 0x02, 0xf3, 0x5f } };
165 TEEC_Operation operation = { 0 };
166 operation.started = 1;
167 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT, TEEC_NONE, TEEC_NONE, TEEC_NONE);
168 char buf[4] = { 0 };
169 operation.params[0].tmpref.buffer = (void *)buf;
170 operation.params[0].tmpref.size = 4; // 4 size of memory
171 TEEC_Result ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
172 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
173 if (ret == TEEC_SUCCESS) {
174 TEEC_CloseSession(&session);
175 }
176 (void)data;
177 (void)size;
178 }
179
TEEC_EncodePartialParamTest_001(const uint8_t * data,size_t size)180 void TEEC_EncodePartialParamTest_001(const uint8_t *data, size_t size)
181 {
182 int callingPid = 0;
183 uint32_t retOrigin = 0;
184 TaFileInfo taFile;
185 taFile.taFp = NULL;
186 char path[] = "/vendor/bin/95b9ad1e-0af8-4201-9891-0dbe8602f35f.sec";
187 taFile.taPath = (uint8_t *)path;
188
189 char buf[4] = { 0 };
190 TEEC_ContextInner contextInner = { 0 };
191 TEEC_Session session = { 0 };
192 TEEC_UUID destination = { 0x95b9ad1e, 0x0af8, 0x4201, { 0x98, 0x91, 0x0d, 0xbe, 0x86, 0x02, 0xf3, 0x5f } };
193 TEEC_Operation operation = { 0 };
194 operation.started = 1;
195 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT, TEEC_MEMREF_SHARED_INOUT,
196 TEEC_NONE, TEEC_NONE);
197 TEEC_SharedMemory sharedMem0 = { 0 }, sharedMem1 = { 0 };
198 operation.params[0].memref.parent = &sharedMem0;
199 operation.params[0].memref.parent->is_allocated = 0;
200 operation.params[0].memref.parent->buffer = (void *)buf;
201 operation.params[0].memref.parent->size = 4; // 4 size of memory
202 operation.params[0].memref.size = 4; // 4 size of memory
203 operation.params[0].memref.offset = 0;
204 operation.params[1].memref.parent = &sharedMem1;
205 operation.params[1].memref.parent->is_allocated = 1;
206 operation.params[1].memref.parent->buffer = (void *)buf;
207 operation.params[1].memref.parent->size = 4; // 4 size of memory
208 operation.params[1].memref.size = 4; // 4 size of memory
209 operation.params[1].memref.offset = 0;
210
211 TEEC_Result ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
212 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
213 if (ret == TEEC_SUCCESS) {
214 TEEC_CloseSession(&session);
215 }
216 (void)data;
217 (void)size;
218 }
219
TranslateParamTypeTest_001(const uint8_t * data,size_t size)220 void TranslateParamTypeTest_001(const uint8_t *data, size_t size)
221 {
222 int callingPid = 0;
223 uint32_t retOrigin = 0;
224 TaFileInfo taFile;
225 taFile.taFp = NULL;
226 char path[] = "/vendor/bin/95b9ad1e-0af8-4201-9891-0dbe8602f35f.sec";
227 taFile.taPath = (uint8_t *)path;
228
229 char buf[4] = { 0 };
230 TEEC_ContextInner contextInner = { 0 };
231 TEEC_Session session = { 0 };
232 TEEC_UUID destination = { 0x95b9ad1e, 0x0af8, 0x4201, { 0x98, 0x91, 0x0d, 0xbe, 0x86, 0x02, 0xf3, 0x5f } };
233 TEEC_Operation operation = { 0 };
234 operation.started = 1;
235 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE, TEEC_MEMREF_WHOLE, TEEC_NONE, TEEC_NONE);
236 TEEC_SharedMemory sharedMem = { 0 };
237 operation.params[0].memref.parent = &sharedMem;
238 operation.params[0].memref.parent->is_allocated = 0;
239 operation.params[0].memref.parent->flags = TEEC_MEM_INPUT;
240 operation.params[0].memref.parent->buffer = (void *)buf;
241 operation.params[0].memref.parent->size = 4; // 4 size of memory
242 operation.params[0].memref.size = 4; // 4 size of memory
243 operation.params[0].memref.offset = 0;
244 operation.params[1].memref.parent = &sharedMem;
245 operation.params[1].memref.parent->is_allocated = 0;
246 operation.params[1].memref.parent->flags = TEEC_MEM_OUTPUT;
247 operation.params[1].memref.parent->buffer = (void *)buf;
248 operation.params[1].memref.parent->size = 4; // 4 size of memory
249 operation.params[1].memref.size = 4; // 4 size of memory
250 operation.params[1].memref.offset = 0;
251
252 TEEC_Result ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
253 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
254
255 operation.params[0].memref.parent->flags = TEEC_MEM_INOUT;
256 operation.params[1].memref.parent->flags = 0xffffffff;
257 ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
258 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
259 if (ret == TEEC_SUCCESS) {
260 TEEC_CloseSession(&session);
261 }
262 (void)data;
263 (void)size;
264 }
265
TEEC_EncodeIonParam_001(const uint8_t * data,size_t size)266 void TEEC_EncodeIonParam_001(const uint8_t *data, size_t size)
267 {
268 int callingPid = 0;
269 uint32_t retOrigin = 0;
270 TaFileInfo taFile;
271 taFile.taFp = NULL;
272 char path[] = "/vendor/bin/95b9ad1e-0af8-4201-9891-0dbe8602f35f.sec";
273 taFile.taPath = (uint8_t *)path;
274
275 TEEC_ContextInner contextInner = { 0 };
276 TEEC_Session session = { 0 };
277 TEEC_UUID destination = { 0x95b9ad1e, 0x0af8, 0x4201, { 0x98, 0x91, 0x0d, 0xbe, 0x86, 0x02, 0xf3, 0x5f } };
278 TEEC_Operation operation = { 0 };
279 operation.started = 1;
280 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_ION_INPUT, TEEC_ION_SGLIST_INPUT, TEEC_NONE, TEEC_NONE);
281 operation.params[0].ionref.ion_share_fd = 0;
282 operation.params[0].ionref.ion_size = 1;
283 operation.params[1].ionref.ion_share_fd = 0;
284 operation.params[1].ionref.ion_size = 1;
285
286 TEEC_Result ret = TEEC_OpenSessionInner(callingPid, &taFile, &contextInner, &session, &destination,
287 TEEC_LOGIN_IDENTIFY, NULL, &operation, &retOrigin);
288 if (ret == TEEC_SUCCESS) {
289 TEEC_CloseSession(&session);
290 }
291 (void)data;
292 (void)size;
293 }
294
TEEC_CheckTmpRefTest_001(const uint8_t * data,size_t size)295 void TEEC_CheckTmpRefTest_001(const uint8_t *data, size_t size)
296 {
297 TEEC_ContextInner context = { 0 };
298 TEEC_Operation operation = { 0 };
299 operation.started = 1;
300
301 operation.paramTypes = TEEC_MEMREF_TEMP_INPUT;
302 operation.params[0].tmpref.buffer = NULL;
303 operation.params[0].tmpref.size = 1;
304 TEEC_Result ret = TEEC_CheckOperation(&context, &operation);
305
306 operation.paramTypes = TEEC_MEMREF_TEMP_INPUT;
307 operation.params[0].tmpref.buffer = (void *)1;
308 operation.params[0].tmpref.size = 0;
309 ret = TEEC_CheckOperation(&context, &operation);
310 (void)ret;
311 (void)data;
312 (void)size;
313 }
314
TEEC_CheckMemRefTest_001(const uint8_t * data,size_t size)315 void TEEC_CheckMemRefTest_001(const uint8_t *data, size_t size)
316 {
317 TEEC_ContextInner context = { 0 };
318 TEEC_Operation operation = { 0 };
319 operation.started = 1;
320 operation.paramTypes = TEEC_MEMREF_PARTIAL_INPUT;
321
322 operation.params[0].memref.parent = NULL;
323 TEEC_Result ret = TEEC_CheckOperation(&context, &operation);
324
325 TEEC_SharedMemory sharedMem = { 0 };
326 operation.params[0].memref.parent = &sharedMem;
327 operation.params[0].memref.parent->buffer = NULL;
328 ret = TEEC_CheckOperation(&context, &operation);
329
330 char buf[4] = { 0 };
331 operation.params[0].memref.parent->buffer = (void *)buf;
332 operation.params[0].memref.parent->size = 0;
333 ret = TEEC_CheckOperation(&context, &operation);
334
335 operation.params[0].memref.parent->size = 4; // 4 size of memory
336 operation.params[0].memref.parent->flags = 0;
337 ret = TEEC_CheckOperation(&context, &operation);
338
339 operation.paramTypes = TEEC_MEMREF_PARTIAL_OUTPUT;
340 operation.params[0].memref.parent->flags = 0;
341 ret = TEEC_CheckOperation(&context, &operation);
342
343 operation.paramTypes = TEEC_MEMREF_PARTIAL_INOUT;
344 operation.params[0].memref.parent->flags = 0;
345 ret = TEEC_CheckOperation(&context, &operation);
346
347 operation.paramTypes = TEEC_MEMREF_PARTIAL_INOUT;
348 operation.params[0].memref.parent->flags = TEEC_MEM_INPUT;
349 ret = TEEC_CheckOperation(&context, &operation);
350
351 operation.paramTypes = TEEC_MEMREF_WHOLE;
352 operation.params[0].memref.parent->flags = TEEC_MEM_INOUT;
353 operation.params[0].memref.parent->is_allocated = 0;
354 ret = TEEC_CheckOperation(&context, &operation);
355 (void)data;
356 (void)size;
357 (void)ret;
358 }
359
TEEC_CheckMemRefTest_002(const uint8_t * data,size_t size)360 void TEEC_CheckMemRefTest_002(const uint8_t *data, size_t size)
361 {
362 TEEC_ContextInner context = { 0 };
363 TEEC_Operation operation = { 0 };
364 operation.started = 1;
365
366 TEEC_SharedMemory sharedMem = { 0 };
367 operation.params[0].memref.parent = &sharedMem;
368
369 char buf[4] = { 0 };
370 operation.params[0].memref.parent->buffer = (void *)buf;
371 operation.params[0].memref.parent->size = 4; // 4 size of memory
372 operation.params[0].memref.offset = 1;
373 operation.params[0].memref.size = 4; // 4 size of memory
374
375 operation.paramTypes = TEEC_MEMREF_PARTIAL_INPUT;
376 operation.params[0].memref.parent->flags = TEEC_MEM_INPUT;
377 TEEC_Result ret = TEEC_CheckOperation(&context, &operation);
378
379 operation.paramTypes = TEEC_MEMREF_PARTIAL_OUTPUT;
380 operation.params[0].memref.parent->flags = TEEC_MEM_OUTPUT;
381 ret = TEEC_CheckOperation(&context, &operation);
382
383 operation.paramTypes = TEEC_MEMREF_PARTIAL_INOUT;
384 operation.params[0].memref.parent->flags = TEEC_MEM_INOUT;
385 ret = TEEC_CheckOperation(&context, &operation);
386 (void)data;
387 (void)size;
388 (void)ret;
389 }
390
CheckSharedBufferExistTest_002(const uint8_t * data,size_t size)391 void CheckSharedBufferExistTest_002(const uint8_t *data, size_t size)
392 {
393 TEEC_Operation operation = { 0 };
394 operation.started = 1;
395
396 TEEC_SharedMemory sharedMem = { 0 };
397 operation.params[0].memref.parent = &sharedMem;
398
399 char buf[4] = { 0 };
400 operation.params[0].memref.parent->buffer = (void *)buf;
401 operation.params[0].memref.parent->size = 4; // 4 size of memory
402 operation.params[0].memref.offset = 0;
403
404 operation.paramTypes = TEEC_MEMREF_WHOLE;
405 operation.params[0].memref.parent->is_allocated = 1;
406
407 TEEC_Result ret = TEEC_CheckOperation(NULL, &operation);
408 (void)data;
409 (void)size;
410 (void)ret;
411 }
412
TEEC_CheckOperationTest_001(const uint8_t * data,size_t size)413 void TEEC_CheckOperationTest_001(const uint8_t *data, size_t size)
414 {
415 TEEC_ContextInner context = { 0 };
416 TEEC_Operation operation = { 0 };
417 TEEC_Result ret = TEEC_CheckOperation(&context, NULL);
418
419 operation.started = 0;
420 ret = TEEC_CheckOperation(&context, &operation);
421
422 operation.started = 1;
423 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_ION_INPUT, TEEC_ION_INPUT, TEEC_ION_INPUT, TEEC_ION_INPUT);
424 operation.params[0].ionref.ion_share_fd = -1;
425 ret = TEEC_CheckOperation(&context, &operation);
426
427 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_ION_SGLIST_INPUT, TEEC_ION_INPUT, TEEC_ION_INPUT, TEEC_ION_INPUT);
428 operation.params[0].ionref.ion_share_fd = -1;
429 ret = TEEC_CheckOperation(&context, &operation);
430
431 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_ION_INPUT, TEEC_ION_INPUT, TEEC_ION_INPUT, TEEC_ION_INPUT);
432 operation.params[0].ionref.ion_share_fd = 0;
433 operation.params[0].ionref.ion_size = 0;
434 ret = TEEC_CheckOperation(&context, &operation);
435
436 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_ION_SGLIST_INPUT, TEEC_ION_INPUT, TEEC_ION_INPUT, TEEC_ION_INPUT);
437 operation.params[0].ionref.ion_share_fd = 0;
438 operation.params[0].ionref.ion_size = 0;
439 ret = TEEC_CheckOperation(&context, &operation);
440
441 operation.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_NONE, TEEC_MEMREF_SHARED_INOUT, TEEC_NONE);
442 ret = TEEC_CheckOperation(&context, &operation);
443 (void)data;
444 (void)size;
445 (void)ret;
446 }
447 }
448
449 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)450 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
451 {
452 /* Run your code on data */
453 OHOS::LibteecVendorOpenSessionFuzzTest(data, size);
454 OHOS::TEEC_OpenSessionTest_001(data, size);
455 OHOS::TEEC_OpenSessionInnerTest_001(data, size);
456 OHOS::TEEC_OpenSessionInnerTest_002(data, size);
457 OHOS::TEEC_EncodeParamTest_001(data, size);
458 OHOS::TEEC_EncodePartialParamTest_001(data, size);
459 OHOS::TranslateParamTypeTest_001(data, size);
460 OHOS::TEEC_EncodeIonParam_001(data, size);
461 OHOS::TEEC_CheckTmpRefTest_001(data, size);
462 OHOS::TEEC_CheckMemRefTest_001(data, size);
463 OHOS::TEEC_CheckMemRefTest_002(data, size);
464 OHOS::CheckSharedBufferExistTest_002(data, size);
465 OHOS::TEEC_CheckOperationTest_001(data, size);
466 return 0;
467 }