m2mb API docs  30.00.007
m2mb API sets documentation
m2mb_sim.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
22 #ifndef M2M_M2MB_SIM_API_H
23 #define M2M_M2MB_SIM_API_H
24 
25 
26 /* Global declarations ==========================================================================*/
27 
28 #define MAX_APDU_SIZE ( 300 )
29 
30 /* Global typedefs ==============================================================================*/
31 
32 typedef HANDLE M2MB_SIM_HANDLE;
33 
34 typedef enum
35 {
36  M2MB_SIM_SUCCESS,
37  M2MB_SIM_GENERIC_FAILURE,
38 } M2MB_SIM_ERRNO_E;
39 
40 typedef enum
41 {
42  M2MB_SIM_REMOTE_EVENT_RESP,
43  M2MB_SIM_REMOTE_APDU_RESP,
44  M2MB_SIM_REMOTE_CONNECT_IND,
45  M2MB_SIM_REMOTE_APDU_IND,
46  M2MB_SIM_REMOTE_INIT_IND,
47  /* indication of switching to VSIM */
48  M2MB_SIM_PROF01_SET_IND,
49  /* indication of switching back to physical SIM */
50  M2MB_SIM_PROF00_SET_IND,
51  /* indication of executing SIM personalization */
52  M2MB_SIM_EXECUTE_CRYPTO_IND
53 } M2MB_SIM_IND_E;
54 
55 typedef enum
56 {
57  /* SIM type selection */
58  M2MB_SIM_LOCAL_SIM,
59  M2MB_SIM_REMOTE_SIM
60 } M2MB_SIM_SELECTION_E;
61 
62 typedef enum
63 {
64  M2MB_SIM_EUICC_EXECUTE_APDU_REQ = 0x01,
65  M2MB_SIM_EUICC_EXECUTE_APDU_RESP = 0x02,
66  M2MB_SIM_EUICC_INIT = 0x03,
67  M2MB_SIM_EUICC_RESET = 0x04,
68  M2MB_SIM_EUICC_EXECUTE_CRYPTO = 0x05
69 } M2MB_SIMOS_MSGTYPE_E;
70 
71 typedef struct
72 {
73  UINT32 pdu_size;
74  UINT8 pdu[MAX_APDU_SIZE];
76 
77 /* used to provide personalization file: FFU */
78 typedef struct
79 {
80  UINT32 perso_data_size;
81  UINT8 *perso_data;
83 
84 /* message to be sent to Sim OS; handle simHandle should be known by task */
85 typedef struct
86 {
87  M2MB_SIMOS_MSGTYPE_E MsgType;
88  M2MB_SIM_HANDLE simHandle;
89  UINT32 pdu_size;
90  UINT8 *pdu;
92 
93 
94 typedef void ( *m2mb_sim_ind_callback )( M2MB_SIM_HANDLE h, M2MB_SIM_IND_E sim_event, UINT16 resp_size, void *resp_struct, void *userdata );
95 
96 /* Global functions =============================================================================*/
97 
98 /*-----------------------------------------------------------------------------------------------*/
138 /*-----------------------------------------------------------------------------------------------*/
139 M2MB_RESULT_E m2mb_sim_init( M2MB_SIM_HANDLE *h, m2mb_sim_ind_callback callback, void *userdata );
140 
141 /*-----------------------------------------------------------------------------------------------*/
184 /*-----------------------------------------------------------------------------------------------*/
185 M2MB_RESULT_E m2mb_sim_send_remote_apdu_req( M2MB_SIM_HANDLE h, UINT8 *apdu_command, UINT16 cmdApduLen );
186 
187 /*-----------------------------------------------------------------------------------------------*/
226 /*-----------------------------------------------------------------------------------------------*/
227 M2MB_RESULT_E m2mb_sim_select_sim( M2MB_SIM_HANDLE h, M2MB_SIM_SELECTION_E simSelection );
228 
229 /*-----------------------------------------------------------------------------------------------*/
277 M2MB_RESULT_E m2mb_sim_send_remote_apdu_resp( M2MB_SIM_HANDLE h, UINT8 SW1, UINT8 SW2, UINT8 *apdu_response, UINT16 respLen, UINT8 SIMStatus );
278 
279 
280 /*-----------------------------------------------------------------------------------------------*/
309 /*-----------------------------------------------------------------------------------------------*/
310 M2MB_RESULT_E m2mb_sim_send_crypto_resp( M2MB_SIM_HANDLE h, UINT8 *pData, UINT16 datalen, M2MB_RESULT_E cryptoResult );
311 
312 
313 /*-----------------------------------------------------------------------------------------------*/
335 /*-----------------------------------------------------------------------------------------------*/
336 M2MB_RESULT_E m2mb_sim_send_remote_reset_req( M2MB_SIM_HANDLE h );
337 
338 
339 /*-----------------------------------------------------------------------------------------------*/
366 /*-----------------------------------------------------------------------------------------------*/
367 
368 
369 M2MB_RESULT_E m2mb_sim_send_remote_watchdog_kick_req( M2MB_SIM_HANDLE h, UINT32 wdTimeoutX );
370 
371 
372 
373 #endif
m2mb_sim_send_remote_apdu_req
M2MB_RESULT_E m2mb_sim_send_remote_apdu_req(M2MB_SIM_HANDLE h, UINT8 *apdu_command, UINT16 cmdApduLen)
m2mb_sim_send_remote_apdu_req sends a PDU to remote SIM.
m2mb_sim_init
M2MB_RESULT_E m2mb_sim_init(M2MB_SIM_HANDLE *h, m2mb_sim_ind_callback callback, void *userdata)
m2mb_sim_init initializes SIM service for current client.
m2mb_sim_select_sim
M2MB_RESULT_E m2mb_sim_select_sim(M2MB_SIM_HANDLE h, M2MB_SIM_SELECTION_E simSelection)
m2mb_sim_select_sim switches between local (physical) and remote (virtual) SIM.
M2MB_SIM_INCOMING_APDU_T
Definition: m2mb_sim.h:71
m2mb_sim_send_remote_reset_req
M2MB_RESULT_E m2mb_sim_send_remote_reset_req(M2MB_SIM_HANDLE h)
Call reset of SIM service to the modem.
M2MB_SIM_PERSO_DATA_T
Definition: m2mb_sim.h:78
M2MB_SIMOS_REQ_T
Definition: m2mb_sim.h:85
m2mb_sim_send_crypto_resp
M2MB_RESULT_E m2mb_sim_send_crypto_resp(M2MB_SIM_HANDLE h, UINT8 *pData, UINT16 datalen, M2MB_RESULT_E cryptoResult)
Provide response after.
m2mb_sim_send_remote_watchdog_kick_req
M2MB_RESULT_E m2mb_sim_send_remote_watchdog_kick_req(M2MB_SIM_HANDLE h, UINT32 wdTimeoutX)
m2mb_sim_send_remote_watchdog_kick_req can both kick watchdog of uim task on modem and set r its time...
m2mb_sim_send_remote_apdu_resp
M2MB_RESULT_E m2mb_sim_send_remote_apdu_resp(M2MB_SIM_HANDLE h, UINT8 SW1, UINT8 SW2, UINT8 *apdu_response, UINT16 respLen, UINT8 SIMStatus)
m2mb_sim_send_remote_apdu_resp sends a remote SIM response APDU to UIM.