Hello,

my (actually fully supported) Cryptoflex 32K v4 card is not detected because of a bug with ATR masking:

card.c:188:sc_connect_card: trying driver: flex
card.c:746:match_atr_table: ATR     : 3b:95:18:40:ff:64:02:01:01:02
card.c:754:match_atr_table: ATR try : 3b:95:15:40:20:68:01:02:00:00
card.c:754:match_atr_table: ATR try : 3B:95:15:40:FF:68:01:02:02:01
card.c:754:match_atr_table: ATR try : 3B:95:15:40:FF:68:01:02:02:04
card.c:754:match_atr_table: ATR try : 3B:85:40:20:68:01:01:05:01
card.c:754:match_atr_table: ATR try : 3B:95:94:40:FF:63:01:01:02:01
card.c:754:match_atr_table: ATR try : 3B:95:15:40:FF:63:01:01:02:01
card.c:763:match_atr_table: ATR mask: FF:FF:FF:FF:FF:FF:FF:FF:00:00
card.c:754:match_atr_table: ATR try : 3B:95:18:40:FF:64:02:01:01:02 <---
card.c:763:match_atr_table: ATR mask: FF:FF:FF:FF:FF:FF:FF:FF:00:00
card.c:754:match_atr_table: ATR try : 3B:95:18:40:FF:62:01:01:00:00
....
The respective ATR bits have to be set to 0 (or card.c around line 776 would have to be modified).
Please find below a patch which detects those Cryptoflex cards again.

Best regards,
Heiko


--- trunk/src/libopensc/card-flex.c     2007-01-07 19:00:58.000000000 +0100
+++ trunk1/src/libopensc/card-flex.c    2007-01-07 18:47:55.000000000 +0100
@@ -40,14 +40,14 @@
       /* "16K+SS1" alias Cryptoflex 16 card with Standard Softmask V1 */
       /* (taken from Cryptoflex Card Programmers Guide 4.5 Page xviii) */
       /* last two bytes can be ignored - version of the softmask */
-       { "3B:95:15:40:FF:63:01:01:02:01", "FF:FF:FF:FF:FF:FF:FF:FF:00:00",
+       { "3B:95:15:40:FF:63:01:01:00:00", "FF:FF:FF:FF:FF:FF:FF:FF:00:00",
               "Cryptoflex 16K", SC_CARD_TYPE_FLEX_CRYPTO,
               SC_CARD_FLAG_ONBOARD_KEY_GEN, NULL },
       /* 32K v4 */
       /* "32K+SS1" alias Cryptoflex 32 card with Standard Softmask V1 */
       /* (taken from Cryptoflex Card Programmers Guide 4.5 Page xviii) */
       /* last two bytes can be ignored - version of the softmask */
-       { "3B:95:18:40:FF:64:02:01:01:02","FF:FF:FF:FF:FF:FF:FF:FF:00:00",
+       { "3B:95:18:40:FF:64:02:01:00:00","FF:FF:FF:FF:FF:FF:FF:FF:00:00",
               "Cryptoflex 32K v4", SC_CARD_TYPE_FLEX_CRYPTO,
               SC_CARD_FLAG_ONBOARD_KEY_GEN, NULL },
       /* "32K+e-gate" alias Cryptoflex e-gate 32K card */





_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to