/* * * oFono - Open Source Telephony * * Copyright (C) 2011 ST-Ericsson AB. * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ #ifndef __ISIMODEM_UICC_H #define __ISIMODEM_UICC_H #ifdef __cplusplus extern "C" { #endif #include #include #define PN_UICC 0x8C #define UICC_APPL_ID_UNKNOWN 0x00 #define UICC_SFI_NOT_PRESENT 0x00 #define UICC_SESSION_ID_NOT_USED 0x00 enum uicc_status { UICC_STATUS_OK = 0x00, UICC_STATUS_FAIL = 0x01, UICC_STATUS_UNKNOWN = 0x02, UICC_STATUS_NOT_READY = 0x10, UICC_STATUS_START_UP_COMPLETED = 0x11, UICC_STATUS_SHUTTING_DOWN = 0x12, UICC_STATUS_CARD_NOT_READY = 0x20, UICC_STATUS_CARD_READY = 0x21, UICC_STATUS_CARD_DISCONNECTED = 0x22, UICC_STATUS_CARD_NOT_PRESENT = 0x23, UICC_STATUS_CARD_REJECTED = 0x24, UICC_STATUS_APPL_ACTIVE = 0x30, UICC_STATUS_APPL_NOT_ACTIVE = 0x31, UICC_STATUS_PIN_ENABLED = 0x40, UICC_STATUS_PIN_DISABLED = 0x41, }; enum uicc_subblock { UICC_SB_SHUT_DOWN_CONFIG = 0x0023, UICC_SB_CARD_STATUS = 0x0001, UICC_SB_CARD_INFO = 0x0024, UICC_SB_CARD_REJECT_CAUSE = 0x0025, UICC_SB_CLIENT = 0x001F, UICC_SB_APPL_DATA_OBJECT = 0x0002, UICC_SB_APPLICATION = 0x0003, UICC_SB_APPL_INFO = 0x0004, UICC_SB_APPL_STATUS = 0x0005, UICC_SB_FCP = 0x0007, UICC_SB_FCI = 0x001C, UICC_SB_CHV = 0x001B, UICC_SB_PIN = 0x0008, UICC_SB_PIN_REF = 0x0009, UICC_SB_PUK = 0x000A, UICC_SB_PIN_SUBST = 0x000B, UICC_SB_PIN_INFO = 0x000C, UICC_SB_APPL_PATH = 0x000D, UICC_SB_SESSION = 0x000E, UICC_SB_FILE_DATA = 0x000F, UICC_SB_APDU = 0x0014, UICC_SB_TRANSPARENT_READ = 0x0010, UICC_SB_TRANSPARENT_UPDATE = 0x0011, UICC_SB_TRANSPARENT = 0x0012, UICC_SB_LINEAR_FIXED = 0x0013, UICC_SB_CYCLIC = 0x0026, UICC_SB_TERMINAL_PROFILE = 0x0015, UICC_SB_TERMINAL_RESPONSE = 0x001D, UICC_SB_ENVELOPE = 0x0021, UICC_SB_POLLING_SET = 0x0016, UICC_SB_REFRESH = 0x0017, UICC_SB_AID = 0x0006, UICC_SB_REFRESH_RESULT = 0x0018, UICC_SB_APDU_ACTIONS = 0x0019, UICC_SB_OBJECT_ID = 0x001A, UICC_SB_STATUS_WORD = 0x0020, UICC_SB_APDU_SAP_INFO = 0x0022, UICC_SB_ACCESS_MODE = 0x0027, UICC_SB_RESP_INFO = 0x0028, UICC_SB_APDU_SAP_CONFIG = 0x0029, }; enum uicc_message_id { UICC_REQ = 0x00, UICC_RESP = 0x01, UICC_IND = 0x02, UICC_CARD_REQ = 0x03, UICC_CARD_RESP = 0x04, UICC_CARD_IND = 0x05, UICC_APPLICATION_REQ = 0x06, UICC_APPLICATION_RESP = 0x07, UICC_APPLICATION_IND = 0x08, UICC_PIN_REQ = 0x09, UICC_PIN_RESP = 0x0A, UICC_PIN_IND = 0x0B, UICC_APPL_CMD_REQ = 0x0C, UICC_APPL_CMD_RESP = 0x0D, UICC_APPL_CMD_IND = 0x0E, UICC_CONNECTOR_REQ = 0x0F, UICC_CONNECTOR_RESP = 0x10, UICC_CAT_REQ = 0x12, UICC_CAT_RESP = 0x13, UICC_CAT_IND = 0x14, UICC_APDU_REQ = 0x15, UICC_APDU_RESP = 0x16, UICC_APDU_RESET_IND = 0x17, UICC_REFRESH_REQ = 0x18, UICC_REFRESH_RESP = 0x19, UICC_REFRESH_IND = 0x1A, UICC_SIMLOCK_REQ = 0x1B, UICC_SIMLOCK_RESP = 0x1C, UICC_APDU_SAP_REQ = 0x1E, UICC_APDU_SAP_RESP = 0x1F, UICC_APDU_SAP_IND = 0x20, UICC_PWR_CTRL_REQ = 0x21, UICC_PWR_CTRL_RESP = 0x22, UICC_PWR_CTRL_IND = 0x23, UICC_CARD_READER_IND = 0x26, }; enum uicc_service_type { UICC_APPL_LIST = 0x01, UICC_APPL_HOST_ACTIVATE = 0x03, UICC_APPL_START_UP_COMPLETE = 0x05, UICC_APPL_SHUT_DOWN_INITIATED = 0x06, UICC_APPL_STATUS_GET = 0x07, UICC_APPL_HOST_DEACTIVATE = 0x09, UICC_PIN_VERIFY = 0x11, UICC_PIN_UNBLOCK = 0x12, UICC_PIN_DISABLE = 0x13, UICC_PIN_ENABLE = 0x14, UICC_PIN_CHANGE = 0x15, UICC_PIN_SUBSTITUTE = 0x16, UICC_PIN_INFO = 0x17, UICC_PIN_PROMPT_VERIFY = 0x18, UICC_APPL_READ_TRANSPARENT = 0x21, UICC_APPL_UPDATE_TRANSPARENT = 0x22, UICC_APPL_READ_LINEAR_FIXED = 0x23, UICC_APPL_UPDATE_LINEAR_FIXED = 0x24, UICC_APPL_FILE_INFO = 0x25, UICC_APPL_APDU_SEND = 0x26, UICC_APPL_CLEAR_CACHE = 0x27, UICC_APPL_SESSION_START = 0x28, UICC_APPL_SESSION_END = 0x29, UICC_APPL_READ_CYCLIC = 0x2A, UICC_APPL_UPDATE_CYCLIC = 0x2B, UICC_CONNECT = 0x31, UICC_DISCONNECT = 0x32, UICC_RECONNECT = 0x33, UICC_CAT_ENABLE = 0x41, UICC_CAT_DISABLE = 0x42, UICC_CAT_TERMINAL_PROFILE = 0x43, UICC_CAT_TERMINAL_RESPONSE = 0x44, UICC_CAT_ENVELOPE = 0x45, UICC_CAT_POLLING_SET = 0x46, UICC_CAT_REFRESH = 0x47, UICC_CAT_POLL = 0x48, UICC_APDU_SEND = 0x51, UICC_APDU_ATR_GET = 0x52, UICC_APDU_CONTROL = 0x53, UICC_REFRESH_STATUS = 0x61, UICC_APPL_TERMINATED = 0x71, UICC_APPL_RECOVERED = 0x72, UICC_APPL_ACTIVATED = 0x75, UICC_PIN_VERIFY_NEEDED = 0x81, UICC_PIN_UNBLOCK_NEEDED = 0x82, UICC_PIN_PERMANENTLY_BLOCKED = 0x83, UICC_PIN_VERIFIED = 0x84, UICC_CAT_FETCHED_CMD = 0x91, UICC_CAT_NOT_SUPPORTED = 0x92, UICC_CAT_REG_FAILED = 0x93, UICC_CAT_REG_OK = 0x94, UICC_REFRESH_PERMISSION = 0xA1, UICC_REFRESH_STARTING = 0xA2, UICC_REFRESH_CANCELLED = 0xA3, UICC_REFRESH_NOW = 0xA4, UICC_START_UP_COMPLETE = 0xB0, UICC_STATUS_GET = 0xB1, UICC_READY = 0xB2, UICC_READY_FOR_ACTIVATION = 0xB3, UICC_INITIALIZED = 0xB4, UICC_SHUTTING_DOWN = 0xB5, UICC_SHUT_DOWN_CONFIG = 0xB6, UICC_ERROR = 0xB7, UICC_CARD_DISCONNECTED = 0xC0, UICC_CARD_REMOVED = 0xC1, UICC_CARD_NOT_PRESENT = 0xC2, UICC_CARD_READY = 0xC4, UICC_CARD_STATUS_GET = 0xC5, UICC_CARD_REJECTED = 0xC8, UICC_CARD_INFO_GET = 0xC9, UICC_SIMLOCK_ACTIVE = 0xD0, UICC_APDU_SAP_ACTIVATE = 0xE1, UICC_APDU_SAP_DEACTIVATE = 0xE2, UICC_APDU_SAP_ATR_GET = 0xE3, UICC_APDU_SAP_COLD_RESET = 0xE4, UICC_APDU_SAP_WARM_RESET = 0xE5, UICC_APDU_SAP_APDU_SEND = 0xE6, UICC_APDU_SAP_RECOVERY = 0xE7, UICC_APDU_SAP_CONFIG_GET = 0xE8, UICC_PWR_CTRL_ENABLE = 0xF1, UICC_PWR_CTRL_DISABLE = 0xF2, UICC_PWR_CTRL_WAIT = 0xF3, UICC_PWR_CTRL_PROCEED = 0xF4, UICC_PWR_CTRL_PERMISSION = 0xFA, }; enum uicc_appl_type_table { UICC_APPL_TYPE_UNKNOWN = 0x00, UICC_APPL_TYPE_ICC_SIM = 0x01, UICC_APPL_TYPE_UICC_USIM = 0x02, }; enum uicc_pin_qualifier { UICC_PIN_NEW = 0x01, UICC_PIN_OLD = 0x02, }; enum uicc_appl_start_up_type { UICC_APPL_START_UP_NO_INIT_PROC = 0x00, UICC_APPL_START_UP_INIT_PROC = 0x01, }; enum uicc_card_type { UICC_CARD_TYPE_ICC = 0x01, UICC_CARD_TYPE_UICC = 0x02, }; enum uicc_details { UICC_NO_DETAILS = 0x00, UICC_INVALID_PARAMETERS = 0x01, UICC_FILE_NOT_FOUND = 0x02, UICC_SECURITY_CONDITIONS_NOT_SATISFIED = 0x03, UICC_APPL_CONFLICT = 0x04, UICC_CARD_ERROR = 0x05, UICC_SERVICE_NOT_SUPPORTED = 0x06, UICC_SESSION_EXPIRED = 0x07, }; enum uicc_simlock_status { UICC_SIMLOCK_STATUS_ACTIVE = 0x01, UICC_SIMLOCK_STATUS_INACTIVE = 0x02, }; enum uicc_apdu_status_word { UICC_PIN_STATUS_AUTH_RETRIES = 0x63c0, UICC_PIN_STATUS_AUTH_BLOCKED = 0x6983, UICC_PIN_STATUS_AUTH_FAILED = 0x9840, }; enum uicc_template { UICC_TEMPLATE_APPLICATION = 0x61, UICC_TEMPLATE_FCP = 0x62, UICC_TEMPLATE_SECURITY_ENVIRONMENT = 0x7B, }; enum uicc_fcp_param { UICC_FCP_PARAM_FILE_SIZE_DATA = 0x80, UICC_FCP_PARAM_FILE_SIZE_TOTAL = 0x81, UICC_FCP_PARAM_FILE_DESC = 0x82, UICC_FCP_PARAM_FILE_ID = 0x83, UICC_FCP_PARAM_AID = 0x84, UICC_FCP_PARAM_LIFECYCLE = 0x8A, UICC_FCP_PARAM_SECURITY_REFERENCE = 0x8B, UICC_FCP_PARAM_SECURITY_COMPACT = 0x8C, UICC_FCP_PARAM_SECURITY_EXPANDED = 0xAB, UICC_FCP_PARAM_PIN_STATUS = 0xC6, }; enum uicc_app_param { UICC_APP_PARAM_ID = 0x4F, UICC_APP_PARAM_LABEL = 0x50, UICC_APP_PARAM_PATH = 0x51, UICC_APP_PARAM_COMMAND = 0x52, UICC_APP_PARAM_DISC_DATA = 0x53, UICC_APP_PARAM_DISC_TEMPLATE = 0x73, UICC_APP_PARAM_URL = 0x5F50, }; gboolean isi_uicc_properties(GIsiModem *modem, int *app_id, int *app_type, int *client_id); #ifdef __cplusplus }; #endif #endif /* __ISIMODEM_UICC_H */