diff --git a/src/libopensc/pkcs15-infocamere.c b/src/libopensc/pkcs15-infocamere.c index 6532ffc5..71393cd1 100644 --- a/src/libopensc/pkcs15-infocamere.c +++ b/src/libopensc/pkcs15-infocamere.c @@ -787,7 +787,7 @@ static int infocamere_detect_card(sc_pkcs15_card_t * p15card) sc_card_t *card = p15card->card; /* check if we have the correct card OS */ - if (strcmp(card->name, "STARCOS SPK 2.3") + if (strcmp(card->name, "STARCOS") && strcmp(card->name, "CardOS M4")) return SC_ERROR_WRONG_CARD; return SC_SUCCESS; diff --git a/src/libopensc/pkcs15-starcert.c b/src/libopensc/pkcs15-starcert.c index 1c4110a7..2bd44958 100644 --- a/src/libopensc/pkcs15-starcert.c +++ b/src/libopensc/pkcs15-starcert.c @@ -106,7 +106,7 @@ static int starcert_detect_card(sc_pkcs15_card_t *p15card) sc_card_t *card = p15card->card; /* check if we have the correct card OS */ - if (strcmp(card->name, "STARCOS SPK 2.3")) + if (strcmp(card->name, "STARCOS")) return SC_ERROR_WRONG_CARD; /* read EF_Info file */ sc_format_path("3F00FE13", &path); diff --git a/src/pkcs15init/pkcs15-lib.c b/src/pkcs15init/pkcs15-lib.c index 1f7f7fb8..04370ce9 100644 --- a/src/pkcs15init/pkcs15-lib.c +++ b/src/pkcs15init/pkcs15-lib.c @@ -3893,7 +3893,7 @@ do_select_parent(struct sc_profile *profile, struct sc_pkcs15_card *p15card, r = sc_select_file(p15card->card, &path, NULL); LOG_TEST_RET(ctx, r, "Cannot select parent DF"); } - else if (r == SC_SUCCESS && !strcmp(p15card->card->name, "STARCOS SPK 2.3")) { + else if (r == SC_SUCCESS && !strcmp(p15card->card->name, "STARCOS")) { /* in case of starcos spk 2.3 SELECT FILE does not * give us the ACLs => ask the profile */ sc_file_free(*parent); diff --git a/src/pkcs15init/starcos.profile b/src/pkcs15init/starcos.profile index af4d6174..2a2a6f2b 100644 --- a/src/pkcs15init/starcos.profile +++ b/src/pkcs15init/starcos.profile @@ -10,7 +10,7 @@ cardinfo { option default { macros { so-pin-flags = initialized, needs-padding, soPin; - isf_acl = WRITE=$SOPIN; + isf_acl = WRITE=$SOPIN, CREATE=$SOPIN; df_acl = *=$SOPIN; } }