comparison src/g23m-aci/aci_ext/aci_ext_pers.h @ 1:fa8dc04885d8

src/g23m-*: import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:25:50 +0000
parents
children
comparison
equal deleted inserted replaced
0:4e78acac3d88 1:fa8dc04885d8
1 /*
2 +-----------------------------------------------------------------------------
3 | Project :
4 | Modul : J:\g23m-aci\aci_ext\aci_ext_pers.h
5 +-----------------------------------------------------------------------------
6 | Copyright 2002 Texas Instruments Berlin, AG
7 | All rights reserved.
8 |
9 | This file is confidential and a trade secret of Texas
10 | Instruments Berlin, AG
11 | The receipt of or possession of this file does not convey
12 | any rights to reproduce or disclose its contents or to
13 | manufacture, use, or sell anything it may describe, in
14 | whole, or in part, without the specific written consent of
15 | Texas Instruments Berlin, AG.
16 +-----------------------------------------------------------------------------
17 | Purpose :
18 +-----------------------------------------------------------------------------
19 */
20 #ifndef ACI_EXT_PERS_H
21 #define ACI_EXT_PERS_H
22
23 /* ACI extension definitions */
24 #define PERSONALISATION_MAX 15 /* maximal amount of personalisation variants per personalisation check */
25
26 #ifdef SIM_PERS
27 enum E_AUTO_DEPENDECY_FLAG
28 {
29 NW_AUTO_LOCK = 0x01,
30 NS_AUTO_LOCK = 0x02,
31 SP_AUTO_LOCK = 0x04,
32 CP_AUTO_LOCK = 0x08,
33 SIM_AUTO_LOCK= 0x10
34 };
35 #endif
36 /* Globals ------------------------------------------------------------------------------ */
37
38
39 typedef enum
40 {
41 MMILOCK_FAIL = -1,
42 MMILOCK_DISABLED, /* No lock check to be done */
43 MMILOCK_ENABLED, /* A lock check to be executed*/
44 MMILOCK_BLOCKED, /* MMI lock failed */
45 MMILOCK_VERIFIED /* MMI lock verified */
46 } T_MMILOCK_STATUS;
47
48 typedef enum
49 {
50 SIMLOCK_FAIL = -1,
51 SIMLOCK_DISABLED, /* No SIM lock check has to be done */
52 SIMLOCK_PERM_DISABLED,
53 SIMLOCK_ENABLED, /* A SIM lock check has to be executed*/
54 SIMLOCK_BLOCKED, /* The SIM is blocked, i.e. because of a (or to many) wrong PIN(s) */
55 SIMLOCK_LOCKED, /* The ME is locked because of wrong SIM */
56 SIMLOCK_WAIT, /* Wait to read EF gid1 and gid2 */
57 SIMLOCK_BUSY
58 } T_SIMLOCK_STATUS;
59
60 typedef enum
61 {
62 AUTOLOCK_FAIL = -1,
63 AUTOLOCK_CMPL, /* No SIM lock check has to be done */
64 AUTOLOCK_EXCT
65 } T_AUTOLOCK_STATUS;
66
67 typedef enum
68 {
69 SIMLOCK_CHECK_LOCK =0,
70 SIMLOCK_CHECK_PERS,
71 SIMLOCK_CHECK_RESET_FC,
72 SIMLOCK_CHECK_MASTER_UNLOCK
73 }T_SIMLOCK_CHECK;
74
75 typedef enum
76 {
77 SIMLOCK_NETWORK = 0, /* Network personalisation */
78 SIMLOCK_NETWORK_SUBSET, /* Network subset personalisation */
79 SIMLOCK_SERVICE_PROVIDER, /* Service provider personalisation */
80 SIMLOCK_CORPORATE, /* Corporate personalisation */
81 SIMLOCK_SIM, /* SIM personalisation */
82 SIMLOCK_FIRST_SIM , /* ME is not personalized and will be personalisation to first
83 SIM inserted into the ME */
84 SIMLOCK_BLOCKED_NETWORK, /*Blocked network category */
85 SIMLOCK_LAST
86 } T_SIMLOCK_TYPE;
87
88
89 typedef enum
90 {
91 OPER_FAIL = -1,
92 OPER_SUCCESS,
93 OPER_WRONG_PASSWORD,
94 OPER_BUSY,
95 OPER_NOT_ALLOWED,
96 OPER_BLOCKED
97
98 } T_OPER_RET_STATUS;
99
100
101 #define NO_SP_DEFINED 255 /* If service provider (SP) code holds FF, no SP code is defined */
102 #define NO_CORP_DEFINED 255 /* If corporate code holds FF, no corporate code is defined */
103
104
105
106
107 #define T_ACI_PERS_STATUS_LEN 44
108 #define T_ACI_PERS_STATUS_PUK_LEN 52
109
110
111 typedef struct
112 {
113 UBYTE State;
114 UBYTE cnt; /* No of retries */
115 UBYTE maxcnt; /* Max count allowed */
116 UBYTE PwdLength;
117 UBYTE Cur_code[3]; /* Current lock */
118 UBYTE Org_code[3]; /* Original lock */
119 } T_ACI_PERS_MMI_DATAS;
120
121
122 /* prototypes of the aci_personalisation functions.-------------------------------------- */
123
124 /*
125 Initialisation of this extension. Might be used to initialise variables, set temporary data to default values and so on.
126 This method will be called before any other public method of this extension.
127 */
128 void aci_ext_personalisation_init( void );
129
130
131
132 /*
133 ACI extension method for retrieving the status of a single personalisation type.
134 The personalisation status is stored in a separate customer managed memory area
135 and the customer has to implement this extension method to return the actual status
136 of the questioned personalisation type.
137 */
138 T_SIMLOCK_STATUS aci_ext_personalisation_get_status( T_SIMLOCK_TYPE personalisation_type );
139
140 /* ACI extension to Get desired password length */
141 UBYTE aci_ext_personalisation_get_MMI_PwdLen( void );
142
143 /*
144 ACI extension method for verifying the passowrd.
145 If the password is false then the counter is increased. If maxcnt is reached then the key
146 will been blocked.
147 If the password is correct then the counter is set to 0
148 */
149 T_SIMLOCK_STATUS aci_ext_personalisation_verify_password( T_SIMLOCK_TYPE personalisation_type, char *passwd);
150
151 /*
152 ACI extension method for changind the password.
153 */
154 T_OPER_RET_STATUS aci_ext_personalisation_change_password( T_SIMLOCK_TYPE personalisation_type, char *passwd, char *new_passwd );
155
156
157 /*
158 ACI extension method for retrieving the status of a single personalisation type.
159 The personalisation status is stored in a separate customer managed memory area
160 and the customer has to implement this extension method to return the actual status
161 of the questioned personalisation type.
162 */
163 T_SIMLOCK_STATUS aci_ext_personalisation_set_status( T_SIMLOCK_TYPE personalisation_type,
164 T_SIMLOCK_STATUS lock, char* passwd);
165
166
167 #ifdef SIM_PERS
168 /*---------------------------------------------------
169 For Failure Counter reset. Uses Security Drv. method to reset FC
170 added on 11/03/2005
171 -----------------------------------------------------*/
172 T_OPER_RET_STATUS aci_ext_slock_reset_fc(char *fckey);
173
174 /*--------------------------------------
175 For Supplementary Info( e.g. FC MAX, MC Current value).
176 Uses Security Drv api sec_get_CFG
177 added on 11/03/2005
178 ----------------------------------------*/
179 T_OPER_RET_STATUS aci_ext_slock_sup_info (T_SUP_INFO *sup_info);
180
181 T_OPER_RET_STATUS aci_ext_slock_master_unlock (char *masterkey);
182
183 void aci_ext_set_timer_flag(BOOL status);
184
185 UBYTE aci_ext_check_timer(void);
186
187 /* auto personalisation for first sim */
188 T_AUTOLOCK_STATUS aci_ext_auto_personalise();
189 void aci_ext_add_code(T_SIMLOCK_TYPE type);
190
191 #endif /* SIM_PERS */
192
193
194 /* MMI Lock handling functions */
195 #ifdef TI_PS_FF_AT_P_CMD_SECP
196 T_SIMLOCK_STATUS aci_ext_personalisation_CS_change_password( char *passwd, char *new_passwd );
197 #endif /* TI_PS_FF_AT_P_CMD_SECP */
198 #ifdef TI_PS_FF_AT_P_CMD_SECS
199 T_SIMLOCK_STATUS aci_ext_personalisation_CS_set_status(T_SIMLOCK_STATUS lock , char * passwd);
200 T_SIMLOCK_STATUS aci_ext_personalisation_CS_get_status();
201 #endif /* TI_PS_FF_AT_P_CMD_SECS */
202
203 #ifdef SIM_PERS
204 void aci_ext_personalisation_free( void );
205 #endif /*SIM_PERS */
206
207 #endif /* ACI_EXT_PERS_H */