+1, I always wondered why I could got to the default driver anymore...
The quick fix would be to increase SC_MAX_CARD_DRIVERS A more generic solution, however, could be to change `struct _sc_ctx_options.cdrv` to grow dynamically. Everywhere where drivers are referenced a terminating NULL driver could be use to signal the end of the list (just as it is done in `internal_card_drivers`). Alternatively a `size_t` could indicate the length of the list. AFAICS, this limitation is caused by allowing externally loaded card drivers. Is this interface still supported? Does anyone use externally loadable drivers? On Wednesday, October 31 at 08:15PM, Leonardo Brondani Schenkel wrote: > > 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 > -- Frank Morgner Virtual Smart Card Architecture http://vsmartcard.sourceforge.net OpenPACE http://openpace.sourceforge.net IFD Handler for libnfc Devices http://sourceforge.net/projects/ifdnfc
pgp66z6kjmNmy.pgp
Description: PGP signature
_______________________________________________ opensc-devel mailing list opensc-devel@lists.opensc-project.org http://www.opensc-project.org/mailman/listinfo/opensc-devel