[Pcsclite-muscle] OMNIKEY AG 3121 USB not working with libccid 1.4.17 and PCSC-Lite 1.8.11

Ludovic Rousseau ludovic.rousseau
Tue Jul 15 05:22:49 PDT 2014


Hello,

2014-07-15 13:49 GMT+02:00 Maximilian Stein <maximilian.stein at secunet.com>:
> Thank you for the quick and simple reply. I don't like to be pedantic
> but in the release version of libccid 1.4.17 the line in question is
> line 53. I replaced that line as you said and the new Omnikey 3121
> (product ID 3022) works, BUT now the identical error as described before
> occurs for the older revision of the reader (product ID 0x3021). The log
> file is attached as log-new.txt if it is of interest.

That was expected.

> I now removed the special treatment of the reader completely from
> src/ccid.c like in the attached file omnikey3121.patch (and shown
> below). With that patch both readers work and can transact APDUs. For
> the record, the CCID driver implicitly uses T=0 for both readers with
> the patch applied. Additionally I can confirm that the new revision
> (product ID 3022) supports extended APDUs with the patched libccid 1.4.17.
>
> When I get this right, the special treatment (hack) for the
> CARDMAN3121+1 was never used, because there was no reader with the
> respective ID (0x076B3022). I might be wrong here and there might
> actually was a legacy version of the Omnikey 3121 with the product ID
> 3022, but I am in strong doubt about this. When editing src/ccid.c as
> you said, the implemented "hack" is applied for the old reader revision
> which seems to be incorrect as well. So I wonder why this special
> treatment was implemented in the first place and if it is safe to remove
> it completely.

This patch is present since the oldest version of ccid.c in the
subversion repository [1]. That was in 2003.
I do no remember why I added such code. So it is a good idea to remove
it since it does not solve anything but creates problems.

Thanks for your tests.

[1] http://anonscm.debian.org/viewvc/pcsclite/trunk/Drivers/ccid/src/ccid.c?view=markup&pathrev=413

> P.S. The SELECT-APDU that is sent in the pcsc-lite/src/testpcsc test
> program is malformed, because the given P2 requests a FCI struct as
> response but Le is not present in the APDU. I propose to change lines
> 267-268 from:
>    send_length = 7;
>    memcpy(bSendBuffer, "\x00\xA4\x00\x00\x02\x3F\x00", send_length);
> to:
>    send_length = 8;
>    memcpy(bSendBuffer, "\x00\xA4\x00\x00\x02\x3F\x00\x00", send_length);

APDU Case 4 are problematic with PC/SC.
I will make more tests.

Thanks

-- 
 Dr. Ludovic Rousseau




More information about the pcsclite-muscle mailing list