Hello,

My cards used to work with OpenSC 0.12.2 but stopped working entirely 
after an upgrade to 0.13. After some investigation I found out that the 
default driver is disabled on 0.13 because there are more drivers listed 
in ctx.c:

static const struct _sc_driver_entry internal_card_drivers[] = {
{ "cardos",     (void *(*)(void)) sc_get_cardos_driver },
{ "flex",       (void *(*)(void)) sc_get_cryptoflex_driver },
{ "cyberflex",  (void *(*)(void)) sc_get_cyberflex_driver },
#ifdef ENABLE_OPENSSL
{ "gpk",        (void *(*)(void)) sc_get_gpk_driver },
#endif
{ "gemsafeV1",  (void *(*)(void)) sc_get_gemsafeV1_driver },
{ "miocos",     (void *(*)(void)) sc_get_miocos_driver },
{ "mcrd",       (void *(*)(void)) sc_get_mcrd_driver },
{ "asepcos",    (void *(*)(void)) sc_get_asepcos_driver },
{ "starcos",    (void *(*)(void)) sc_get_starcos_driver },
{ "tcos",       (void *(*)(void)) sc_get_tcos_driver },
{ "openpgp",    (void *(*)(void)) sc_get_openpgp_driver },
{ "jcop",       (void *(*)(void)) sc_get_jcop_driver },
#ifdef ENABLE_OPENSSL
{ "oberthur",   (void *(*)(void)) sc_get_oberthur_driver },
{ "authentic",  (void *(*)(void)) sc_get_authentic_driver },
{ "iasecc",     (void *(*)(void)) sc_get_iasecc_driver },
#endif
{ "belpic",     (void *(*)(void)) sc_get_belpic_driver },
{ "ias",        (void *(*)(void)) sc_get_ias_driver },
{ "incrypto34", (void *(*)(void)) sc_get_incrypto34_driver },
{ "acos5",      (void *(*)(void)) sc_get_acos5_driver },
{ "akis",       (void *(*)(void)) sc_get_akis_driver },
#ifdef ENABLE_OPENSSL
{ "entersafe",(void *(*)(void)) sc_get_entersafe_driver },
#ifdef ENABLE_SM
{ "epass2003",(void *(*)(void)) sc_get_epass2003_driver },
#endif
#endif
{ "rutoken",    (void *(*)(void)) sc_get_rutoken_driver },
{ "rutoken_ecp",(void *(*)(void)) sc_get_rtecp_driver },
{ "westcos",    (void *(*)(void)) sc_get_westcos_driver },
{ "myeid", (void *(*)(void)) sc_get_myeid_driver },
{ "sc-hsm",     (void *(*)(void)) sc_get_sc_hsm_driver },

/* Here should be placed drivers that need some APDU transactions to
* recognise its cards. */
{ "setcos",     (void *(*)(void)) sc_get_setcos_driver },
{ "muscle",     (void *(*)(void)) sc_get_muscle_driver },
{ "atrust-acos",(void *(*)(void)) sc_get_atrust_acos_driver },
{ "PIV-II",     (void *(*)(void)) sc_get_piv_driver },
{ "itacns",     (void *(*)(void)) sc_get_itacns_driver },
/* javacard without supported applet - last before default */
{ "javacard",   (void *(*)(void)) sc_get_javacard_driver },
/* The default driver should be last, as it handles all the
* unrecognized cards. */
{ "default",    (void *(*)(void)) sc_get_default_driver },
{ NULL, NULL }
};

than the limit defined in types.h:

#define SC_MAX_CARD_DRIVERS             32

So the binary from the website ignores all drivers that come after 
"PIV-II". Since my cards use the default driver, 0.13 is completely 
unusable to me.

I filed a ticket:
https://www.opensc-project.org/opensc/ticket/457

Why is the limit so low? Shouldn't it be bumped to at least 64 or 128?
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to