Page MenuHome GnuPG

CCID card reader stopped working
Closed, InvalidPublic

Description

A recent update of gnupg (or a related package) broke using my USB-based CCID card reader.

huettel@kailua ~ $ LANG=C gpg --card-status
gpg: selecting openpgp failed: No such device
gpg: OpenPGP card not available: No such device

Bus 002 Device 017: ID 04e6:e003 SCM Microsystems, Inc. SPR532 PinPad SmartCard Reader

huettel@kailua ~ $ ls -la /dev/bus/usb/002/017
crw-rw-r-- 1 root usb 189, 144 27. Mär 12:19 /dev/bus/usb/002/017
(and I'm member of the usb group; chowning the device node doesnt change anything)

Software: Gentoo Linux, with gnupg-2.2.14, libusb-1.0.21, kernel 4.14.81

Here is the scdaemon log:

2019-03-27 12:09:21 scdaemon[7983] Es wird auf Socket `/run/user/1001/gnupg/S.scdaemon' gehört
2019-03-27 12:09:21 scdaemon[7983] Handhabungsroutine für fd -1 gestartet
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: using CCID reader 0 (ID=04E6:E003:21250951202879:0)
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: idVendor: 04E6 idProduct: E003 bcdDevice: 0510
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: ChipCard Interface Descriptor:
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bLength 54
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bDescriptorType 33
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bcdCCID 1.00
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: nMaxSlotIndex 0
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bVoltageSupport 1 5.0V
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwProtocols 3 T=0 T=1
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwDefaultClock 4000
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwMaxiumumClock 8000
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bNumClockSupported 0
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwDataRate 10753 bps
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwMaxDataRate 344105 bps
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bNumDataRatesSupp. 0
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwMaxIFSD 254
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwSyncProtocols 00000000
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwMechanical 00000000
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwFeatures 000100BA
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: Auto configuration based on ATR (assumes auto voltage)
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: Auto voltage selection
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: Auto clock change
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: Auto baud rate change
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: Auto PPS made by CCID
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: TPDU level exchange
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: dwMaxCCIDMsgLen 270
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bClassGetResponse echo
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bClassEnvelope echo
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: wlcdLayout none
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bPINSupport 3 verification modification
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bMaxCCIDBusySlots 1
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: usb_bulk_read error: LIBUSB_ERROR_TIMEOUT
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: USB: CALLING USB_CLEAR_HALT
2019-03-27 12:09:21 scdaemon[7983] DBG: ccid-driver: bulk-in seqno does not match (1/0)
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: usb_bulk_read error: LIBUSB_ERROR_TIMEOUT
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: USB: RETRYING bulk_in AGAIN
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: PC_to_RDR_IccPowerOn:
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: dwLength ..........: 0
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bSlot .............: 0
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bSeq ..............: 3
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bPowerSelect ......: 0x00 (auto)
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: [0008] 00 00
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: RDR_to_PC_DataBlock:
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: dwLength ..........: 0
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bSlot .............: 0
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bSeq ..............: 3
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bStatus ...........: 65
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bError ............: 254
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: CCID command failed: CCID timed out while talking to the ICC
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: PC_to_RDR_IccPowerOff:
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: dwLength ..........: 0
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bSlot .............: 0
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bSeq ..............: 4
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: [0007] 00 00 00
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: RDR_to_PC_SlotStatus:
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: dwLength ..........: 0
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bSlot .............: 0
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bSeq ..............: 4
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bStatus ...........: 1
2019-03-27 12:09:22 scdaemon[7983] DBG: ccid-driver: bClockStatus ......: 0x01 (stopped-L)
2019-03-27 12:09:22 scdaemon[7983] ccid open error: skip
2019-03-27 12:09:22 scdaemon[7983] pcsc_establish_context failed: no service (0x8010001d)

Details

Version
2.2.14

Event Timeline

Strangely, if I look at my upgrade history, it cannot be caused by gnupg or libusb update. Everything was working fine in February 2019.

Mon Jun 18 17:07:07 2018 >>> app-crypt/gnupg-2.2.8
Fri Oct 26 19:14:47 2018 >>> app-crypt/gnupg-2.2.10
Tue Nov 13 14:44:52 2018 >>> app-crypt/gnupg-2.2.10
Tue Mar 26 17:51:28 2019 >>> app-crypt/gnupg-2.2.14

Mon Dec  4 19:13:50 2017 >>> dev-libs/libusb-1.0.19-r1
Tue Dec  5 14:39:05 2017 >>> dev-libs/libusb-1.0.19-r1
Tue Jan  9 17:40:38 2018 >>> dev-libs/libusb-1.0.21
Tue Nov 13 01:18:18 2018 >>> dev-libs/libusb-1.0.21

The same chipcard works still fine in a different (type of) reader / machine.

This was most likely a (chipcard) hardware issue. It went away after polishing the contact pads for a bit. Possibly my laptop reader applies more force...

(Reminder to self, make yourself a new card before the old one falls apart.)

Sorry for wasting your time.

Good that it works again for you.