On 21.01.2018 00:16, Maciej S. Szmigiero wrote:
> On 14.01.2018 01:01, Maciej S. Szmigiero wrote:
>> Hi all,
>>
>> I've just received a SCM SPR332 from FLOSS-Shop (marked as "SPR332 V2"
>> on its bottom side) and while its basic reader functionality seems to work
>> just fine I can't get the secure PIN entry mode to work at all.
>>
>> I've tried two different OpenPGP cards, tried both GnuPG built-in CCID
>> driver and the pcsc-lite one to no avail.
>>
>> I've even tried the latest vendor Windows driver (with OpenSC and a constant
>> length PIN verify operation), but the behavior in each of these setups was
>> always the same:
>> Upon typing and accepting a PIN the "key" LED on the reader continues to
>> blink for a few seconds, then the reader responds with "64 00" result at
>> the USB interface level (which is probably the code for
>> "SPE [Secure PIN Entry] operation timed out" error) and then it doesn't
>> want to communicate with the card anymore.
>>
>> A relevant log snippet from GnuPG built-in CCID driver:
>> DBG: prompting for pinpad entry '||Please unlock the card%0A%0ANumber: 
>> 0005 00005B0E%0AHolder: '
>> DBG: ccid-driver: sending escape sequence to switch to a case 1 APDU
>> DBG: ccid-driver: PC_to_RDR_Escape:
>> DBG: ccid-driver:   dwLength ..........: 3
>> DBG: ccid-driver:   bSlot .............: 0
>> DBG: ccid-driver:   bSeq ..............: 56
>> DBG: ccid-driver:   [0007]  00 00 00 80 02 00
>> DBG: ccid-driver: RDR_to_PC_Escape:
>> DBG: ccid-driver:   dwLength ..........: 0
>> DBG: ccid-driver:   bSlot .............: 0
>> DBG: ccid-driver:   bSeq ..............: 56
>> DBG: ccid-driver:   bStatus ...........: 0
>> DBG: ccid-driver:   buffer[9] .........: 00
>> DBG: ccid-driver: PC_to_RDR_Secure:
>> DBG: ccid-driver:   dwLength ..........: 19
>> DBG: ccid-driver:   bSlot .............: 0
>> DBG: ccid-driver:   bSeq ..............: 57
>> DBG: ccid-driver:   bBMI ..............: 0x00
>> DBG: ccid-driver:   wLevelParameter ...: 0x0000
>> DBG: ccid-driver:   [0010]  00 00 82 00 00 19
>> DBG: ccid-driver:   [0016]  06 02 01 09 04 00 00 00 00 00 20 00 82
>> DBG: ccid-driver: RDR_to_PC_DataBlock:
>> DBG: ccid-driver:   dwLength ..........: 2
>> DBG: ccid-driver:   bSlot .............: 0
>> DBG: ccid-driver:   bSeq ..............: 57
>> DBG: ccid-driver:   bStatus ...........: 0
>> DBG: ccid-driver:   [0010]  64 00
>> DBG: dismiss pinpad entry prompt
>> verify CHV2 failed: Operation cancelled
>> app_check_pin failed: Operation cancelled
>> DBG: ccid-driver: PC_to_RDR_XfrBlock:
>> DBG: ccid-driver:   dwLength ..........: 9
>> DBG: ccid-driver:   bSlot .............: 0
>> DBG: ccid-driver:   bSeq ..............: 58
>> DBG: ccid-driver:   bBWI ..............: 0x04
>> DBG: ccid-driver:   wLevelParameter ...: 0x0000
>> DBG: ccid-driver:   [0010]  00 00 05 00 CA 00
>> DBG: ccid-driver:   [0016]  6E 00 A1
>> DBG: ccid-driver: usb_bulk_read error: LIBUSB_ERROR_TIMEOUT
>> ccid_transceive failed: (0x1000a)
>> apdu_send_simple(0) failed: card I/O error
>> DBG: ccid-driver: PC_to_RDR_XfrBlock:
>> DBG: ccid-driver:   dwLength ..........: 9
>> DBG: ccid-driver:   bSlot .............: 0
>> DBG: ccid-driver:   bSeq ..............: 59
>> DBG: ccid-driver:   bBWI ..............: 0x04
>> DBG: ccid-driver:   wLevelParameter ...: 0x0000
>> DBG: ccid-driver:   [0010]  00 00 05 00 CA 00
>> DBG: ccid-driver:   [0016]  C5 00 0A
>> DBG: ccid-driver: usb_bulk_read error: LIBUSB_ERROR_TIMEOUT
>> ccid_transceive failed: (0x1000a)
>> apdu_send_simple(0) failed: card I/O error
>>
>> I've tried also an EMV card with this reader, the behavior
>> is slightly different in this case: the typed PIN is accepted
>> immediately, but "00 82 00 82" T=1 protocol error is returned
>> at the USB interface level.
>> And the card communication still works after this.
>>
>> The same cards (two OpenPGP ones and one EMV) accept PIN input without
>> problems using exactly the same software setup when driven by a
>> different PIN pad reader (a HP smart card keyboard).
>>
>> What's interesting is that the reader reports firmware version 7.0
>> while all the references I could find talk about firmware version 6.01.
>>
>> The vendor Windows driver also has a firmware version check utility
>> that explicitly checks for firmware version 6.01 (unfortunately,
>> it is just a checking tool without up- or down-grade capability).
>>
>> Now, I wonder: did anybody earlier spotted a similar behavior with this
>> or other SCM/Identiv readers?
>> Or is it possible that this reader is loaded with some non-standard
>> firmware?
>> It reports as "SPRx32 USB Smart Card Reader", which suggests the firmware
>> should be common with a well-tested SPR532 model.
> 
> Has anybody used this reader as a PIN pad successfully or had similar
> issues? 
> 

For posterity's sake: after contacting FLOSS-Shop the problem turned out
to be caused by the reader firmware (version 7.0).

If somebody encounters a similar problem in the future please contact
your seller or Identive to get an updated firmware (the working one is
marked version 7.01 build 1.53).

Maciej

_______________________________________________
Gnupg-users mailing list
[email protected]
http://lists.gnupg.org/mailman/listinfo/gnupg-users

Reply via email to