osmo-sim-test: Also [attempt to] dump DF.GSM on USIM cards

an USIM application can very well exist on a UICC without supporting
classic DF.GSM access.  However, most commonly, both are found on
cards.

Change-Id: I6180a3f81a7d3006e8ece4302c2433db2588bfaa
This commit is contained in:
Harald Welte 2020-03-21 13:40:28 +01:00
parent 429adecfd8
commit 58d173ade1
3 changed files with 12 additions and 12 deletions

View File

@ -231,7 +231,7 @@ const struct tlv_definition ts102221_fcp_tlv_def = {
/* Annex E - TS 101 220 */
static const uint8_t __attribute__((__unused__)) adf_uicc_aid[] = { 0xA0, 0x00, 0x00, 0x00, 0x87, 0x10, 0x01 };
struct osim_card_profile *osim_cprof_uicc(void *ctx)
struct osim_card_profile *osim_cprof_uicc(void *ctx, bool have_df_gsm)
{
struct osim_card_profile *cprof;
struct osim_file_desc *mf;
@ -255,5 +255,14 @@ struct osim_card_profile *osim_cprof_uicc(void *ctx)
return NULL;
}
if (have_df_gsm) {
/* DF.GSM as sub-directory of MF */
rc = osim_int_cprof_add_gsm(mf);
if (rc != 0) {
talloc_free(cprof);
return NULL;
}
}
return cprof;
}

View File

@ -345,14 +345,5 @@ struct osim_card_app_profile *osim_aprof_usim(void *ctx)
/* OMA BCAST Smart Card Profile */
add_df_with_ef(uadf, 0x5F80, "DF.BCAST", NULL, 0);
#if 0
/* DF.GSM as sub-directory of MF */
rc = osim_int_cprof_add_gsm(mf);
if (rc != 0) {
talloc_free(cprof);
return NULL;
}
#endif
return aprof;
}

View File

@ -341,7 +341,7 @@ static int osim_uicc_scan_apps(struct osim_chan_hdl *st)
extern struct osim_card_profile *osim_cprof_sim(void *ctx);
extern struct osim_card_profile *osim_cprof_uicc(void *ctx);
extern struct osim_card_profile *osim_cprof_uicc(void *ctx, bool have_df_gsm);
static int dump_file(struct osim_chan_hdl *chan, const char *short_name, uint16_t fid)
{
@ -652,7 +652,7 @@ int main(int argc, char **argv)
rc = osim_uicc_scan_apps(chan);
if (rc >= 0) {
chan->card->prof = osim_cprof_uicc(chan->card);
chan->card->prof = osim_cprof_uicc(chan->card, true);
chan->cwd = chan->card->prof->mf;
} else if (rc == -0x6e00) {
/* CLA not supported: must be classic SIM, not USIM */