aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-03-21 13:40:28 +0100
committerHarald Welte <laforge@osmocom.org>2020-03-21 16:31:17 +0100
commit58d173ade11d9d5fa7865edc4277450ff5794f52 (patch)
tree45a1cd8cde4c4e81a03458266992c650f90fdfec
parent429adecfd8e817b1d3d4eb9590ee0e351696bad9 (diff)
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
-rw-r--r--src/sim/card_fs_uicc.c11
-rw-r--r--src/sim/card_fs_usim.c9
-rw-r--r--utils/osmo-sim-test.c4
3 files changed, 12 insertions, 12 deletions
diff --git a/src/sim/card_fs_uicc.c b/src/sim/card_fs_uicc.c
index c73fc9a2..5dcaaa12 100644
--- a/src/sim/card_fs_uicc.c
+++ b/src/sim/card_fs_uicc.c
@@ -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;
}
diff --git a/src/sim/card_fs_usim.c b/src/sim/card_fs_usim.c
index 97f712ac..d5d27364 100644
--- a/src/sim/card_fs_usim.c
+++ b/src/sim/card_fs_usim.c
@@ -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;
}
diff --git a/utils/osmo-sim-test.c b/utils/osmo-sim-test.c
index e71d0ef1..6cf36a6a 100644
--- a/utils/osmo-sim-test.c
+++ b/utils/osmo-sim-test.c
@@ -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 */