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

Maximilian Stein maximilian.stein at secunet.com
Tue Jul 15 11:49:35 UTC 2014


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.

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.

Best regards
Maximilian


omnikey3121.patch
====

--- ccid-1.4.17/src/ccid.c.orig	2014-07-15 13:29:35.559814664 +0200
+++ ccid-1.4.17/src/ccid.c	2014-07-15 13:30:26.467813538 +0200
@@ -50,12 +50,13 @@

 	switch (ccid_descriptor->readerID)
 	{
+#if 0
 		case CARDMAN3121+1:
 			/* Reader announces APDU but is in fact TPDU */
 			ccid_descriptor->dwFeatures &= ~CCID_CLASS_EXCHANGE_MASK;
 			ccid_descriptor->dwFeatures |= CCID_CLASS_TPDU;
 			break;
-
+#endif
 		case MYSMARTPAD:
 			ccid_descriptor->dwMaxIFSD = 254;
 			break;

====  // omnikey3121-patch.txt



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);



14.07.2014 20:24, Ludovic Rousseau:
> Hello,
> 
> Thanks for the extensive bug report. I appreciate.
> 
> In the CCID driver, edit the file src/ccid.c and at line 61 replace:
>         case CARDMAN3121+1:
> by
>         case CARDMAN3121:
> 
> Bye
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: omnikey3121.patch
Type: text/x-patch
Size: 480 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pcsclite-muscle/attachments/20140715/59f6893a/attachment-0001.bin>
-------------- next part --------------
00000000 debuglog.c:295:DebugLogSetLevel() debug level=debug
00000034 debuglog.c:324:DebugLogSetCategory() Debug options: APDU
00002814 configfile.l:339:DBGetReaderList() Parsing conf file: /usr/local/etc/reader.conf.d
00000012 pcscdaemon.c:571:main() pcsc-lite 1.8.11 daemon ready.
00000839 hotplug_libudev.c:295:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0001, path: /dev/bus/usb/002/001
00000079 hotplug_libudev.c:295:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
02802253 winscard_msg_srv.c:256:ProcessEventsServer() Common channel packet arrival
00000031 winscard_msg_srv.c:268:ProcessEventsServer() ProcessCommonChannelRequest detects: 5
00000005 pcscdaemon.c:137:SVCServiceRunLoop() A new context thread creation is requested: 5
00000041 winscard_svc.c:334:ContextThread() Authorized PC/SC client
00000022 winscard_svc.c:338:ContextThread() Thread is started: dwClientID=5, threadContext @0x1237ea0
00000103 winscard_svc.c:356:ContextThread() Received command: CMD_VERSION from client 5
00000018 winscard_svc.c:368:ContextThread() Client is protocol version 4:3
00000005 winscard_svc.c:388:ContextThread() CMD_VERSION rv=0x0 for client 5
00000031 winscard_svc.c:356:ContextThread() Received command: ESTABLISH_CONTEXT from client 5
00000020 winscard.c:219:SCardEstablishContext() Establishing Context: 0x5BA20426
00000005 winscard_svc.c:449:ContextThread() ESTABLISH_CONTEXT rv=0x0 for client 5
00000669 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 5
00000273 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 5
00000052 winscard_svc.c:356:ContextThread() Received command: CMD_WAIT_READER_STATE_CHANGE from client 5
03924185 hotplug_libudev.c:295:get_driver() Looking for a driver for VID: 0x076B, PID: 0x3021, path: /dev/bus/usb/002/011
00000022 hotplug_libudev.c:347:HPAddDevice() Adding USB device: OMNIKEY AG CardMan 3121
00000031 readerfactory.c:1015:RFInitializeReader() Attempting startup of OMNIKEY AG CardMan 3121 00 00 using /usr/local/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
00000129 readerfactory.c:900:RFBindFunctions() Loading IFD Handler 3.0
00000027 ifdhandler.c:1910:init_driver() Driver version: 1.4.17
00000332 ifdhandler.c:1927:init_driver() LogLevel: 0x0003
00000007 ifdhandler.c:1938:init_driver() DriverOptions: 0x0000
00000062 ifdhandler.c:1951:init_driver() LogLevel from LIBCCID_ifdLogLevel: 0x000F
00000006 ifdhandler.c:83:CreateChannelByNameOrChannel() Lun: 0, device: usb:076b/3021:libudev:0:/dev/bus/usb/002/011
00000007 ccid_usb.c:236:OpenUSBByName() Reader index: 0, Device: usb:076b/3021:libudev:0:/dev/bus/usb/002/011
00000015 ccid_usb.c:268:OpenUSBByName() interface_number: 0
00000006 ccid_usb.c:284:OpenUSBByName() Using: /usr/local/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
00000281 ccid_usb.c:302:OpenUSBByName() ifdManufacturerString: Ludovic Rousseau (ludovic.rousseau at free.fr)
00000006 ccid_usb.c:303:OpenUSBByName() ifdProductString: Generic CCID driver
00000004 ccid_usb.c:304:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later version.
00000251 ccid_usb.c:433:OpenUSBByName() Checking device: 2/11
00000006 ccid_usb.c:495:OpenUSBByName() Trying to open USB bus/device: 2/11
00000146 ccid_usb.c:596:OpenUSBByName() Found Vendor/Product: 076B/3021 (OMNIKEY AG CardMan 3121)
00000007 ccid_usb.c:598:OpenUSBByName() Using USB bus/device: 2/11
00000007 ccid_usb.c:1157:ControlUSB() request: 0x03
00016207 receive: 00 2A 00 00 01 54 00 00 02 A8 00 00 05 50 01 00 0B A0 02 00 16 40 05 00 08 F8 01 00 0D 48 03 00 67 32 00 00 CE 64 00 00 9C C9 00 00 39 93 01 00 73 26 03 00 E7 4C 06 00 D6 5C 02 00 10 F0 03 00 00 1C 00 00 00 38 00 00 01 70 00 00 03 E0 00 00 07 C0 01 00 0E 80 03 00 09 30 02 00 9A 21 00 00 34 43 00 00 68 86 00 00 D1 0C 01 00 A2 19 02 00 44 33 04 00 00 15 00 00 04 FC 00 00 06 A4 01 00 33 19 00 00 6B 2E 01 00 80 1F 00 00 01 3F 00 00 02 7E 00 00 06 7A 01 00 0A 76 02 00 00 0E 00 00 04 18 01 00 CD 10 00 00 80 0A 00 00 03 D2 00 00 99 0C 00 00 35 97 00 00 C0 0F 00 00 03 BD 00 00 05 3B 01 00 66 08 00 00 14 0A 00 00 29 14 00 00 52 28 00 00 A5 50 00 00 4A A1 00 00 94 42 01 00 F7 78 00 00 84 1E 00 00 09 3D 00 00 12 7A 00 00 24 F4 00 00 48 E8 01 00 90 D0 03 00 36 6E 01 00 5A 62 02 00 9F 24 00 00 3E 49 00 00 7C 92 00 00 F8 24 01 00 F0 49 02 00 E0 93 04 00 74 B7 01 00 6C DC 02 00 58 14 00 00 B0 28 00 00 61 51 00 00 C2 A2 00 00 85 45 01 00 0A 8B 02 00 E6 96 01 00 6A 18 00 00 D4 30 00 00 A8 61 00 00 50 C3 00 00 A0 86 01 00 40 0D 03 00 42 0F 00 00 1B B7 00 00 2D 31 01 00 4F 12 00 00 BA DB 00 00 E3 16 00 00 C6 2D 00 00 8D 5B 00 00 A8 12 01 00 C3 C9 01 00 2C 0A 00 00 73 CB 00 00 35 0C 00 00 A1 07 00 00 96 98 00 00 27 09 00 00 DD 6D 00 00 71 0B 00 00 54 89 00 00 E1 E4 00 00 C4 26 00 00 89 4D 00 00 12 9B 00 00 25 36 01 00 38 D1 01 00 D8 19 00 00 B0 33 00 00 61 67 00 00 C3 CE 00 00 87 9D 01 00 62 13 00 00 9C E8 00 00 AF 83 01 00 EC 0C 00 00 74 02 01 00 B1 09 00 00 4E 74 00 00 D7 C1 00 00 C0 07 00 00 81 0F 00 00 03 1F 00 00 07 3E 00 00 0F 7C 00 00 1E F8 00 00 0B 5D 00 00 2A 1C 00 00 55 38 00 00 AB 70 00 00 57 E1 00 00 AF C2 01 00 03 52 01 00 C7 12 00 00 8E 25 00 00 1D 4B 00 00 3A 96 00 00 74 2C 01 00 91 77 01 00 15 0E 00 00 01 A9 00 00 AD 19 01 00 63 09 00 00 C8 BB 00 00 0A 07 00 00 80 54 00 00 D6 8C 00 00 43 AB 01 53 B6 F7 53 AB FE 85 AC 21 30 55 05 30 54 07 A1 C4 20 54 02 A1 C4 EF 33 D2 0A 92 0B 85 21 AC C2 0A 85 21 AC 33 D2 0A 92 0B 85 21 AC C2 0A 85 21 AC 33 D2 0A 92 0B 85 21 AC C2 0A 85 21 AC 33 D2 0A 92 0B 85 21 AC C2 0A 85 21 AC 33 D2 0A 92 0B 85 21 AC C2 0A 85 21 AC 33 D2 0A 92 0B 85 21 AC C2 0A 85 21 AC 33 D2 0A 92 0B 85 21 AC C2 0A 85 21 AC 33 D2 0A 92 0B 85 21 AC C2 0A 85 21 AC 30 55 05 D2 0A 85 21 AC D2 0B 85 21 AC 43 AB 01 43 B6 08 53 AB FE 22 EF 33 C2 0A 92 0B 85 21 AC D2 0A 85 21 AC 33 C2 0A 92 0B 85 21 AC D2 0A 85 21 AC 33 C2 0A 92 0B 85 21 AC D2 0A 85 21 AC 33 C2 0A 92 0B 85 21 AC D2 0A 85 21 AC 33 C2 0A 92 0B 85 21 AC D2 0A 85 21 AC 33 C2 0A 92 0B 85 21 AC D2 0A 85 21 AC 33 C2 0A 92 0B 85 21 AC D2 0A 85 21 AC 33 C2 0A 92 0B 85 21 AC D2 0A 85 21 AC 20 55 05 C2 0A 85 21 AC D2 0B 85 21 AC 43 AB 01 43 B6 08 53 AB FE 22 30 55 05 20 54 07 C1 BB 30 54 02 C1 BB 53 AC FB 43 AC 0C 00 E5 AC 53 AC FB A2 E3 43 AC 0C 92 0F E5 AC 53 AC FB A2 E3 43 AC 0C 92 0E E5 AC 53 AC FB A2 E3 43 AC 0C 92 0D E5 AC 53 AC FB A2 E3 43 AC 0C 92 0C E5 AC 53 AC FB A2 E3 43 AC 0C 92 0B E5 AC 53 AC FB A2 E3 43 AC 0C 92 0A E5 AC 53 AC FB A2 E3 43 AC 0C 92 09 E5 AC A2 E3 92 08 20 55 03 53 AC FB AF 21 22 43 AC 04 53 AC FB 00 E5 AC 43 AC 04 A2 E3 53 AC FB 92 0F E5 
00000028 ccid_usb.c:1119:get_data_rates() Got 256 data rates but was expecting 106
00000007 ccid_usb.c:1137:get_data_rates() declared: 10752 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 21505 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 43010 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 86021 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 172043 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 344086 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 129032 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 215053 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 12903 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 25806 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 51612 bps
00000024 ccid_usb.c:1137:get_data_rates() declared: 103225 bps
00000004 ccid_usb.c:1137:get_data_rates() declared: 206451 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 412903 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 154838 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 258064 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 7168 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 14336 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 28673 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 57347 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 114695 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 229390 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 143369 bps
00000007 ccid_usb.c:1137:get_data_rates() declared: 8602 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 17204 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 34408 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 68817 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 137634 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 275268 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 5376 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 64516 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 107526 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 6451 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 77419 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 8064 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 16129 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 32258 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 96774 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 161290 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 3584 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 71684 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 4301 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 2688 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 53763 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 3225 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 38709 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 4032 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 48387 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 80645 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 2150 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 2580 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 5161 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 10322 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 20645 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 41290 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 82580 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 30967 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 7812 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 15625 bps
00000020 ccid_usb.c:1137:get_data_rates() declared: 31250 bps
00000004 ccid_usb.c:1137:get_data_rates() declared: 62500 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 125000 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 250000 bps
00000006 ccid_usb.c:1137:get_data_rates() declared: 93750 bps
00000007 ccid_usb.c:1137:get_data_rates() declared: 156250 bps
00000004 ccid_usb.c:1137:get_data_rates() declared: 9375 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 18750 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 37500 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 75000 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 150000 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 300000 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 112500 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 187500 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 5208 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 10416 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 20833 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 41666 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 83333 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 166666 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 104166 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 6250 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 12500 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 25000 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 50000 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 100000 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 200000 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 3906 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 46875 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 78125 bps
00000007 ccid_usb.c:1137:get_data_rates() declared: 4687 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 56250 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 5859 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 11718 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 23437 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 70312 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 117187 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 2604 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 52083 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 3125 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 1953 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 39062 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 2343 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 28125 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 2929 bps
00000003 ccid_usb.c:1137:get_data_rates() declared: 35156 bps
00000002 ccid_usb.c:1137:get_data_rates() declared: 58593 bps
00005579 ccid_usb.c:1210:InterruptRead() before (0)
00015906 ccid_usb.c:1254:InterruptRead() after (0) (0)
00000011 NotifySlotChange: 50 03 
00000007 -> 000000 65 00 00 00 00 00 00 00 00 00 
00005973 <- 000000 81 00 00 00 00 00 00 02 00 01 
00000010 -> 000000 65 00 00 00 00 00 01 00 00 00 
00005979 <- 000000 81 00 00 00 00 00 01 02 00 01 
00000014 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFB3, usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000004 readerfactory.c:358:RFAddReader() Using the reader polling thread
00000006 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000014 -> 000000 65 00 00 00 00 00 02 00 00 00 
00005951 <- 000000 81 00 00 00 00 00 02 02 00 01 
00000008 ifdhandler.c:1891:IFDHICCPresence() Card absent
00000043 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFAE, usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000007 ifdhandler.c:450:IFDHGetCapabilities() Reader supports 1 slot(s)
00000020 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000007 -> 000000 65 00 00 00 00 00 03 00 00 00 
00005911 <- 000000 81 00 00 00 00 00 03 02 00 01 
00000010 ifdhandler.c:1891:IFDHICCPresence() Card absent
00000005 winscard_svc.c:783:MSGSignalClient() Signal client: 5
00000013 winscard_svc.c:786:MSGSignalClient() SIGNAL rv=0x0 for client 5
00000011 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000005 -> 000000 65 00 00 00 00 00 04 00 00 00 
00000085 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 5
00000117 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 5
00000075 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 5
00000025 winscard_svc.c:356:ContextThread() Received command: CMD_WAIT_READER_STATE_CHANGE from client 5
00005645 <- 000000 81 00 00 00 00 00 04 02 00 01 
00000008 ifdhandler.c:1891:IFDHICCPresence() Card absent
00000004 ifdhandler.c:291:IFDHPolling() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0) 600000 ms
00000003 ccid_usb.c:1210:InterruptRead() before (0)
00016983 ccid_usb.c:1254:InterruptRead() after (0) (0)
00000020 NotifySlotChange: 50 02 
00000007 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000004 -> 000000 65 00 00 00 00 00 05 00 00 00 
00006025 <- 000000 81 00 00 00 00 00 05 02 00 01 
00000040 ifdhandler.c:1891:IFDHICCPresence() Card absent
00000006 ifdhandler.c:291:IFDHPolling() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0) 600000 ms
00000004 ccid_usb.c:1210:InterruptRead() before (0)
02081400 ccid_usb.c:1254:InterruptRead() after (0) (0)
00000035 NotifySlotChange: 50 03 
00000009 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000005 -> 000000 65 00 00 00 00 00 06 00 00 00 
00005912 <- 000000 81 00 00 00 00 00 06 01 00 01 
00000010 ifdhandler.c:1891:IFDHICCPresence() Card present
00000003 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000026 -> 000000 65 00 00 00 00 00 07 00 00 00 
00005954 <- 000000 81 00 00 00 00 00 07 01 00 01 
00000010 ifdhandler.c:1891:IFDHICCPresence() Card present
00000011 ifdhandler.c:1122:IFDHPowerICC() action: PowerUp, usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000006 -> 000000 62 00 00 00 00 00 08 01 00 00 
00048932 <- 000000 80 18 00 00 00 00 08 00 00 00 3B BF B6 00 81 31 FE 5D 00 64 04 28 03 02 31 C0 73 F7 01 D0 00 90 00 67 
00000024 eventhandler.c:407:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
00000005 eventhandler.c:422:EHStatusHandlerThread() Card inserted into OMNIKEY AG CardMan 3121 00 00
00000005 winscard_svc.c:783:MSGSignalClient() Signal client: 5
00000003 winscard_svc.c:786:MSGSignalClient() SIGNAL rv=0x0 for client 5
00000012 Card ATR: 3B BF B6 00 81 31 FE 5D 00 64 04 28 03 02 31 C0 73 F7 01 D0 00 90 00 67 
00000013 ifdhandler.c:291:IFDHPolling() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0) 5000 ms
00000005 ccid_usb.c:1210:InterruptRead() before (0)
00000075 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 5
00000125 winscard_svc.c:356:ContextThread() Received command: CONNECT from client 5
00000013 winscard_svc.c:487:ContextThread() Authorized client for 'OMNIKEY AG CardMan 3121 00 00'
00000004 winscard.c:261:SCardConnect() Attempting Connect to OMNIKEY AG CardMan 3121 00 00 using protocol: 3
00000004 readerfactory.c:771:RFReaderInfo() RefReader() count was: 1
00000003 winscard.c:356:SCardConnect() powerState: POWER_STATE_INUSE
00000004 prothandler.c:113:PHSetProtocol() Attempting PTS to T=1
00000003 ifdhandler.c:668:IFDHSetProtocolParameters() protocol T=1, usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000007 ifdhandler.c:2062:find_baud_rate() Card baud rate: 150000
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 10752
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 21505
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 43010
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 86021
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 172043
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 344086
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 129032
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 215053
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 12903
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 25806
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 51612
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 103225
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 206451
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 412903
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 154838
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 258064
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 7168
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 14336
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 28673
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 57347
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 114695
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 229390
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 143369
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 8602
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 17204
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 34408
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 68817
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 137634
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 275268
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 5376
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 64516
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 107526
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 6451
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 77419
00000008 ifdhandler.c:2071:find_baud_rate() Reader can do: 8064
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 16129
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 32258
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 96774
00000007 ifdhandler.c:2071:find_baud_rate() Reader can do: 161290
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 3584
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 71684
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 4301
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 2688
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 53763
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 3225
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 38709
00000002 ifdhandler.c:2071:find_baud_rate() Reader can do: 4032
00000003 ifdhandler.c:2071:find_baud_rate() Reader can do: 48387
00000029 ifdhandler.c:2071:find_baud_rate() Reader can do: 80645
00000015 ifdhandler.c:2071:find_baud_rate() Reader can do: 2150
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 2580
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 5161
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 10322
00000007 ifdhandler.c:2071:find_baud_rate() Reader can do: 20645
00000005 ifdhandler.c:2071:find_baud_rate() Reader can do: 41290
00000007 ifdhandler.c:2071:find_baud_rate() Reader can do: 82580
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 30967
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 7812
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 15625
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 31250
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 62500
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 125000
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 250000
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 93750
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 156250
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 9375
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 18750
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 37500
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 75000
00000006 ifdhandler.c:2071:find_baud_rate() Reader can do: 150000
00000006 ifdhandler.c:792:IFDHSetProtocolParameters() Set speed to 150000 bauds
00000007 ifdhandler.c:949:IFDHSetProtocolParameters() BWI/CWI (TB3) present: 0x5D
00000010 ifdhandler.c:983:IFDHSetProtocolParameters() IFSC (TA3) present: 254
00000006 ifdhandler.c:987:IFDHSetProtocolParameters() Timeout: 17619 ms
00000009 commands.c:2207:SetParameters() length: 7 bytes
00000010 -> 000000 61 07 00 00 00 00 09 01 00 00 B6 10 00 5D 00 FE 00 
00030277 <- 000000 82 07 00 00 00 00 09 00 00 01 B6 10 00 5D 00 FE 00 
00000036 ifdhandler.c:1044:IFDHSetProtocolParameters() IFSC (TA3) present: 254
00000006 ifdhandler.c:1057:IFDHSetProtocolParameters() T=1: IFSC=254, IFSD=254
00000005 winscard.c:435:SCardConnect() Active Protocol: T=1
00000006 winscard.c:455:SCardConnect() hCard Identity: 7f1817be
00000005 winscard.c:516:SCardConnect() UnrefReader() count was: 2
00000006 winscard_svc.c:501:ContextThread() CONNECT rv=0x0 for client 5
00000102 winscard_svc.c:356:ContextThread() Received command: TRANSMIT from client 5
00000015 readerfactory.c:798:RFReaderInfoById() RefReader() count was: 1
00000005 winscard.c:1613:SCardTransmit() Send Protocol: T=1
00000004 APDU: 00 A4 00 00 02 3F 00 
00000004 ifdhandler.c:1266:IFDHTransmitToICC() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000007 commands.c:2181:CmdXfrBlockTPDU_T1() T=1: 7 and 264 bytes
00000004 openct/proto-t1.c:579:t1_build() more bit: 0
00000005 sending: 00 00 07 00 A4 00 00 02 3F 00 9E 
00000006 -> 000000 6F 0B 00 00 00 00 0A 00 00 00 00 00 07 00 A4 00 00 02 3F 00 9E 
00050240 <- 000000 80 02 00 00 00 00 0A 00 00 00 6D 00 
00000034 received: 6D 00 
00000005 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000004 sending: 00 82 00 82 
00000005 -> 000000 6F 04 00 00 00 00 0B 00 00 00 00 82 00 82 
00014912 <- 000000 80 02 00 00 00 00 0B 00 00 00 67 00 
00000011 received: 67 00 
00000004 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000003 openct/proto-t1.c:230:t1_transceive() Rule 7.2
00000003 sending: 00 82 00 82 
00000004 -> 000000 6F 04 00 00 00 00 0C 00 00 00 00 82 00 82 
00016986 <- 000000 80 02 00 00 00 00 0C 00 00 00 67 00 
00000015 received: 67 00 
00000004 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000003 sending: 00 C0 00 C0 
00000005 -> 000000 6F 04 00 00 00 00 0D 00 00 00 00 C0 00 C0 
00012948 <- 000000 80 02 00 00 00 00 0D 00 00 00 6D 00 
00000011 received: 6D 00 
00000004 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000003 sending: 00 C0 00 C0 
00000004 -> 000000 6F 04 00 00 00 00 0E 00 00 00 00 C0 00 C0 
00012949 <- 000000 80 02 00 00 00 00 0E 00 00 00 6D 00 
00000011 received: 6D 00 
00000003 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000004 sending: 00 C0 00 C0 
00000004 -> 000000 6F 04 00 00 00 00 0F 00 00 00 00 C0 00 C0 
00012964 <- 000000 80 02 00 00 00 00 0F 00 00 00 6D 00 
00000010 received: 6D 00 
00000004 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000004 SW: 
00000004 ifdwrapper.c:553:IFDTransmit() Card not transacted: 612
00000003 winscard.c:1638:SCardTransmit() Card not transacted: 0x80100016
00000003 winscard.c:1658:SCardTransmit() UnrefReader() count was: 2
00000004 winscard_svc.c:656:ContextThread() TRANSMIT rv=0x80100016 for client 5
00000162 winscard_svc.c:356:ContextThread() Received command: RELEASE_CONTEXT from client 5
00000009 winscard.c:230:SCardReleaseContext() Releasing Context: 0x5BA20426
00000005 readerfactory.c:798:RFReaderInfoById() RefReader() count was: 1
00000003 readerfactory.c:798:RFReaderInfoById() RefReader() count was: 2
00000004 winscard.c:876:SCardDisconnect() Active Contexts: 1
00000002 winscard.c:877:SCardDisconnect() dwDisposition: 0
00000004 winscard.c:1042:SCardDisconnect() powerState: POWER_STATE_GRACE_PERIOD
00000004 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFB2, usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000003 winscard.c:1056:SCardDisconnect() Stopping polling thread
00000003 ifdhandler.c:327:IFDHStopPolling() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00002853 winscard.c:1069:SCardDisconnect() UnrefReader() count was: 3
00000009 winscard_svc.c:865:MSGRemoveContext() UnrefReader() count was: 2
00000003 winscard_svc.c:464:ContextThread() RELEASE_CONTEXT rv=0x0 for client 5
00000019 ccid_usb.c:1254:InterruptRead() after (0) (3)
00000022 ccid_usb.c:1269:InterruptRead() InterruptRead (2/11): Success
00000760 winscard_svc.c:348:ContextThread() Client die: 5
00000015 winscard_svc.c:981:MSGCleanupClient() Thread is stopping: dwClientID=5, threadContext @0x1237ea0
00000004 winscard_svc.c:987:MSGCleanupClient() Freeing SCONTEXT @0x1237ea0
00399315 eventhandler.c:493:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
00000035 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000008 -> 000000 65 00 00 00 00 00 10 00 00 00 
00014947 <- 000000 81 00 00 00 00 00 10 00 00 00 
00000012 ifdhandler.c:1891:IFDHICCPresence() Card present
00000005 ifdhandler.c:291:IFDHPolling() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0) 5000 ms
00000004 ccid_usb.c:1210:InterruptRead() before (0)
02903358 pcscdaemon.c:752:signal_trap() Received signal: 2
00000032 pcscdaemon.c:771:signal_trap() Preparing for suicide
00000041 pcscdaemon.c:752:signal_trap() Received signal: 2
00000007 readerfactory.c:1299:RFCleanupReaders() entering cleaning function
00000003 readerfactory.c:1308:RFCleanupReaders() Stopping reader: OMNIKEY AG CardMan 3121 00 00
00000015 readerfactory.c:561:RFRemoveReader() UnrefReader() count was: 1
00000004 eventhandler.c:182:EHDestroyEventHandler() Stomping thread.
00000005 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFB1, usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000004 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFB2, usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000012 eventhandler.c:207:EHDestroyEventHandler() Request stopping of polling thread
00000016 ifdhandler.c:327:IFDHStopPolling() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00016636 ccid_usb.c:1254:InterruptRead() after (0) (3)
00000023 ccid_usb.c:1269:InterruptRead() InterruptRead (2/11): Success
00400093 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000034 -> 000000 65 00 00 00 00 00 11 00 00 00 
00014758 <- 000000 81 00 00 00 00 00 11 00 00 00 
00000017 ifdhandler.c:1891:IFDHICCPresence() Card present
00000006 ifdhandler.c:1122:IFDHPowerICC() action: PowerDown, usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000005 -> 000000 63 00 00 00 00 00 12 00 00 00 
00005947 <- 000000 81 00 00 00 00 00 12 01 00 01 
00000022 eventhandler.c:481:EHStatusHandlerThread() powerState: POWER_STATE_UNPOWERED
00000008 eventhandler.c:504:EHStatusHandlerThread() Die
00000040 eventhandler.c:222:EHDestroyEventHandler() Thread stomped.
00000012 readerfactory.c:1066:RFUnInitializeReader() Attempting shutdown of OMNIKEY AG CardMan 3121 00 00.
00000011 ifdhandler.c:253:IFDHCloseChannel() usb:076b/3021:libudev:0:/dev/bus/usb/002/011 (lun: 0)
00000005 -> 000000 63 00 00 00 00 00 13 00 00 00 
00005899 <- 000000 81 00 00 00 00 00 13 01 00 01 
00000018 ccid_usb.c:841:CloseUSB() Closing USB device: 2/11
00000004 ccid_usb.c:851:CloseUSB() Last slot closed. Release resources
00000034 ccid_usb.c:191:close_libusb_if_needed() libusb_exit
00000015 readerfactory.c:937:RFUnloadReader() Unloading reader driver.
00000055 winscard_svc.c:157:ContextsDeinitialize() remaining threads: 0
00000006 pcscdaemon.c:696:at_exit() cleaning /var/run/pcscd


More information about the Pcsclite-muscle mailing list