Hello Jean-Pierre, Frank,

Le 27/05/2011 17:27, JP Szikora a écrit :
Hi Viktor,
The change that you pushed in OpenSC SVN r5237 breaks completely the support 
for Belgian eID (eidenv, pkcs15-tool, opensc-pksc11.so usage with Firefox is 
not working anymore after this revision).


Could you test the attached patch, please ?

Kind regards,
Viktor.






Index: src/libopensc/iso7816.c
===================================================================
--- src/libopensc/iso7816.c     (révision 5507)
+++ src/libopensc/iso7816.c     (copie de travail)
@@ -122,8 +122,7 @@
        }
 
        assert(count <= (card->max_recv_size > 0 ? card->max_recv_size : 256));
-       sc_format_apdu(card, &apdu, SC_APDU_CASE_2_SHORT, 0xB0,
-                      (idx >> 8) & 0x7F, idx & 0xFF);
+       sc_format_apdu(card, &apdu, SC_APDU_CASE_2_SHORT, 0xB0, (idx >> 8) & 
0x7F, idx & 0xFF);
        apdu.le = count;
        apdu.resplen = count;
        apdu.resp = recvbuf;
@@ -141,9 +140,10 @@
 
        if (apdu.resplen < count)   {
                r = iso7816_read_binary(card, idx + apdu.resplen, buf + 
apdu.resplen, count - apdu.resplen, flags);
-               SC_TEST_RET(ctx, SC_LOG_DEBUG_NORMAL, r, "APDU transmit 
failed");
-
-               apdu.resplen += r;
+               if (r == SC_ERROR_CORRUPTED_DATA)
+                       SC_TEST_RET(ctx, SC_LOG_DEBUG_NORMAL, r, "APDU transmit 
failed");
+               else if (r > 0)
+                       apdu.resplen += r;
        }
 
        SC_FUNC_RETURN(ctx, SC_LOG_DEBUG_VERBOSE, apdu.resplen);
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to