ofono/drivers/isimodem/uicc.h

305 lines
8.3 KiB
C

/*
*
* 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 <gisi/client.h>
#include <gisi/modem.h>
#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 */