Remove unused SC_PKCS15EMU_FLAGS_NO_CHECK flag

Fixes #1634

Signed-off-by: Raul Metsma <raul@metsma.ee>
This commit is contained in:
Raul Metsma 2019-03-26 16:14:25 +02:00 committed by Frank Morgner
parent 3688dfe238
commit bbec50bfdb
23 changed files with 54 additions and 144 deletions

View File

@ -320,12 +320,7 @@ int sc_pkcs15emu_actalis_init_ex(sc_pkcs15_card_t * p15card,
struct sc_aid *aid, struct sc_aid *aid,
sc_pkcs15emu_opt_t * opts) sc_pkcs15emu_opt_t * opts)
{ {
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) if (actalis_detect_card(p15card))
return sc_pkcs15emu_actalis_init(p15card); return SC_ERROR_WRONG_CARD;
else { return sc_pkcs15emu_actalis_init(p15card);
int r = actalis_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_actalis_init(p15card);
}
} }

View File

@ -269,13 +269,7 @@ int sc_pkcs15emu_atrust_acos_init_ex(sc_pkcs15_card_t *p15card,
struct sc_aid *aid, struct sc_aid *aid,
sc_pkcs15emu_opt_t *opts) sc_pkcs15emu_opt_t *opts)
{ {
if (acos_detect_card(p15card))
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_atrust_acos_init(p15card); return sc_pkcs15emu_atrust_acos_init(p15card);
else {
int r = acos_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_atrust_acos_init(p15card);
}
} }

View File

@ -450,12 +450,7 @@ int sc_pkcs15emu_cac_init_ex(sc_pkcs15_card_t *p15card,
LOG_FUNC_CALLED(ctx); LOG_FUNC_CALLED(ctx);
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) if (cac_detect_card(p15card))
return sc_pkcs15emu_cac_init(p15card); return SC_ERROR_WRONG_CARD;
else { return sc_pkcs15emu_cac_init(p15card);
int r = cac_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_cac_init(p15card);
}
} }

View File

@ -724,14 +724,10 @@ sc_pkcs15emu_coolkey_init_ex(sc_pkcs15_card_t *p15card,
LOG_FUNC_CALLED(ctx); LOG_FUNC_CALLED(ctx);
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) rv = coolkey_detect_card(p15card);
rv = sc_pkcs15emu_coolkey_init(p15card); if (rv)
else { LOG_FUNC_RETURN(ctx, SC_ERROR_WRONG_CARD);
rv = coolkey_detect_card(p15card); rv = sc_pkcs15emu_coolkey_init(p15card);
if (rv)
LOG_FUNC_RETURN(ctx, SC_ERROR_WRONG_CARD);
rv = sc_pkcs15emu_coolkey_init(p15card);
}
LOG_FUNC_RETURN(ctx, rv); LOG_FUNC_RETURN(ctx, rv);
} }

View File

@ -267,10 +267,8 @@ int sc_pkcs15emu_din_66291_init_ex(sc_pkcs15_card_t *p15card, struct sc_aid *aid
SC_FUNC_CALLED(p15card->card->ctx, 1); SC_FUNC_CALLED(p15card->card->ctx, 1);
/* Check card */ /* Check card */
if (!(opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)) { if (!din_66291_match_p15card(p15card, aid))
if (!din_66291_match_p15card(p15card, aid)) return SC_ERROR_WRONG_CARD;
return SC_ERROR_WRONG_CARD;
}
/* Init card */ /* Init card */
return sc_pkcs15emu_din_66291_init(p15card); return sc_pkcs15emu_din_66291_init(p15card);

View File

@ -282,9 +282,6 @@ int sc_pkcs15emu_dnie_init_ex(sc_pkcs15_card_t * p15card,
LOG_FUNC_CALLED(ctx); LOG_FUNC_CALLED(ctx);
#if defined(ENABLE_OPENSSL) && defined(ENABLE_SM) #if defined(ENABLE_OPENSSL) && defined(ENABLE_SM)
/* if no check flag execute unconditionally */
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)
LOG_FUNC_RETURN(ctx, sc_pkcs15emu_dnie_init(p15card));
/* check for proper card */ /* check for proper card */
r = dnie_match_card(p15card->card); r = dnie_match_card(p15card->card);
if (r == 0) if (r == 0)

View File

@ -84,12 +84,7 @@ int sc_pkcs15emu_entersafe_init_ex(sc_pkcs15_card_t *p15card,
{ {
SC_FUNC_CALLED(p15card->card->ctx, SC_LOG_DEBUG_VERBOSE); SC_FUNC_CALLED(p15card->card->ctx, SC_LOG_DEBUG_VERBOSE);
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) if (entersafe_detect_card(p15card))
return sc_pkcs15emu_entersafe_init(p15card); return SC_ERROR_WRONG_CARD;
else { return sc_pkcs15emu_entersafe_init(p15card);
int r = entersafe_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_entersafe_init(p15card);
}
} }

View File

@ -215,8 +215,6 @@ int sc_pkcs15emu_esteid_init_ex(sc_pkcs15_card_t *p15card,
struct sc_aid *aid, struct sc_aid *aid,
sc_pkcs15emu_opt_t *opts) sc_pkcs15emu_opt_t *opts)
{ {
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)
return sc_pkcs15emu_esteid_init(p15card);
if (p15card->card->type == SC_CARD_TYPE_MCRD_ESTEID_V30) if (p15card->card->type == SC_CARD_TYPE_MCRD_ESTEID_V30)
return sc_pkcs15emu_esteid_init(p15card); return sc_pkcs15emu_esteid_init(p15card);
return SC_ERROR_WRONG_CARD; return SC_ERROR_WRONG_CARD;

View File

@ -517,12 +517,7 @@ int sc_pkcs15emu_gemsafeGPK_init_ex(sc_pkcs15_card_t *p15card, struct sc_aid *ai
sc_log(ctx, "Entering %s", __FUNCTION__); sc_log(ctx, "Entering %s", __FUNCTION__);
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) if (gemsafe_detect_card(p15card))
return sc_pkcs15emu_gemsafeGPK_init(p15card); return SC_ERROR_WRONG_CARD;
else { return sc_pkcs15emu_gemsafeGPK_init(p15card);
int r = gemsafe_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_gemsafeGPK_init(p15card);
}
} }

View File

@ -441,14 +441,9 @@ int sc_pkcs15emu_gemsafeV1_init_ex( sc_pkcs15_card_t *p15card,
struct sc_aid *aid, struct sc_aid *aid,
sc_pkcs15emu_opt_t *opts) sc_pkcs15emu_opt_t *opts)
{ {
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) if (gemsafe_detect_card(p15card))
return sc_pkcs15emu_gemsafeV1_init(p15card); return SC_ERROR_WRONG_CARD;
else { return sc_pkcs15emu_gemsafeV1_init(p15card);
int r = gemsafe_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_gemsafeV1_init(p15card);
}
} }
static sc_pkcs15_df_t * static sc_pkcs15_df_t *

View File

@ -233,14 +233,10 @@ int sc_pkcs15emu_gids_init_ex(sc_pkcs15_card_t *p15card,
struct sc_aid *aid, struct sc_aid *aid,
sc_pkcs15emu_opt_t *opts) sc_pkcs15emu_opt_t *opts)
{ {
if (opts && (opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)) { if (p15card->card->type != SC_CARD_TYPE_GIDS_GENERIC && p15card->card->type != SC_CARD_TYPE_GIDS_V1 && p15card->card->type != SC_CARD_TYPE_GIDS_V2) {
return sc_pkcs15emu_gids_init(p15card); return SC_ERROR_WRONG_CARD;
} else {
if (p15card->card->type != SC_CARD_TYPE_GIDS_GENERIC && p15card->card->type != SC_CARD_TYPE_GIDS_V1 && p15card->card->type != SC_CARD_TYPE_GIDS_V2) {
return SC_ERROR_WRONG_CARD;
}
return sc_pkcs15emu_gids_init(p15card);
} }
return sc_pkcs15emu_gids_init(p15card);
} }
#else #else

View File

@ -204,9 +204,6 @@ sc_pkcs15emu_iasecc_init (struct sc_pkcs15_card *p15card, struct sc_aid *aid)
int int
sc_pkcs15emu_iasecc_init_ex(struct sc_pkcs15_card *p15card, struct sc_aid *aid, struct sc_pkcs15emu_opt *opts) sc_pkcs15emu_iasecc_init_ex(struct sc_pkcs15_card *p15card, struct sc_aid *aid, struct sc_pkcs15emu_opt *opts)
{ {
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)
return sc_pkcs15emu_iasecc_init(p15card, aid);
if (iasecc_pkcs15emu_detect_card(p15card)) if (iasecc_pkcs15emu_detect_card(p15card))
return SC_ERROR_WRONG_CARD; return SC_ERROR_WRONG_CARD;

View File

@ -869,14 +869,12 @@ int sc_pkcs15emu_itacns_init_ex(sc_pkcs15_card_t *p15card, struct sc_aid *aid,
SC_FUNC_CALLED(card->ctx, 1); SC_FUNC_CALLED(card->ctx, 1);
/* Check card */ /* Check card */
if (!(opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)) { if (! (
if (! ( (card->type > SC_CARD_TYPE_ITACNS_BASE &&
(card->type > SC_CARD_TYPE_ITACNS_BASE && card->type < SC_CARD_TYPE_ITACNS_BASE + 1000)
card->type < SC_CARD_TYPE_ITACNS_BASE + 1000) || card->type == SC_CARD_TYPE_CARDOS_CIE_V1)
|| card->type == SC_CARD_TYPE_CARDOS_CIE_V1) )
) return SC_ERROR_WRONG_CARD;
return SC_ERROR_WRONG_CARD;
}
/* Init card */ /* Init card */
return itacns_init(p15card); return itacns_init(p15card);

View File

@ -226,13 +226,7 @@ int
sc_pkcs15emu_jpki_init_ex(sc_pkcs15_card_t * p15card, sc_pkcs15emu_jpki_init_ex(sc_pkcs15_card_t * p15card,
struct sc_aid *aid, sc_pkcs15emu_opt_t * opts) struct sc_aid *aid, sc_pkcs15emu_opt_t * opts)
{ {
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) { if (p15card->card->type != SC_CARD_TYPE_JPKI_BASE)
return sc_pkcs15emu_jpki_init(p15card); return SC_ERROR_WRONG_CARD;
} return sc_pkcs15emu_jpki_init(p15card);
else {
if (p15card->card->type != SC_CARD_TYPE_JPKI_BASE)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_jpki_init(p15card);
}
} }

View File

@ -1055,14 +1055,9 @@ sc_pkcs15emu_oberthur_init_ex(struct sc_pkcs15_card * p15card, struct sc_aid *ai
int rv; int rv;
LOG_FUNC_CALLED(p15card->card->ctx); LOG_FUNC_CALLED(p15card->card->ctx);
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) { rv = oberthur_detect_card(p15card);
if (!rv)
rv = sc_pkcs15emu_oberthur_init(p15card); rv = sc_pkcs15emu_oberthur_init(p15card);
}
else {
rv = oberthur_detect_card(p15card);
if (!rv)
rv = sc_pkcs15emu_oberthur_init(p15card);
}
LOG_FUNC_RETURN(p15card->card->ctx, rv); LOG_FUNC_RETURN(p15card->card->ctx, rv);
} }

View File

@ -465,12 +465,7 @@ static int openpgp_detect_card(sc_pkcs15_card_t *p15card)
int sc_pkcs15emu_openpgp_init_ex(sc_pkcs15_card_t *p15card, struct sc_aid *aid, int sc_pkcs15emu_openpgp_init_ex(sc_pkcs15_card_t *p15card, struct sc_aid *aid,
sc_pkcs15emu_opt_t *opts) sc_pkcs15emu_opt_t *opts)
{ {
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) if (openpgp_detect_card(p15card))
return sc_pkcs15emu_openpgp_init(p15card); return SC_ERROR_WRONG_CARD;
else { return sc_pkcs15emu_openpgp_init(p15card);
int r = openpgp_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_openpgp_init(p15card);
}
} }

View File

@ -1212,12 +1212,7 @@ int sc_pkcs15emu_piv_init_ex(sc_pkcs15_card_t *p15card,
SC_FUNC_CALLED(ctx, SC_LOG_DEBUG_VERBOSE); SC_FUNC_CALLED(ctx, SC_LOG_DEBUG_VERBOSE);
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) if (piv_detect_card(p15card))
return sc_pkcs15emu_piv_init(p15card); return SC_ERROR_WRONG_CARD;
else { return sc_pkcs15emu_piv_init(p15card);
int r = piv_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_piv_init(p15card);
}
} }

View File

@ -346,9 +346,6 @@ int sc_pkcs15emu_pteid_init_ex(sc_pkcs15_card_t *p15card, struct sc_aid *aid, sc
sc_context_t *ctx = p15card->card->ctx; sc_context_t *ctx = p15card->card->ctx;
LOG_FUNC_CALLED(ctx); LOG_FUNC_CALLED(ctx);
/* if no check flag execute unconditionally */
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)
LOG_FUNC_RETURN(ctx, sc_pkcs15emu_pteid_init(p15card));
/* check for proper card */ /* check for proper card */
r = pteid_detect_card(p15card->card); r = pteid_detect_card(p15card->card);
if (r == SC_ERROR_WRONG_CARD) if (r == SC_ERROR_WRONG_CARD)

View File

@ -1034,14 +1034,10 @@ int sc_pkcs15emu_sc_hsm_init_ex(sc_pkcs15_card_t *p15card,
struct sc_aid *aid, struct sc_aid *aid,
sc_pkcs15emu_opt_t *opts) sc_pkcs15emu_opt_t *opts)
{ {
if (opts && (opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)) { if (p15card->card->type != SC_CARD_TYPE_SC_HSM
return sc_pkcs15emu_sc_hsm_init(p15card); && p15card->card->type != SC_CARD_TYPE_SC_HSM_SOC
} else { && p15card->card->type != SC_CARD_TYPE_SC_HSM_GOID) {
if (p15card->card->type != SC_CARD_TYPE_SC_HSM return SC_ERROR_WRONG_CARD;
&& p15card->card->type != SC_CARD_TYPE_SC_HSM_SOC
&& p15card->card->type != SC_CARD_TYPE_SC_HSM_GOID) {
return SC_ERROR_WRONG_CARD;
}
return sc_pkcs15emu_sc_hsm_init(p15card);
} }
return sc_pkcs15emu_sc_hsm_init(p15card);
} }

View File

@ -276,13 +276,7 @@ int sc_pkcs15emu_starcert_init_ex(sc_pkcs15_card_t *p15card,
struct sc_aid *aid, struct sc_aid *aid,
sc_pkcs15emu_opt_t *opts) sc_pkcs15emu_opt_t *opts)
{ {
if (starcert_detect_card(p15card))
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK) return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_starcert_init(p15card); return sc_pkcs15emu_starcert_init(p15card);
else {
int r = starcert_detect_card(p15card);
if (r)
return SC_ERROR_WRONG_CARD;
return sc_pkcs15emu_starcert_init(p15card);
}
} }

View File

@ -499,11 +499,10 @@ int sc_pkcs15emu_tcos_init_ex(
sc_context_t *ctx = p15card->card->ctx; sc_context_t *ctx = p15card->card->ctx;
sc_serial_number_t serialnr; sc_serial_number_t serialnr;
char serial[30]; char serial[30];
int i, r; int r;
/* check if we have the correct card OS unless SC_PKCS15EMU_FLAGS_NO_CHECK */ /* check if we have the correct card OS unless SC_PKCS15EMU_FLAGS_NO_CHECK */
i=(opts && (opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)); if (card->type!=SC_CARD_TYPE_TCOS_V2 && card->type!=SC_CARD_TYPE_TCOS_V3) return SC_ERROR_WRONG_CARD;
if (!i && card->type!=SC_CARD_TYPE_TCOS_V2 && card->type!=SC_CARD_TYPE_TCOS_V3) return SC_ERROR_WRONG_CARD;
/* get the card serial number */ /* get the card serial number */
r = sc_card_ctl(card, SC_CARDCTL_GET_SERIALNR, &serialnr); r = sc_card_ctl(card, SC_CARDCTL_GET_SERIALNR, &serialnr);

View File

@ -253,8 +253,6 @@ int sc_pkcs15emu_westcos_init_ex(sc_pkcs15_card_t * p15card,
sc_context_t *ctx = card->ctx; sc_context_t *ctx = card->ctx;
sc_log(ctx, sc_log(ctx,
"sc_pkcs15_init_func_ex westcos\n"); "sc_pkcs15_init_func_ex westcos\n");
if (opts && opts->flags & SC_PKCS15EMU_FLAGS_NO_CHECK)
return sc_pkcs15emu_westcos_init(p15card);
r = westcos_detect_card(p15card); r = westcos_detect_card(p15card);
if (r) if (r)
return SC_ERROR_WRONG_CARD; return SC_ERROR_WRONG_CARD;

View File

@ -1009,8 +1009,6 @@ typedef struct sc_pkcs15emu_opt {
unsigned int flags; unsigned int flags;
} sc_pkcs15emu_opt_t; } sc_pkcs15emu_opt_t;
#define SC_PKCS15EMU_FLAGS_NO_CHECK 0x00000001
extern int sc_pkcs15_bind_synthetic(struct sc_pkcs15_card *, struct sc_aid *); extern int sc_pkcs15_bind_synthetic(struct sc_pkcs15_card *, struct sc_aid *);
extern int sc_pkcs15_is_emulation_only(sc_card_t *); extern int sc_pkcs15_is_emulation_only(sc_card_t *);