blob: 1bab1ba0b246a00a4c918e8128b25e1b3ccf9612 [file] [log] [blame]
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -08001/* Copyright (C) 2007-2008 The Android Open Source Project
2**
3** This software is licensed under the terms of the GNU General Public
4** License version 2, as published by the Free Software Foundation, and
5** may be copied, distributed, and modified under those terms.
6**
7** This program is distributed in the hope that it will be useful,
8** but WITHOUT ANY WARRANTY; without even the implied warranty of
9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10** GNU General Public License for more details.
11*/
12#ifndef _android_sim_card_h
13#define _android_sim_card_h
14
15#include "gsm.h"
16
17typedef struct ASimCardRec_* ASimCard;
18
Marc Petit-Huguenina1b379c2010-07-14 12:33:15 -070019extern ASimCard asimcard_create( int from_port );
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080020extern void asimcard_destroy( ASimCard sim );
21
22typedef enum {
23 A_SIM_STATUS_ABSENT = 0,
24 A_SIM_STATUS_NOT_READY,
25 A_SIM_STATUS_READY,
26 A_SIM_STATUS_PIN,
27 A_SIM_STATUS_PUK,
28 A_SIM_STATUS_NETWORK_PERSONALIZATION
29} ASimStatus;
30
31extern ASimStatus asimcard_get_status( ASimCard sim );
32extern void asimcard_set_status( ASimCard sim, ASimStatus status );
33
34extern const char* asimcard_get_pin( ASimCard sim );
35extern const char* asimcard_get_puk( ASimCard sim );
36extern void asimcard_set_pin( ASimCard sim, const char* pin );
37extern void asimcard_set_puk( ASimCard sim, const char* puk );
38
39extern int asimcard_check_pin( ASimCard sim, const char* pin );
40extern int asimcard_check_puk( ASimCard sim, const char* puk, const char* pin );
41
42/* Restricted SIM Access command, as defined by 8.18 of 3GPP 27.007 */
43typedef enum {
44 A_SIM_CMD_READ_BINARY = 176,
45 A_SIM_CMD_READ_RECORD = 178,
46 A_SIM_CMD_GET_RESPONSE = 192,
47 A_SIM_CMD_UPDATE_BINARY = 214,
48 A_SIM_CMD_UPDATE_RECORD = 220,
49 A_SIM_CMD_STATUS = 242
50} ASimCommand;
51
52extern const char* asimcard_io( ASimCard sim, const char* cmd );
53
54#endif /* _android_sim_card_h */