blob: 8d845aee259dbea57e7deedbdd4c3ebe18aebb37 [file] [log] [blame]
b.liu68a94c92025-05-24 12:53:41 +08001#include <stdio.h>
2#include <string.h>
3#include <stdlib.h>
4#include <dlfcn.h>
5#include <unistd.h>
6#include <stdint.h>
7
8#define TEST_OBJECT_SIZE 7000
9
10void *dlHandle_tee;
11char *lynqLib_tee = "/lib/libgsw_lib.so";
12
13
14int32_t (*gsw_tee_sdk_init)(void);
15int32_t (*gsw_tee_write_secure_data)(const char* in_obj_name, char* in_buf, unsigned int in_buf_len);
16int32_t (*gsw_tee_read_secure_data)(const char* in_obj_name, char* out_buf, unsigned int* p_out_buf_len);
17int32_t (*gsw_tee_delete_secure_data)(const char* in_obj_name);
18int32_t (*gsw_tee_check_secure_data)(const char* in_obj_name);
19int32_t (*gsw_tee_sdk_deinit)(void);
20
21int tee_init(void)
22{
23 dlHandle_tee = dlopen(lynqLib_tee, RTLD_NOW);
24
25 if(dlHandle_tee == NULL)
26 {
27 printf("dlHandle_tee is NULL\n");
28 return -1;
29 }
30 printf("dlHandle_tee is success\n");
31
32 gsw_tee_sdk_init=(int32_t(*)())dlsym(dlHandle_tee, "gsw_tee_sdk_init");
33 if(gsw_tee_sdk_init == NULL)
34 {
35 printf("gsw_tee_sdk_init is NULL\n");
36 return -1;
37 }
38 printf("gsw_tee_sdk_init is success\n");
39
40 gsw_tee_write_secure_data=(int32_t(*)(const char* in_obj_name, char* in_buf, unsigned int in_buf_len))dlsym(dlHandle_tee, "gsw_tee_write_secure_data");
41 if(gsw_tee_write_secure_data == NULL)
42 {
43 printf("gsw_tee_write_secure_data is NULL\n");
44 return -1;
45 }
46
47
48 gsw_tee_read_secure_data=(int32_t(*)(const char* in_obj_name, char* in_buf, unsigned int* p_out_buf_len))dlsym(dlHandle_tee, "gsw_tee_read_secure_data");
49 if(gsw_tee_read_secure_data == NULL)
50 {
51 printf("gsw_tee_read_secure_data is NULL\n");
52 return -1;
53 }
54
55 gsw_tee_delete_secure_data=(int32_t(*)(const char* in_obj_name))dlsym(dlHandle_tee, "gsw_tee_delete_secure_data");
56 if(gsw_tee_delete_secure_data == NULL)
57 {
58 printf("gsw_tee_delete_secure_data is NULL\n");
59 return -1;
60 }
61
62 gsw_tee_check_secure_data=(int32_t(*)(const char* in_obj_name))dlsym(dlHandle_tee, "gsw_tee_check_secure_data");
63 if(gsw_tee_check_secure_data == NULL)
64 {
65 printf("gsw_tee_check_secure_data is NULL\n");
66 return -1;
67 }
68
69 gsw_tee_sdk_deinit=(int32_t(*)())dlsym(dlHandle_tee, "gsw_tee_sdk_deinit");
70 if(gsw_tee_sdk_deinit == NULL)
71 {
72 printf("gsw_tee_sdk_deinit is NULL\n");
73 return -1;
74 }
75
76 return 0;
77}
78
79
80
81int main(void)
82{
83 int ret;
84 unsigned int len;
85 char obj1_id[] = "object#1";
86 char obj1_data[] = "123456789";
87 char read_data[TEST_OBJECT_SIZE];
88
89 printf("gsw_optee_test start\n");
90 ret = tee_init();
91 if(ret != 0)
92 {
93 printf("tee_init fail\n");
94 }
95
96 ret = gsw_tee_sdk_init();
97 if(ret != 0)
98 {
99 printf("gsw_tee_sdk_init fail\n");
100 return ret;
101 }
102 ret = gsw_tee_write_secure_data(obj1_id, obj1_data, sizeof(obj1_data));
103 if(ret != 0)
104 {
105 printf("gsw_tee_write_secure_data fail\n");
106 return ret;
107 }
108
109 ret = gsw_tee_read_secure_data(obj1_id, read_data, &len);
110 if(ret != 0)
111 {
112 printf("gsw_tee_read_secure_data fail\n");
113 return ret;
114 }
115 printf("read_data: %s\n", read_data);
116
117 ret = gsw_tee_delete_secure_data(obj1_id);
118 if(ret != 0)
119 {
120 printf("gsw_tee_delete_secure_data fail\n");
121 return ret;
122 }
123 ret = gsw_tee_check_secure_data(obj1_id);
124 printf("gsw_tee_check_secure_data ret = %d\n", ret);
125
126 ret = gsw_tee_sdk_deinit();
127 printf("gsw_tee_sdk_deinit ret = %d\n", ret);
128 return 0;
129
130}