libosmosim 1.9.0.209-e0c63
Osmocom SIM library
card_fs_sim.c File Reference

classic SIM card specific structures/routines. More...

#include <errno.h>
#include <string.h>
#include <osmocom/sim/sim.h>
#include <osmocom/core/talloc.h>
#include <osmocom/gsm/gsm48.h>
#include "sim_int.h"

Functions

static int iccid_decode (struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
 
static int elp_decode (struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
 
int gsm_lp_decode (struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
 
int gsm_imsi_decode (struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
 
static int gsm_kc_decode (struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
 
static int gsm_plmnsel_decode (struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
 
int gsm_hpplmn_decode (struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
 
int osim_int_cprof_add_gsm (struct osim_file_desc *mf)
 
int osim_int_cprof_add_telecom (struct osim_file_desc *mf)
 
struct osim_card_profileosim_cprof_sim (void *ctx)
 

Variables

static const struct osim_card_sw ts11_11_sw []
 
static const struct osim_card_swsim_card_sws []
 
static const struct osim_file_desc sim_ef_in_mf []
 
static const struct osim_file_desc sim_ef_in_gsm []
 
static const struct osim_file_desc sim_ef_in_solsa []
 
static const struct osim_file_desc sim_ef_in_mexe []
 
static const struct osim_file_desc sim_ef_in_telecom []
 
const struct osim_file_desc sim_ef_in_graphics []
 

Detailed Description

classic SIM card specific structures/routines.

Function Documentation

◆ elp_decode()

static int elp_decode ( struct osim_decoded_data dd,
const struct osim_file_desc desc,
int  len,
uint8_t *  data 
)
static

◆ gsm_hpplmn_decode()

int gsm_hpplmn_decode ( struct osim_decoded_data dd,
const struct osim_file_desc desc,
int  len,
uint8_t *  data 
)

◆ gsm_imsi_decode()

int gsm_imsi_decode ( struct osim_decoded_data dd,
const struct osim_file_desc desc,
int  len,
uint8_t *  data 
)

◆ gsm_kc_decode()

static int gsm_kc_decode ( struct osim_decoded_data dd,
const struct osim_file_desc desc,
int  len,
uint8_t *  data 
)
static

◆ gsm_lp_decode()

int gsm_lp_decode ( struct osim_decoded_data dd,
const struct osim_file_desc desc,
int  len,
uint8_t *  data 
)

◆ gsm_plmnsel_decode()

static int gsm_plmnsel_decode ( struct osim_decoded_data dd,
const struct osim_file_desc desc,
int  len,
uint8_t *  data 
)
static

◆ iccid_decode()

static int iccid_decode ( struct osim_decoded_data dd,
const struct osim_file_desc desc,
int  len,
uint8_t *  data 
)
static

◆ osim_cprof_sim()

◆ osim_int_cprof_add_gsm()

int osim_int_cprof_add_gsm ( struct osim_file_desc mf)

◆ osim_int_cprof_add_telecom()

int osim_int_cprof_add_telecom ( struct osim_file_desc mf)

Variable Documentation

◆ sim_card_sws

const struct osim_card_sw* sim_card_sws[]
static
Initial value:
= {
NULL
}
static const struct osim_card_sw ts11_11_sw[]
Definition: card_fs_sim.c:32

Referenced by osim_cprof_sim().

◆ sim_ef_in_graphics

const struct osim_file_desc sim_ef_in_graphics[]
Initial value:
= {
EF_LIN_FIX_N(0x4F20, SFI_NONE, "EF.IMG", F_OPTIONAL, 11, 38,
"Image"),
}
#define SFI_NONE
Definition: sim.h:159
#define EF_LIN_FIX_N(fid, sfi, ns, flags, smin, srec, nl)
Convenience macros for defining EF.
Definition: sim.h:237
#define F_OPTIONAL
Definition: sim.h:157

Referenced by osim_int_cprof_add_telecom().

◆ sim_ef_in_gsm

const struct osim_file_desc sim_ef_in_gsm[]
static

Referenced by osim_int_cprof_add_gsm().

◆ sim_ef_in_mexe

const struct osim_file_desc sim_ef_in_mexe[]
static
Initial value:
= {
EF_TRANSP_N(0x4F40, SFI_NONE, "EF.MExE-ST", F_OPTIONAL, 1, 8,
"MExE Service table"),
EF_LIN_FIX_N(0x4F41, SFI_NONE, "EF.ORPK", F_OPTIONAL, 11, 32,
"Operator Root Public Key"),
EF_LIN_FIX_N(0x4F42, SFI_NONE, "EF.ARPK", F_OPTIONAL, 11, 32,
"Administrator Root Public Key"),
EF_LIN_FIX_N(0x4F43, SFI_NONE, "EF.TRPK", F_OPTIONAL, 11, 32,
"Third Party Root Public Key"),
}
#define EF_TRANSP_N(fid, sfi, ns, flags, smin, srec, nl)
Convenience macros for defining EF.
Definition: sim.h:219

Referenced by osim_int_cprof_add_gsm().

◆ sim_ef_in_mf

const struct osim_file_desc sim_ef_in_mf[]
static
Initial value:
= {
EF_TRANSP(0x2FE2, SFI_NONE, "EF.ICCID", 0, 10, 10,
"ICC Identification", &iccid_decode, NULL),
EF_TRANSP(0x2F05, SFI_NONE, "EF.PL", F_OPTIONAL, 2, 20,
"Preferred language", &elp_decode, NULL),
}
static int iccid_decode(struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
Definition: card_fs_sim.c:108
static int elp_decode(struct osim_decoded_data *dd, const struct osim_file_desc *desc, int len, uint8_t *data)
Definition: card_fs_sim.c:121
#define EF_TRANSP(fid, sfi, ns, flags, smin, srec, nl, dec, enc)
Convenience macros for defining EF.
Definition: sim.h:215

Referenced by osim_cprof_sim().

◆ sim_ef_in_solsa

const struct osim_file_desc sim_ef_in_solsa[]
static
Initial value:
= {
EF_TRANSP_N(0x4F30, SFI_NONE, "EF.SAI", F_OPTIONAL, 1, 32,
"SoLSA Access Indicator"),
EF_LIN_FIX_N(0x4F31, SFI_NONE, "EF.SLL", F_OPTIONAL, 1, 32,
"SoLSA LSA List"),
}

Referenced by osim_int_cprof_add_gsm().

◆ sim_ef_in_telecom

const struct osim_file_desc sim_ef_in_telecom[]
static

◆ ts11_11_sw

const struct osim_card_sw ts11_11_sw[]
static