[Pcsclite-muscle] OMNIKEY AG 3121 USB not working with libccid 1.4.17 and PCSC-Lite 1.8.11
Stein, Maximilian
Maximilian.Stein
Mon Jul 14 07:43:49 PDT 2014
Hi,
I'm currently testing the compatibility of the new revision of the HID Global
Omnikey 3121 USB Smart card reader with the latest libccid and PCSC-Lite
version. In CCID 1.4.17 the reader was added with the name 'OMNIKEY AG 3121 USB'
which is the new revision of the 'OMNIKEY AG CardMan 3121'. The reader is
currently in the "Should Work" list (http://pcsclite.alioth.debian.org/ccid/shouldwork.html),
but I was unable to use it to transmit APDUs to a smart card.
The reader is detected and recognized by the pcscd and card insertion/removal
detection including the ATR works perfectly. However I was not able to transmit
APDUs to the inserted smart card because of the error(s):
00000012 ifdwrapper.c:553:IFDTransmit() Card not transacted: 612
00000011 winscard.c:1638:SCardTransmit() Card not transacted: 0x80100016
The error occurs with different smart cards on different GNU/Linux systems
without any virtualization and such. I also tried this with other
PCSC-Lite 1.8.x versions, all resulting in the same error. The smart card reader
works fine with the official Omnikey drivers so I assume that the reader itself
works fine and without errors.
I attached/included the pcscd log file for the test binary included in PCSC-Lite
(pcsc-lite-1.8.11/src/testpcsc) and the following steps:
1. Start the program
2. Attach the smart card reader
3. Insert a smart card
4. Watch it fail :-(
Furthermore I included the output of the CCID compliance check output from
ccid-1.4.17/src/parse.
As you can see in log.txt starting from line 297 the transaction fails because
of an error in the T=1 protocol after the defined number of retries were not
successful. I took a look around in the libccid source code to find the source
of the line 297
00000020 commands.c:2181:CmdXfrBlockTPDU_T1() T=1: 7 and 264 bytes
When using the older revision of the smart card terminal for the same program, I
noticed that protocol T=1 is selected by the application as well, but the CCID
drivers seems to ignore this selection and uses
commands.c:1715:CmdXfrBlockTPDU_T0() T=0: 8 bytes
for transmission instead. I don't know if this information is helpful but it
seemed quite strange to me. The data sheet of the OMNIKEY 3121
(http://www.hidglobal.com/sites/hidglobal.com/files/resource_files/ok-3121-usb-ds-en_0.pdf)
states that protocols T=0 and T=1 are both supported. So the question would be
why T=0 is auto-selected for the old revision but T=1 for the new one and why
T=1 fails.
Best regards
Maximilian
System and Version information
====
CCID driver version: 1.4.17
pcsc-lite version: 1.8.11
smart card reader name: OMNIKEY 3121 (Rev: A)
smart card reader vendor/product ID (lsusb): 076b:3022 OmniKey AG
Output of pcscd --version:
pcsc-lite version 1.8.11.
Copyright (C) 1999-2002 by David Corcoran <corcoran at musclecard.com>.
Copyright (C) 2001-2011 by Ludovic Rousseau <ludovic.rousseau at free.fr>.
Copyright (C) 2003-2004 by Damien Sauveron <sauveron at labri.fr>.
Report bugs to <muscle at lists.musclecard.com>.
Enabled features: Linux x86_64-unknown-linux-gnu serial usb libudev usbdropdir=/usr/local/lib/pcsc/drivers ipcdir=/var/run/pcscd configdir=/usr/local/etc/reader.conf.d
Operating system: Ubuntu 14.04 LTS Trusty Tahr
Smart card middleware: None
Reader manufacturer name: HID Global (former manufacturer name: Omnikey AG)
Reader model name: OMNIKEY 3121
Smart card name: Electronic Cash Card (also tested with multiple custom cards)
==== // System and Version information
log.txt as generated by
$ sudo LIBCCID_ifdLogLevel=0x000F pcscd --foreground --debug --apdu | tee log.txt
====
00000000 debuglog.c:295:DebugLogSetLevel() debug level=debug
00000174 debuglog.c:324:DebugLogSetCategory() Debug options: APDU
00000328 configfile.l:339:DBGetReaderList() Parsing conf file: /etc/reader.conf.d
00000039 pcscdaemon.c:571:main() pcsc-lite 1.8.11 daemon ready.
00008147 hotplug_libusb.c:448:HPEstablishUSBNotifications() Driver ifd-ccid.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.
00000047 hotplug_libusb.c:457:HPEstablishUSBNotifications() Polling forced every 1 second(s)
03854015 winscard_msg_srv.c:256:ProcessEventsServer() Common channel packet arrival
00000107 winscard_msg_srv.c:268:ProcessEventsServer() ProcessCommonChannelRequest detects: 4
00000028 pcscdaemon.c:137:SVCServiceRunLoop() A new context thread creation is requested: 4
00000194 winscard_svc.c:334:ContextThread() Authorized PC/SC client
00000043 winscard_svc.c:338:ContextThread() Thread is started: dwClientID=4, threadContext @0x245da60
00000029 winscard_svc.c:356:ContextThread() Received command: CMD_VERSION from client 4
00000018 winscard_svc.c:368:ContextThread() Client is protocol version 4:3
00000013 winscard_svc.c:388:ContextThread() CMD_VERSION rv=0x0 for client 4
00000130 winscard_svc.c:356:ContextThread() Received command: ESTABLISH_CONTEXT from client 4
00000045 winscard.c:219:SCardEstablishContext() Establishing Context: 0x5508CD50
00000014 winscard_svc.c:449:ContextThread() ESTABLISH_CONTEXT rv=0x0 for client 4
00000401 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 4
00000190 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 4
00000102 winscard_svc.c:356:ContextThread() Received command: CMD_WAIT_READER_STATE_CHANGE from client 4
04152002 hotplug_libusb.c:541:HPAddHotPluggable() Adding USB device: 2:8:0
00000125 readerfactory.c:1015:RFInitializeReader() Attempting startup of OMNIKEY AG 3121 USB 00 00 using /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
00026242 readerfactory.c:900:RFBindFunctions() Loading IFD Handler 3.0
00000166 ifdhandler.c:1910:init_driver() Driver version: 1.4.17
00001296 ifdhandler.c:1927:init_driver() LogLevel: 0x0003
00000025 ifdhandler.c:1938:init_driver() DriverOptions: 0x0000
00000301 ifdhandler.c:1951:init_driver() LogLevel from LIBCCID_ifdLogLevel: 0x000F
00000019 ifdhandler.c:83:CreateChannelByNameOrChannel() Lun: 0, device: usb:076b/3022:libusb-1.0:2:8:0
00000022 ccid_usb.c:236:OpenUSBByName() Reader index: 0, Device: usb:076b/3022:libusb-1.0:2:8:0
00000025 ccid_usb.c:284:OpenUSBByName() Using: /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
00001175 ccid_usb.c:302:OpenUSBByName() ifdManufacturerString: Ludovic Rousseau (ludovic.rousseau at free.fr)
00000024 ccid_usb.c:303:OpenUSBByName() ifdProductString: Generic CCID driver
00000014 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.
00005238 ccid_usb.c:433:OpenUSBByName() Checking device: 2/8
00000028 ccid_usb.c:495:OpenUSBByName() Trying to open USB bus/device: 2/8
00000165 ccid_usb.c:596:OpenUSBByName() Found Vendor/Product: 076B/3022 (OMNIKEY AG 3121 USB)
00000018 ccid_usb.c:598:OpenUSBByName() Using USB bus/device: 2/8
00000014 ccid_usb.c:1157:ControlUSB() request: 0x03
00015338 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 57 05 30 56 07 A1 C4 20 56 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 57 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 57 05 C2 0A 85 21 AC D2 0B 85 21 AC 43 AB 01 43 B6 08 53 AB FE 22 30 57 05 20 56 07 C1 BB 30 56 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 57 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
00000128 ccid_usb.c:1119:get_data_rates() Got 256 data rates but was expecting 106
00000028 ccid_usb.c:1137:get_data_rates() declared: 10752 bps
00000013 ccid_usb.c:1137:get_data_rates() declared: 21505 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 43010 bps
00000011 ccid_usb.c:1137:get_data_rates() declared: 86021 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 172043 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 344086 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 129032 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 215053 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 12903 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 25806 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 51612 bps
00000011 ccid_usb.c:1137:get_data_rates() declared: 103225 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 206451 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 412903 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 154838 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 258064 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 7168 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 14336 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 28673 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 57347 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 114695 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 229390 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 143369 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 8602 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 17204 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 34408 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 68817 bps
00000022 ccid_usb.c:1137:get_data_rates() declared: 137634 bps
00000011 ccid_usb.c:1137:get_data_rates() declared: 275268 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 5376 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 64516 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 107526 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 6451 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 77419 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 8064 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 16129 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 32258 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 96774 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 161290 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 3584 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 71684 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 4301 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 2688 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 53763 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 3225 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 38709 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 4032 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 48387 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 80645 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 2150 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 2580 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 5161 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 10322 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 20645 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 41290 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 82580 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 30967 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 7812 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 15625 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 31250 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 62500 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 125000 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 250000 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 93750 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 156250 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 9375 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 18750 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 37500 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 75000 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 150000 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 300000 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 112500 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 187500 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 5208 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 10416 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 20833 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 41666 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 83333 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 166666 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 104166 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 6250 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 12500 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 25000 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 50000 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 100000 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 200000 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 3906 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 46875 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 78125 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 4687 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 56250 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 5859 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 11718 bps
00000020 ccid_usb.c:1137:get_data_rates() declared: 23437 bps
00000011 ccid_usb.c:1137:get_data_rates() declared: 70312 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 117187 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 2604 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 52083 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 3125 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 1953 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 39062 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 2343 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 28125 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 2929 bps
00000010 ccid_usb.c:1137:get_data_rates() declared: 35156 bps
00000009 ccid_usb.c:1137:get_data_rates() declared: 58593 bps
00001334 ccid_usb.c:1210:InterruptRead() before (0)
00009782 ccid_usb.c:1254:InterruptRead() after (0) (0)
00000087 NotifySlotChange: 50 02
00000045 -> 000000 65 00 00 00 00 00 00 00 00 00
00000663 <- 000000 81 00 00 00 00 00 00 02 00 01
00000043 -> 000000 65 00 00 00 00 00 01 00 00 00
00000581 <- 000000 81 00 00 00 00 00 01 02 00 01
00000051 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFB3, usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000016 readerfactory.c:358:RFAddReader() Using the reader polling thread
00000021 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000016 -> 000000 65 00 00 00 00 00 02 00 00 00
00000558 <- 000000 81 00 00 00 00 00 02 02 00 01
00000021 ifdhandler.c:1891:IFDHICCPresence() Card absent
00000108 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFAE, usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000017 ifdhandler.c:450:IFDHGetCapabilities() Reader supports 1 slot(s)
00000059 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000086 -> 000000 65 00 00 00 00 00 03 00 00 00
00000761 <- 000000 81 00 00 00 00 00 03 02 00 01
00000040 ifdhandler.c:1891:IFDHICCPresence() Card absent
00000017 winscard_svc.c:783:MSGSignalClient() Signal client: 4
00000013 winscard_svc.c:786:MSGSignalClient() SIGNAL rv=0x0 for client 4
00000045 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000028 -> 000000 65 00 00 00 00 00 04 00 00 00
00000100 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 4
00000269 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 4
00000210 <- 000000 81 00 00 00 00 00 04 02 00 01
00000025 ifdhandler.c:1891:IFDHICCPresence() Card absent
00000018 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 4
00000005 ifdhandler.c:291:IFDHPolling() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0) 600000 ms
00000089 ccid_usb.c:1210:InterruptRead() before (0)
00000038 winscard_svc.c:356:ContextThread() Received command: CMD_WAIT_READER_STATE_CHANGE from client 4
03067941 ccid_usb.c:1254:InterruptRead() after (0) (0)
00000095 NotifySlotChange: 50 03
00000029 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000027 -> 000000 65 00 00 00 00 00 05 00 00 00
00000648 <- 000000 81 00 00 00 00 00 05 01 00 01
00000040 ifdhandler.c:1891:IFDHICCPresence() Card present
00000015 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000016 -> 000000 65 00 00 00 00 00 06 00 00 00
00000530 <- 000000 81 00 00 00 00 00 06 01 00 01
00000039 ifdhandler.c:1891:IFDHICCPresence() Card present
00000029 ifdhandler.c:1122:IFDHPowerICC() action: PowerUp, usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000133 -> 000000 62 00 00 00 00 00 07 01 00 00
00037911 <- 000000 80 19 00 00 00 00 07 00 00 00 3B FF 96 00 FF 81 31 FE 45 65 63 0D 0D 75 07 64 00 0D 00 05 63 81 07 40 20
00000126 eventhandler.c:407:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
00000032 eventhandler.c:422:EHStatusHandlerThread() Card inserted into OMNIKEY AG 3121 USB 00 00
00000015 winscard_svc.c:783:MSGSignalClient() Signal client: 4
00000013 winscard_svc.c:786:MSGSignalClient() SIGNAL rv=0x0 for client 4
00000062 Card ATR: 3B FF 96 00 FF 81 31 FE 45 65 63 0D 0D 75 07 64 00 0D 00 05 63 81 07 40 20
00000064 ifdhandler.c:291:IFDHPolling() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0) 5000 ms
00000013 winscard_svc.c:356:ContextThread() Received command: CMD_GET_READERS_STATE from client 4
00000009 ccid_usb.c:1210:InterruptRead() before (0)
00000239 winscard_svc.c:356:ContextThread() Received command: CONNECT from client 4
00000065 winscard_svc.c:487:ContextThread() Authorized client for 'OMNIKEY AG 3121 USB 00 00'
00000018 winscard.c:261:SCardConnect() Attempting Connect to OMNIKEY AG 3121 USB 00 00 using protocol: 3
00000013 readerfactory.c:771:RFReaderInfo() RefReader() count was: 1
00000013 winscard.c:356:SCardConnect() powerState: POWER_STATE_INUSE
00000012 prothandler.c:113:PHSetProtocol() Attempting PTS to T=1
00000014 ifdhandler.c:668:IFDHSetProtocolParameters() protocol T=1, usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000014 ifdhandler.c:2047:extra_egt() Extra EGT patch applied
00000012 ifdhandler.c:2062:find_baud_rate() Card baud rate: 300000
00000011 ifdhandler.c:2071:find_baud_rate() Reader can do: 10752
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 21505
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 43010
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 86021
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 172043
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 344086
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 129032
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 215053
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 12903
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 25806
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 51612
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 103225
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 206451
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 412903
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 154838
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 258064
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 7168
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 14336
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 28673
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 57347
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 114695
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 229390
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 143369
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 8602
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 17204
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 34408
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 68817
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 137634
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 275268
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 5376
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 64516
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 107526
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 6451
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 77419
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 8064
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 16129
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 32258
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 96774
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 161290
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 3584
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 71684
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 4301
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 2688
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 53763
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 3225
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 38709
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 4032
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 48387
00000029 ifdhandler.c:2071:find_baud_rate() Reader can do: 80645
00000011 ifdhandler.c:2071:find_baud_rate() Reader can do: 2150
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 2580
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 5161
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 10322
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 20645
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 41290
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 82580
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 30967
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 7812
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 15625
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 31250
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 62500
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 125000
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 250000
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 93750
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 156250
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 9375
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 18750
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 37500
00000009 ifdhandler.c:2071:find_baud_rate() Reader can do: 75000
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 150000
00000010 ifdhandler.c:2071:find_baud_rate() Reader can do: 300000
00000010 ifdhandler.c:792:IFDHSetProtocolParameters() Set speed to 300000 bauds
00000013 ifdhandler.c:949:IFDHSetProtocolParameters() BWI/CWI (TB3) present: 0x45
00000019 ifdhandler.c:983:IFDHSetProtocolParameters() IFSC (TA3) present: 254
00000011 ifdhandler.c:987:IFDHSetProtocolParameters() Timeout: 2239 ms
00000017 commands.c:2207:SetParameters() length: 7 bytes
00000021 -> 000000 61 07 00 00 00 00 08 01 00 00 96 10 02 45 00 FE 00
00009436 <- 000000 82 07 00 00 00 00 08 00 00 01 96 10 02 45 00 FE 00
00000093 ifdhandler.c:1044:IFDHSetProtocolParameters() IFSC (TA3) present: 254
00000024 ifdhandler.c:1057:IFDHSetProtocolParameters() T=1: IFSC=254, IFSD=492
00000020 winscard.c:435:SCardConnect() Active Protocol: T=1
00000025 winscard.c:455:SCardConnect() hCard Identity: 6227dce5
00000023 winscard.c:516:SCardConnect() UnrefReader() count was: 2
00000025 winscard_svc.c:501:ContextThread() CONNECT rv=0x0 for client 4
00000256 winscard_svc.c:356:ContextThread() Received command: TRANSMIT from client 4
00000065 readerfactory.c:798:RFReaderInfoById() RefReader() count was: 1
00000024 winscard.c:1613:SCardTransmit() Send Protocol: T=1
00000024 APDU: 00 A4 00 00 02 3F 00
00000021 ifdhandler.c:1266:IFDHTransmitToICC() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000020 commands.c:2181:CmdXfrBlockTPDU_T1() T=1: 7 and 264 bytes
00000028 openct/proto-t1.c:579:t1_build() more bit: 0
00000027 sending: 00 00 07 00 A4 00 00 02 3F 00 9E
00000022 -> 000000 6F 0B 00 00 00 00 09 00 00 00 00 00 07 00 A4 00 00 02 3F 00 9E
00035912 <- 000000 80 02 00 00 00 00 09 00 00 00 67 00
00000091 received: 67 00
00000024 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000018 sending: 00 82 00 82
00000029 -> 000000 6F 04 00 00 00 00 0A 00 00 00 00 82 00 82
00003456 <- 000000 80 02 00 00 00 00 0A 00 00 00 67 00
00000075 received: 67 00
00000014 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000011 openct/proto-t1.c:230:t1_transceive() Rule 7.2
00000012 sending: 00 82 00 82
00000018 -> 000000 6F 04 00 00 00 00 0B 00 00 00 00 82 00 82
00003202 <- 000000 80 02 00 00 00 00 0B 00 00 00 67 00
00000043 received: 67 00
00000016 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000013 sending: 00 C0 00 C0
00000017 -> 000000 6F 04 00 00 00 00 0C 00 00 00 00 C0 00 C0
00003444 <- 000000 80 02 00 00 00 00 0C 00 00 00 6D 00
00000097 received: 6D 00
00000025 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000021 sending: 00 C0 00 C0
00000030 -> 000000 6F 04 00 00 00 00 0D 00 00 00 00 C0 00 C0
00003425 <- 000000 80 02 00 00 00 00 0D 00 00 00 6D 00
00000071 received: 6D 00
00000024 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000021 sending: 00 C0 00 C0
00000027 -> 000000 6F 04 00 00 00 00 0E 00 00 00 00 C0 00 C0
00003397 <- 000000 80 02 00 00 00 00 0E 00 00 00 6D 00
00000073 received: 6D 00
00000014 openct/proto-t1.c:222:t1_transceive() R-BLOCK required
00000013 SW:
00000012 ifdwrapper.c:553:IFDTransmit() Card not transacted: 612
00000011 winscard.c:1638:SCardTransmit() Card not transacted: 0x80100016
00000012 winscard.c:1658:SCardTransmit() UnrefReader() count was: 2
00000013 winscard_svc.c:656:ContextThread() TRANSMIT rv=0x80100016 for client 4
00000260 winscard_svc.c:356:ContextThread() Received command: RELEASE_CONTEXT from client 4
00000048 winscard.c:230:SCardReleaseContext() Releasing Context: 0x5508CD50
00000020 readerfactory.c:798:RFReaderInfoById() RefReader() count was: 1
00000025 readerfactory.c:798:RFReaderInfoById() RefReader() count was: 2
00000012 winscard.c:876:SCardDisconnect() Active Contexts: 1
00000011 winscard.c:877:SCardDisconnect() dwDisposition: 0
00000014 winscard.c:1042:SCardDisconnect() powerState: POWER_STATE_GRACE_PERIOD
00000013 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFB2, usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000012 winscard.c:1056:SCardDisconnect() Stopping polling thread
00000012 ifdhandler.c:327:IFDHStopPolling() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00002317 winscard.c:1069:SCardDisconnect() UnrefReader() count was: 3
00000048 winscard_svc.c:865:MSGRemoveContext() UnrefReader() count was: 2
00000038 winscard_svc.c:464:ContextThread() RELEASE_CONTEXT rv=0x0 for client 4
00000047 ccid_usb.c:1254:InterruptRead() after (0) (3)
00000130 ccid_usb.c:1269:InterruptRead() InterruptRead (2/8): Resource temporarily unavailable
00000360 winscard_svc.c:348:ContextThread() Client die: 4
00000052 winscard_svc.c:981:MSGCleanupClient() Thread is stopping: dwClientID=4, threadContext @0x245da60
00000019 winscard_svc.c:987:MSGCleanupClient() Freeing SCONTEXT @0x245da60
00399730 eventhandler.c:493:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
00000102 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000055 -> 000000 65 00 00 00 00 00 0F 00 00 00
00000587 <- 000000 81 00 00 00 00 00 0F 00 00 00
00000045 ifdhandler.c:1891:IFDHICCPresence() Card present
00000017 ifdhandler.c:291:IFDHPolling() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0) 5000 ms
00000012 ccid_usb.c:1210:InterruptRead() before (0)
05002396 ccid_usb.c:1254:InterruptRead() after (0) (2)
00000101 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000051 -> 000000 65 00 00 00 00 00 10 00 00 00
00000733 <- 000000 81 00 00 00 00 00 10 00 00 00
00000039 ifdhandler.c:1891:IFDHICCPresence() Card present
00000015 ifdhandler.c:1122:IFDHPowerICC() action: PowerDown, usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000016 -> 000000 63 00 00 00 00 00 11 00 00 00
00000533 <- 000000 81 00 00 00 00 00 11 01 00 01
00000040 eventhandler.c:481:EHStatusHandlerThread() powerState: POWER_STATE_UNPOWERED
00000015 ifdhandler.c:1770:IFDHICCPresence() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000015 -> 000000 65 00 00 00 00 00 12 00 00 00
00000578 <- 000000 81 00 00 00 00 00 12 01 00 01
00000039 ifdhandler.c:1891:IFDHICCPresence() Card present
00000015 ifdhandler.c:291:IFDHPolling() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0) 600000 ms
00000012 ccid_usb.c:1210:InterruptRead() before (0)
00455459 pcscdaemon.c:752:signal_trap() Received signal: 2
00000089 pcscdaemon.c:771:signal_trap() Preparing for suicide
00972252 hotplug_libusb.c:410:HPRescanUsbBus() Hotplug stopped
00027919 readerfactory.c:1299:RFCleanupReaders() entering cleaning function
00000099 readerfactory.c:1308:RFCleanupReaders() Stopping reader: OMNIKEY AG 3121 USB 00 00
00000050 readerfactory.c:561:RFRemoveReader() UnrefReader() count was: 1
00000044 eventhandler.c:182:EHDestroyEventHandler() Stomping thread.
00000046 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFB1, usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000041 ifdhandler.c:362:IFDHGetCapabilities() tag: 0xFB2, usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000044 eventhandler.c:207:EHDestroyEventHandler() Request stopping of polling thread
00000014 ifdhandler.c:327:IFDHStopPolling() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00002347 ccid_usb.c:1254:InterruptRead() after (0) (3)
00000079 ccid_usb.c:1269:InterruptRead() InterruptRead (2/8): Resource temporarily unavailable
00400164 eventhandler.c:504:EHStatusHandlerThread() Die
00000211 eventhandler.c:222:EHDestroyEventHandler() Thread stomped.
00000054 readerfactory.c:1066:RFUnInitializeReader() Attempting shutdown of OMNIKEY AG 3121 USB 00 00.
00000027 ifdhandler.c:253:IFDHCloseChannel() usb:076b/3022:libusb-1.0:2:8:0 (lun: 0)
00000019 -> 000000 63 00 00 00 00 00 13 00 00 00
00000706 <- 000000 81 00 00 00 00 00 13 01 00 01
00000043 ccid_usb.c:841:CloseUSB() Closing USB device: 2/8
00000012 ccid_usb.c:851:CloseUSB() Last slot closed. Release resources
00000087 ccid_usb.c:191:close_libusb_if_needed() libusb_exit
00000066 readerfactory.c:937:RFUnloadReader() Unloading reader driver.
00000109 winscard_svc.c:157:ContextsDeinitialize() remaining threads: 0
00000017 pcscdaemon.c:696:at_exit() cleaning /var/run/pcscd
==== // log.txt
Contents of output.txt as generated by
$ sudo ccid-1.4.17/src/parse > output.txt
====
idVendor: 0x076B
iManufacturer: OMNIKEY AG
idProduct: 0x3022
iProduct: Smart Card Reader USB
bcdDevice: 2.04 (firmware release?)
bLength: 9
bDescriptorType: 4
bInterfaceNumber: 0
bAlternateSetting: 0
bNumEndpoints: 3
bulk-IN, bulk-OUT and Interrupt-IN
bInterfaceClass: 0x0B [Chip Card Interface Device Class (CCID)]
bInterfaceSubClass: 0
bInterfaceProtocol: 0
bulk transfer, optional interrupt-IN (CCID)
Can't get iInterface string
CCID Class Descriptor
bLength: 0x36
bDescriptorType: 0x21
bcdCCID: 1.00
bMaxSlotIndex: 0x00
bVoltageSupport: 0x07
5.0V
3.0V
1.8V
dwProtocols: 0x0000 0x0003
T=0
T=1
dwDefaultClock: 4.800 MHz
dwMaximumClock: 8.000 MHz
bNumClockSupported: 4
Got 256 clock frequencies but was expecting 4
Support 4000 kHz
Support 4800 kHz
Support 6000 kHz
Support 8000 kHz
dwDataRate: 10752 bps
dwMaxDataRate: 412903 bps
bNumDataRatesSupported: 106
Got 256 data rates but was expecting 106
Support 10752 bps
Support 21505 bps
Support 43010 bps
Support 86021 bps
Support 172043 bps
Support 344086 bps
Support 129032 bps
Support 215053 bps
Support 12903 bps
Support 25806 bps
Support 51612 bps
Support 103225 bps
Support 206451 bps
Support 412903 bps
Support 154838 bps
Support 258064 bps
Support 7168 bps
Support 14336 bps
Support 28673 bps
Support 57347 bps
Support 114695 bps
Support 229390 bps
Support 143369 bps
Support 8602 bps
Support 17204 bps
Support 34408 bps
Support 68817 bps
Support 137634 bps
Support 275268 bps
Support 5376 bps
Support 64516 bps
Support 107526 bps
Support 6451 bps
Support 77419 bps
Support 8064 bps
Support 16129 bps
Support 32258 bps
Support 96774 bps
Support 161290 bps
Support 3584 bps
Support 71684 bps
Support 4301 bps
Support 2688 bps
Support 53763 bps
Support 3225 bps
Support 38709 bps
Support 4032 bps
Support 48387 bps
Support 80645 bps
Support 2150 bps
Support 2580 bps
Support 5161 bps
Support 10322 bps
Support 20645 bps
Support 41290 bps
Support 82580 bps
Support 30967 bps
Support 7812 bps
Support 15625 bps
Support 31250 bps
Support 62500 bps
Support 125000 bps
Support 250000 bps
Support 93750 bps
Support 156250 bps
Support 9375 bps
Support 18750 bps
Support 37500 bps
Support 75000 bps
Support 150000 bps
Support 300000 bps
Support 112500 bps
Support 187500 bps
Support 5208 bps
Support 10416 bps
Support 20833 bps
Support 41666 bps
Support 83333 bps
Support 166666 bps
Support 104166 bps
Support 6250 bps
Support 12500 bps
Support 25000 bps
Support 50000 bps
Support 100000 bps
Support 200000 bps
Support 3906 bps
Support 46875 bps
Support 78125 bps
Support 4687 bps
Support 56250 bps
Support 5859 bps
Support 11718 bps
Support 23437 bps
Support 70312 bps
Support 117187 bps
Support 2604 bps
Support 52083 bps
Support 3125 bps
Support 1953 bps
Support 39062 bps
Support 2343 bps
Support 28125 bps
Support 2929 bps
Support 35156 bps
Support 58593 bps
dwMaxIFSD: 492
dwSynchProtocols: 0x00000007
2-wire protocol
3-wire protocol
I2C protocol
dwMechanical: 0x00000000
No special characteristics
dwFeatures: 0x000407B2
....02 Automatic parameter configuration based on ATR data
....10 Automatic ICC clock frequency change according to parameters
....20 Automatic baud rate change according to frequency and Fi, Di params
....80 Automatic PPS made by the CCID
..01.. CCID can set ICC in clock stop mode
..02.. NAD value other than 00 accepted (T=1)
..04.. Automatic IFSD exchange as first exchange (T=1)
04.... Short and Extended APDU level exchange
dwMaxCCIDMessageLength: 502 bytes
bClassGetResponse: 0xFF
echoes the APDU class
bClassEnvelope: 0xFF
echoes the APDU class
wLcdLayout: 0x0000
bPINSupport: 0x00
bMaxCCIDBusySlots: 1
==== // output.txt
P.S. I'm sorry for "spamming" the logs in the Mail-Body, but I wanted to enable
search engines to find the error logs together with the reader name and software
version to make it easier for others to find.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: log.txt
URL: <http://lists.alioth.debian.org/pipermail/pcsclite-muscle/attachments/20140714/3363ebce/attachment-0002.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: output.txt
URL: <http://lists.alioth.debian.org/pipermail/pcsclite-muscle/attachments/20140714/3363ebce/attachment-0003.txt>
More information about the pcsclite-muscle
mailing list