Remove build error in Tizen 3.0
[platform/core/connectivity/nfc-manager-neard.git] / tests / net_nfc_test_se.c
1 /*
2  * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *                               http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <glib-object.h>
18
19 #include "net_nfc_target_info.h"
20 #include "net_nfc_data.h"
21 #include "net_nfc_client_se.h"
22 #include "net_nfc_test_se.h"
23 #include "net_nfc_typedef.h"
24 #include "net_nfc_typedef_internal.h"
25 #include "net_nfc_test_util.h"
26
27
28 static void run_next_callback(gpointer user_data);
29
30 static void send_apdu_cb(net_nfc_error_e result, data_s *data, void *user_data);
31
32 static void set_secure_element_cb(net_nfc_error_e result, void *user_data);
33
34 static void open_secure_element_cb(net_nfc_error_e result,
35                 net_nfc_target_handle_s *handle, void *user_data);
36
37 static void close_secure_element_cb(net_nfc_error_e result, void *user_data);
38
39 static void get_atr_secure_element_cb(net_nfc_error_e result, data_s *data,
40                 void *user_data);
41
42 static void se_set_event_cb(net_nfc_message_e event, void *user_data);
43
44 static void se_ese_detection_cb(net_nfc_target_handle_s *handle, int dev_type,
45                 data_s *data, void *user_data);
46
47 static void se_set_transaction_cb(net_nfc_se_type_e se_type, data_s *aid, data_s *param, void *user_data);
48
49 /*This handle would be intialized by open secure element callback function*/
50 static net_nfc_target_handle_s *global_handle = NULL;
51
52 static void run_next_callback(gpointer user_data)
53 {
54         if (user_data)
55         {
56                 GCallback callback;
57
58                 callback = (GCallback)(user_data);
59                 callback();
60         }
61 }
62
63 static void send_apdu_cb(net_nfc_error_e result, data_s *data, void *user_data)
64 {
65         g_print(" Send apdu data completed \n");
66         print_received_data(data);
67         run_next_callback(user_data);
68 }
69
70 static void set_secure_element_cb(net_nfc_error_e result, void* user_data)
71 {
72         g_print("Set Secure Element completed : %d\n", result);
73         run_next_callback(user_data);
74 }
75
76 static void open_secure_element_cb(net_nfc_error_e result,
77                 net_nfc_target_handle_s *handle, void* user_data)
78 {
79         g_print("Open secure element completed\n");
80         // assigning received handle
81         global_handle = handle;
82         g_print("Handle is %#x\n", GPOINTER_TO_UINT(handle));
83         run_next_callback(user_data);
84 }
85
86 static void close_secure_element_cb(net_nfc_error_e result, void* user_data)
87 {
88         g_print("close secure element completed %d\n", result);
89         run_next_callback(user_data);
90 }
91
92 static void get_atr_secure_element_cb(net_nfc_error_e result, data_s *data,
93                 void* user_data)
94 {
95         g_print("get atr completed\n");
96         print_received_data(data);
97         run_next_callback(user_data);
98 }
99
100 static void se_set_event_cb(net_nfc_message_e event, void *user_data)
101 {
102         g_print("Event callback set successfully\n");
103         g_print(" Event received %d", event);
104         run_next_callback(user_data);
105 }
106
107 static void se_ese_detection_cb(net_nfc_target_handle_s *handle, int dev_type,
108                 data_s *data, void *user_data)
109 {
110         g_print("Set ese detection callback successfully\n");
111         g_print("Handle is %#x\n", GPOINTER_TO_UINT(handle));
112         g_print(" dev type  %d\n", dev_type);
113         print_received_data(data);
114 }
115
116 static void se_set_transaction_cb(net_nfc_se_type_e se_type, data_s *aid, data_s *param, void *user_data)
117 {
118         g_print("Set transaction callback successfully\n");
119         g_print("*****displaying Aid data****\n");
120         print_received_data(aid);
121         g_print("*****displaying param data ****\n");
122         print_received_data(param);
123         run_next_callback(user_data);
124 }
125
126 void net_nfc_test_se_send_apdu(gpointer data, gpointer user_data)
127 {
128         net_nfc_error_e result = NET_NFC_OK;
129         data_s *apdu_data = NULL;
130         uint8_t apdu_cmd[4] = {0x00, 0xA4, 0x00, 0x0C};
131
132         net_nfc_create_data(&apdu_data, apdu_cmd, 4);
133
134         result = net_nfc_client_se_send_apdu(global_handle, apdu_data, send_apdu_cb, user_data);
135         g_print("net_nfc_client_se_send_apdu() : %d\n", result);
136 }
137
138 void net_nfc_test_se_send_apdu_sync(gpointer data, gpointer user_data)
139 {
140         net_nfc_error_e result = NET_NFC_OK;
141         data_s *apdu_data = NULL;
142         uint8_t apdu_cmd[4] = {0x00, 0xA4, 0x00, 0x0C};
143         data_s *response = NULL;
144
145         net_nfc_create_data(&apdu_data, apdu_cmd, 4);
146         result = net_nfc_client_se_send_apdu_sync(global_handle, apdu_data, &response);
147
148         g_print(" Send apdu data sync completed %d\n", result);
149         print_received_data(response);
150         run_next_callback(user_data);
151 }
152
153 void net_nfc_test_se_set_secure_element_type(gpointer data, gpointer user_data)
154 {
155         net_nfc_error_e result = NET_NFC_OK;
156         net_nfc_se_type_e se_type = NET_NFC_SE_TYPE_UICC;
157
158         result = net_nfc_client_se_set_secure_element_type(
159                         se_type,
160                         set_secure_element_cb,
161                         user_data);
162         g_print("net_nfc_client_se_set_secure_element_type() : %d\n", result);
163 }
164
165 void net_nfc_test_se_set_secure_element_type_sync(gpointer data,
166                 gpointer user_data)
167 {
168         net_nfc_error_e result = NET_NFC_OK;
169         net_nfc_se_type_e se_type = NET_NFC_SE_TYPE_UICC;
170
171         result = net_nfc_client_se_set_secure_element_type_sync(se_type);
172         g_print(" Set Secure element type completed %d\n", result);
173         run_next_callback(user_data);
174 }
175
176 void net_nfc_test_se_open_internal_secure_element(gpointer data,
177                 gpointer user_data)
178 {
179         net_nfc_error_e result = NET_NFC_OK;
180         net_nfc_se_type_e se_type = NET_NFC_SE_TYPE_UICC;
181
182         result = net_nfc_client_se_open_internal_secure_element(
183                         se_type,
184                         open_secure_element_cb,
185                         user_data);
186         g_print("net_nfc_client_se_open_internal_secure_element() : %d\n", result);
187 }
188
189 void net_nfc_test_se_open_internal_secure_element_sync(gpointer data,
190                 gpointer user_data)
191 {
192         net_nfc_error_e result = NET_NFC_OK;
193         net_nfc_se_type_e se_type = NET_NFC_SE_TYPE_UICC;
194
195         result = net_nfc_client_se_open_internal_secure_element_sync(
196                         se_type,
197                         &global_handle);
198
199         g_print("Handle is %#x\n", GPOINTER_TO_UINT(global_handle));
200         g_print("open secure element completed %d\n", result);
201         run_next_callback(user_data);
202 }
203
204 void net_nfc_test_se_close_internal_secure_element(gpointer data,
205                 gpointer user_data)
206 {
207         net_nfc_error_e result = NET_NFC_OK;
208
209         result = net_nfc_client_se_close_internal_secure_element(
210                         global_handle,
211                         close_secure_element_cb,
212                         user_data);
213         g_print("net_nfc_client_se_close_internal_secure_element() : %d\n", result);
214 }
215
216 void net_nfc_test_se_close_internal_secure_element_sync(gpointer data,
217                 gpointer user_data)
218 {
219         net_nfc_error_e result = NET_NFC_OK;
220
221         result = net_nfc_client_se_close_internal_secure_element_sync(global_handle);
222         g_print("close secure element completed %d\n", result);
223         run_next_callback(user_data);
224 }
225
226 void net_nfc_test_se_get_atr(gpointer data, gpointer user_data)
227 {
228         net_nfc_error_e result = NET_NFC_OK;
229
230         result = net_nfc_client_se_get_atr(
231                         global_handle,
232                         get_atr_secure_element_cb,
233                         user_data);
234         g_print("net_nfc_client_se_get_atr() : %d\n", result);
235 }
236
237 void net_nfc_test_se_get_atr_sync(gpointer data, gpointer user_data)
238 {
239         net_nfc_error_e result = NET_NFC_OK;
240         data_s *attr_data = NULL;
241
242         result = net_nfc_client_se_get_atr_sync(global_handle, &attr_data);
243
244         g_print("Get atr data sync completed %d\n", result);
245         print_received_data(attr_data);
246         run_next_callback(user_data);
247 }
248
249 void net_nfc_test_se_set_event_cb(gpointer data, gpointer user_data)
250 {
251         net_nfc_client_se_set_event_cb(se_set_event_cb, user_data);
252 }
253
254 void net_nfc_test_se_unset_event_cb(gpointer data, gpointer user_data)
255 {
256         net_nfc_client_se_unset_event_cb();
257         g_print(" Event unset callback successfully\n");
258 }
259
260 void net_nfc_test_se_set_ese_detection_cb(gpointer data, gpointer user_data)
261 {
262         net_nfc_client_se_set_ese_detection_cb(se_ese_detection_cb, user_data);
263 }
264
265 void net_nfc_test_se_unset_ese_detection_cb(gpointer data, gpointer user_data)
266 {
267         net_nfc_client_se_unset_ese_detection_cb();
268         g_print("Detection unset callback successfuly\n");
269 }
270
271 void net_nfc_test_se_set_transaction_event_cb(gpointer data, gpointer user_data)
272 {
273         net_nfc_client_se_set_transaction_event_cb(NET_NFC_SE_TYPE_UICC, se_set_transaction_cb,
274                                 user_data);
275 }
276
277 void net_nfc_test_se_unset_transaction_event_cb(gpointer data,
278                 gpointer user_data)
279 {
280         net_nfc_client_se_unset_transaction_event_cb(NET_NFC_SE_TYPE_UICC);
281         g_print("Transaction unset callback successfully\n");
282 }