[Pcsclite-muscle] Bug in CCID library

Abraham Macias Paredes amacias at solutia-it.es
Wed Oct 5 09:25:24 UTC 2016


Hi Ludovic,

I tested the patch that you attached and it works fine. And the “adapted speed is 125000 bauds”.

 

Final code:

 

                else

                {

                     /* the card is too fast for the reader */

                     if ((card_baudrate > ccid_desc->dwMaxDataRate +2)

                          /* but TA1 <= 97 */

                          && (atr.ib[0][ATR_INTERFACE_BYTE_TA].value <= 0x97))

                     {

                          unsigned char old_TA1;

 

 

                          old_TA1 = atr.ib[0][ATR_INTERFACE_BYTE_TA].value;

                          while (atr.ib[0][ATR_INTERFACE_BYTE_TA].value > 0x94)

                          {

                               /* use a lower TA1 */

                               atr.ib[0][ATR_INTERFACE_BYTE_TA].value--;

 

 

                               (void)ATR_GetParameter(&atr, ATR_PARAMETER_D, &d);

                               (void)ATR_GetParameter(&atr, ATR_PARAMETER_F, &f);

 

 

                               /* Baudrate = f x D/F */

                               card_baudrate = (unsigned int) (1000 *

                                     ccid_desc->dwDefaultClock * d / f);

 

 

                               /* the reader has a baud rate table */

                               if ((ccid_desc->arrayOfSupportedDataRates

                                     /* and the baud rate is supported */

                                     && find_baud_rate(card_baudrate,

                                    ccid_desc->arrayOfSupportedDataRates))

                                     /* or the reader has NO baud rate table */

                                     || ((NULL == ccid_desc->arrayOfSupportedDataRates)

                                     /* and the baud rate is bellow the limit */

                                     && (card_baudrate <= ccid_desc->dwMaxDataRate)))

                               {

                                     pps[1] |= 0x10; /* PTS1 presence */

                                     pps[2] = atr.ib[0][ATR_INTERFACE_BYTE_TA].value;

 

 

                                     DEBUG_COMM2("Set adapted speed to %d bauds",

                                          card_baudrate);

 

 

                                     break;

                               }

                          }

 

 

                          /* restore original TA1 value */

                          atr.ib[0][ATR_INTERFACE_BYTE_TA].value = old_TA1;

                     }

                }

          }

 

 

Thank you very much

 

 

 

De: Pcsclite-muscle [mailto:pcsclite-muscle-bounces+amacias=solutia-it.es at lists.alioth.debian.org] En nombre de Ludovic Rousseau
Enviado el: miércoles, 5 de octubre de 2016 10:52
Para: Talks about MUSCLE <pcsclite-muscle at lists.alioth.debian.org>
Asunto: Re: [Pcsclite-muscle] Bug in CCID library

 

Hello,
Thanks Godfrey for pointing to your version of the driver. I found the patch in:
https://github.com/acshk/acsccid/commit/4a7631d014781d36a2d21210b0b8768c07ef8c6d

I propose a simpler version.
Abraham can you test with the attached patch?

Bye

 

2016-10-05 9:53 GMT+02:00 Abraham Macias Paredes <amacias at solutia-it.es <mailto:amacias at solutia-it.es> >:

Hi, my reader is not an ACS one, is a C3PO LTC31 v2.

You can see more details in http://pcsclite.alioth.debian.org/ccid/supported.html

 

 

Thanks Godfrey.

 

De: Pcsclite-muscle [mailto:pcsclite-muscle-bounces+amacias <mailto:pcsclite-muscle-bounces%2Bamacias> =solutia-it.es at lists.alioth.debian.org <mailto:solutia-it.es at lists.alioth.debian.org> ] En nombre de Godfrey Chung
Enviado el: miércoles, 5 de octubre de 2016 9:27
Para: Talks about MUSCLE <pcsclite-muscle at lists.alioth.debian.org <mailto:pcsclite-muscle at lists.alioth.debian.org> >
Asunto: Re: [Pcsclite-muscle] Bug in CCID library

 

Hi Abraham

If you are using ACS readers, you can try acsccid driver and it already contains a fix for this issue.

 

On Wed, Oct 5, 2016 at 2:44 PM, Abraham Macias Paredes <amacias at solutia-it.es <mailto:amacias at solutia-it.es> > wrote:

 

But this sets the speed to 125000 bauds. How can I set the speed to 230400 bps (the reader maximum data rate)?


It depends on F/D values from the card. It cannot be set 230400 bps directly.

 

Regards

Godfrey 


_______________________________________________
Pcsclite-muscle mailing list
Pcsclite-muscle at lists.alioth.debian.org <mailto:Pcsclite-muscle at lists.alioth.debian.org> 
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pcsclite-muscle




-- 

 Dr. Ludovic Rousseau

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pcsclite-muscle/attachments/20161005/23b77a7c/attachment-0001.html>


More information about the Pcsclite-muscle mailing list