src/sim-internal.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  fci
struct  df_fci
struct  df_gsm
struct  ef_fci
struct  _sms
struct  _sim

Defines

#define SIM_CLA   0xa0
#define SIM_INS_SELECT   0xa4
#define SIM_INS_READ_BINARY   0xb0
#define SIM_INS_READ_RECORD   0xb2
#define SIM_INS_GET_RESPONSE   0xc0
#define SIM_MF   0x3f00
#define SIM_EF_ICCID   0x2fe2
#define SIM_DF_TELECOM   0x7f10
#define SIM_DF_GSM   0x7f20
#define SIM_EF_SMS   0x6f3c
#define SIM_EF_IMSI   0x6f07
#define SIM_SW1_SUCCESS   0x90
#define SIM_SW1_SHORT   0x9f
#define SIM_SW1_MEM_ERR   0x92
#define SIM_SW1_REF_ERR   0x94
#define SIM_SW1_SEC_ERR   0x98
#define SIM_TYPE_MASK   0xff00
#define SIM_MF   0x3f00
#define SIM_TYPE_DF   0x7f00
#define SIM_TYPE_EF   0x6f00
#define SIM_TYPE_ROOT_EF   0x2f00
#define SIM_FILE_INVALID   0xffff
#define SIM_IS_MF(x)   ((x & SIM_TYPE_MASK) == SIM_MF)
#define SIM_IS_DF(x)   ((x & SIM_TYPE_MASK) == SIM_TYPE_DF)
#define SIM_IS_EF(x)   ((x & SIM_TYPE_MASK) == SIM_TYPE_EF)
#define SIM_IS_RoOT_EF(x)   ((x & SIM_TYPE_MASK) == SIM_TYPE_ROOT_EF)
#define EF_TRANSPARENT   0x0
#define EF_LINEAR   0x1
#define EF_CYCLIC   0x3
#define SIM_SMS_STATUS_FREE   0
#define SIM_SMS_STATUS_READ   1
#define SIM_SMS_STATUS_UNREAD   3
#define SIM_SMS_STATUS_SENT   5
#define SIM_SMS_STATUS_UNSENT   7
#define SMS_TP_MTI   ((1<<0)|(1<<1))
#define SMS_TP_MMS   (1<<2)
#define SMS_TP_SRI   (1<<5)
#define SMS_TP_UDHI   (1<<6)
#define SMS_TP_RP   (1<<7)
#define GSM_NUMBER_TYPE_MASK   (7 << 4)
#define GSM_NUMBER_UNKNOWN   (0 << 4)
#define GSM_NUMBER_INTL   (1 << 4)
#define GSM_NUMBER_NATIONAL   (2 << 4)
#define GSM_NUMBER_NET_SPEC   (3 << 4)
#define GSM_NUMBER_SUBSCR   (4 << 4)
#define GSM_NUMBER_ABBREV   (5 << 4)
#define GSM_NUMBER_ALNUM   (6 << 4)
#define GSM_NUMBER_RESERVED   (7 << 4)
#define GSM_PLAN_MASK   0xf
#define GSM_PLAN_UNKNOWN   0
#define GSM_PLAN_ISDN   1
#define GSM_PLAN_X121   3
#define GSM_PLAN_TELEX   4
#define GSM_PLAN_NATIONAL   8
#define GSM_PLAN_PRIVATE   9
#define GSM_PLAN_ERMES   10
#define EF_FCI_MIN_OPT_LEN   2

Functions

_private int _apdu_select (struct _sim *s, uint16_t id)
_private int _apdu_read_binary (struct _sim *s, uint16_t ofs, uint8_t len)
_private int _apdu_read_record (struct _sim *s, uint8_t rec, uint8_t len)
_private void _sms_decode (struct _sms *, const uint8_t *ptr)

Variables

struct fci _packed

Define Documentation

#define EF_CYCLIC   0x3

Definition at line 44 of file sim-internal.h.

Referenced by set_ef_fci().

#define EF_FCI_MIN_OPT_LEN   2

Definition at line 109 of file sim-internal.h.

Referenced by set_ef_fci().

#define EF_LINEAR   0x1

Definition at line 43 of file sim-internal.h.

Referenced by set_ef_fci().

#define EF_TRANSPARENT   0x0

Definition at line 42 of file sim-internal.h.

Referenced by set_ef_fci().

#define GSM_NUMBER_ABBREV   (5 << 4)

Definition at line 67 of file sim-internal.h.

Referenced by number_type().

#define GSM_NUMBER_ALNUM   (6 << 4)

Definition at line 68 of file sim-internal.h.

Referenced by number_type().

#define GSM_NUMBER_INTL   (1 << 4)

Definition at line 63 of file sim-internal.h.

Referenced by fmt_number(), and number_type().

#define GSM_NUMBER_NATIONAL   (2 << 4)

Definition at line 64 of file sim-internal.h.

Referenced by number_type().

#define GSM_NUMBER_NET_SPEC   (3 << 4)

Definition at line 65 of file sim-internal.h.

Referenced by number_type().

#define GSM_NUMBER_RESERVED   (7 << 4)

Definition at line 69 of file sim-internal.h.

Referenced by number_type().

#define GSM_NUMBER_SUBSCR   (4 << 4)

Definition at line 66 of file sim-internal.h.

Referenced by number_type().

#define GSM_NUMBER_TYPE_MASK   (7 << 4)

Definition at line 61 of file sim-internal.h.

Referenced by fmt_number(), and number_type().

#define GSM_NUMBER_UNKNOWN   (0 << 4)

Definition at line 62 of file sim-internal.h.

Referenced by number_type().

#define GSM_PLAN_ERMES   10

Definition at line 79 of file sim-internal.h.

Referenced by number_plan().

#define GSM_PLAN_ISDN   1

Definition at line 74 of file sim-internal.h.

Referenced by number_plan().

#define GSM_PLAN_MASK   0xf

Definition at line 72 of file sim-internal.h.

Referenced by number_plan().

#define GSM_PLAN_NATIONAL   8

Definition at line 77 of file sim-internal.h.

Referenced by number_plan().

#define GSM_PLAN_PRIVATE   9

Definition at line 78 of file sim-internal.h.

Referenced by number_plan().

#define GSM_PLAN_TELEX   4

Definition at line 76 of file sim-internal.h.

Referenced by number_plan().

#define GSM_PLAN_UNKNOWN   0

Definition at line 73 of file sim-internal.h.

Referenced by number_plan().

#define GSM_PLAN_X121   3

Definition at line 75 of file sim-internal.h.

Referenced by number_plan().

#define SIM_CLA   0xa0

Definition at line 9 of file sim-internal.h.

Referenced by _apdu_read_binary(), _apdu_read_record(), do_get_response(), and do_select().

#define SIM_DF_GSM   0x7f20

Definition at line 21 of file sim-internal.h.

Referenced by read_imsi().

#define SIM_DF_TELECOM   0x7f10

Definition at line 19 of file sim-internal.h.

Referenced by sim_sms_save().

#define SIM_EF_ICCID   0x2fe2

Definition at line 17 of file sim-internal.h.

Referenced by read_iccid().

#define SIM_EF_IMSI   0x6f07

Definition at line 23 of file sim-internal.h.

Referenced by read_imsi().

#define SIM_EF_SMS   0x6f3c

Definition at line 22 of file sim-internal.h.

Referenced by sim_sms_save().

#define SIM_FILE_INVALID   0xffff

Definition at line 36 of file sim-internal.h.

Referenced by set_fci().

#define SIM_INS_GET_RESPONSE   0xc0

Definition at line 14 of file sim-internal.h.

Referenced by do_get_response().

#define SIM_INS_READ_BINARY   0xb0

Definition at line 12 of file sim-internal.h.

Referenced by _apdu_read_binary().

#define SIM_INS_READ_RECORD   0xb2

Definition at line 13 of file sim-internal.h.

Referenced by _apdu_read_record().

#define SIM_INS_SELECT   0xa4

Definition at line 11 of file sim-internal.h.

Referenced by do_select().

#define SIM_IS_DF (  )     ((x & SIM_TYPE_MASK) == SIM_TYPE_DF)

Definition at line 38 of file sim-internal.h.

#define SIM_IS_EF (  )     ((x & SIM_TYPE_MASK) == SIM_TYPE_EF)

Definition at line 39 of file sim-internal.h.

#define SIM_IS_MF (  )     ((x & SIM_TYPE_MASK) == SIM_MF)

Definition at line 37 of file sim-internal.h.

#define SIM_IS_RoOT_EF (  )     ((x & SIM_TYPE_MASK) == SIM_TYPE_ROOT_EF)

Definition at line 40 of file sim-internal.h.

#define SIM_MF   0x3f00

Definition at line 32 of file sim-internal.h.

#define SIM_MF   0x3f00

Definition at line 32 of file sim-internal.h.

Referenced by set_fci(), and sim_new().

#define SIM_SMS_STATUS_FREE   0

Definition at line 47 of file sim-internal.h.

Referenced by _sms_decode().

#define SIM_SMS_STATUS_READ   1

Definition at line 48 of file sim-internal.h.

Referenced by _sms_decode().

#define SIM_SMS_STATUS_SENT   5

Definition at line 50 of file sim-internal.h.

Referenced by _sms_decode().

#define SIM_SMS_STATUS_UNREAD   3

Definition at line 49 of file sim-internal.h.

Referenced by _sms_decode().

#define SIM_SMS_STATUS_UNSENT   7

Definition at line 51 of file sim-internal.h.

Referenced by _sms_decode().

#define SIM_SW1_MEM_ERR   0x92

Definition at line 27 of file sim-internal.h.

#define SIM_SW1_REF_ERR   0x94

Definition at line 28 of file sim-internal.h.

#define SIM_SW1_SEC_ERR   0x98

Definition at line 29 of file sim-internal.h.

#define SIM_SW1_SHORT   0x9f

Definition at line 26 of file sim-internal.h.

Referenced by _apdu_select().

#define SIM_SW1_SUCCESS   0x90

Definition at line 25 of file sim-internal.h.

Referenced by _apdu_select().

#define SIM_TYPE_DF   0x7f00

Definition at line 33 of file sim-internal.h.

Referenced by set_fci().

#define SIM_TYPE_EF   0x6f00

Definition at line 34 of file sim-internal.h.

Referenced by set_fci().

#define SIM_TYPE_MASK   0xff00

Definition at line 31 of file sim-internal.h.

Referenced by set_fci().

#define SIM_TYPE_ROOT_EF   0x2f00

Definition at line 35 of file sim-internal.h.

Referenced by set_fci().

#define SMS_TP_MMS   (1<<2)

Definition at line 55 of file sim-internal.h.

Referenced by _sms_decode().

#define SMS_TP_MTI   ((1<<0)|(1<<1))

Definition at line 54 of file sim-internal.h.

Referenced by _sms_decode().

#define SMS_TP_RP   (1<<7)

Definition at line 58 of file sim-internal.h.

Referenced by _sms_decode().

#define SMS_TP_SRI   (1<<5)

Definition at line 56 of file sim-internal.h.

Referenced by _sms_decode().

#define SMS_TP_UDHI   (1<<6)

Definition at line 57 of file sim-internal.h.

Referenced by _sms_decode().


Function Documentation

_private int _apdu_read_binary ( struct _sim s,
uint16_t  ofs,
uint8_t  len 
)

Definition at line 57 of file sim_apdu.c.

References chipcard_transact(), _sim::s_cc, _sim::s_xfr, SIM_CLA, SIM_INS_READ_BINARY, xfr_reset(), xfr_rx_sw1(), and xfr_tx_byte().

Referenced by _sim_read_binary().

Here is the call graph for this function:

Here is the caller graph for this function:

_private int _apdu_read_record ( struct _sim s,
uint8_t  rec,
uint8_t  len 
)

Definition at line 70 of file sim_apdu.c.

References chipcard_transact(), _sim::s_cc, _sim::s_xfr, SIM_CLA, SIM_INS_READ_RECORD, xfr_reset(), xfr_rx_sw1(), and xfr_tx_byte().

Referenced by _sim_read_record().

Here is the call graph for this function:

Here is the caller graph for this function:

_private int _apdu_select ( struct _sim s,
uint16_t  id 
)

Definition at line 35 of file sim_apdu.c.

References do_get_response(), do_select(), _sim::s_xfr, SIM_SW1_SHORT, SIM_SW1_SUCCESS, xfr_rx_sw1(), and xfr_rx_sw2().

Referenced by _sim_select().

Here is the call graph for this function:

Here is the caller graph for this function:

_private void _sms_decode ( struct _sms ,
const uint8_t *  ptr 
)

Variable Documentation

Generated on Sun Jan 2 08:35:56 2011 for ccid-utils by  doxygen 1.6.3