On 16/03/07, Douglas E. Engert <[EMAIL PROTECTED]> wrote:
Can you run the command that is listed in the new opensc.conf:
# This sets the maximum send and receive sizes.
# Some reader drivers have limitations, so you need
# to set these values. For usb devices check the
# properties with lsusb -vv for dwMaxIFSD
(Although I tried this on my GemPC Twin, and it says 254
but works with the 256.)
You are confusing dwMaxIFSD: and dwMaxCCIDMessageLength:
dwMaxIFSD is for T=1 cards only. It is the maximum size of a block
accepted by the reader.
dwMaxCCIDMessageLength is for both T=0 and T=1 cards and should not
be smaller than dwMaxIFSD+10. It is the maximum size of a CCID frame
(APDU plus CCID header of 10 bytes)
For a T=0 card the application shall not send APDU longer than
dwMaxCCIDMessageLength-10. The application can get the maximum length
using SCARD_ATTR_MAXINPUT request [1].
Developers:
I think it is a good idea to have the default set large and let
the card or reader drivers lower it.
Using PC/SC the driver can't lower it. It can just let the application
request the maximum size. Maybe we should add a new PC/SC error code
like SCARD_E_APDU_SIZE_EXCEEDED.
Another possible answer is: do not use limited/bogus/non-ISO smart card readers.
Bye
[1]
http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/SCARDGETATTRIB.txt?op=file&rev=0&sc=0
--
Dr. Ludovic Rousseau
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel