0

I am running Chrome's WebUSB on Windows 7 to try and open a SmartCard reader. When I use navigator.usb.requestDevices() with no filter on, the device appears sometimes. If I include the vendorId and the productId in the filters, then the device isn't selectable/listed In Chrome. Additionally, when I try to operate the device with

    .then(() => device.selectConfiguration(1))
    .then(() => device.claimInterface(0))

I get access denied (insufficient permissions). In practice, is each device really required to have a device descriptor formatted exactly like the one posted on the WebUSB documentation in order to connect the device to Chrome and operate it? I've also tried changing the drivers to WinUSB using Zadig, but that didn't change anything.

       ---===>Device Information<===---
English product name: "SCR33xx v2.0 USB SC Reader"

ConnectionStatus:                  
Current Config Value:              0x01  -> Device Bus Speed: Full
Device Address:                    0x03
Open Pipes:                           3

          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0x00  -> This is an Interface Class Defined Device
bDeviceSubClass:                   0x00
bDeviceProtocol:                   0x00
bMaxPacketSize0:                   0x20 = (32) Bytes
idVendor:                        0x04E6 = Identive Group Inc.
idProduct:                       0x5116
bcdDevice:                       0x0304
iManufacturer:                     0x01
     English (United States)  "SCM Microsystems"
iProduct:                          0x02
     English (United States)  "SCR33xx v2.0 USB SC Reader"
iSerialNumber:                     0x00
bNumConfigurations:                0x01

          ---===>Open Pipes<===---

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x83  -> Direction: IN - EndpointID: 3
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0008 = 0x08 bytes
bInterval:                         0x10

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x05  -> Direction: OUT - EndpointID: 5
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0040 = 0x40 bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x84  -> Direction: IN - EndpointID: 4
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0040 = 0x40 bytes
bInterval:                         0x00

       ---===>Full Configuration Descriptor<===---

          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x005D  -> Validated
bNumInterfaces:                    0x01
bConfigurationValue:               0x01
iConfiguration:                    0x03
     English (United States)  "CCID Class"
bmAttributes:                      0xA0  -> Bus Powered
  -> Remote Wakeup
MaxPower:                          0x32 = 100 mA

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x03
bInterfaceClass:                   0x0B  -> This is a Chip/Smart Card USB Device Interface Class
bInterfaceSubClass:                0x00
bInterfaceProtocol:                0x00
iInterface:                        0x04
     English (United States)  "CCID Interface"

          ===>HID Descriptor<===
bLength:                           0x36
bDescriptorType:                   0x21
bcdHID:                          0x0110
bCountryCode:                      0x00
bNumDescriptors:                   0x07
bDescriptorType:                   0x03
wDescriptorLength:               0x0000
bDescriptorType:                   0x00
wDescriptorLength:               0x12C0
bDescriptorType:                   0x00
wDescriptorLength:               0x4000
bDescriptorType:                   0x1F
wDescriptorLength:               0x0000
bDescriptorType:                   0x00
wDescriptorLength:               0x3267
bDescriptorType:                   0x00
wDescriptorLength:               0xE700
bDescriptorType:                   0x4C
wDescriptorLength:               0x0006

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x83  -> Direction: IN - EndpointID: 3
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0008 = 0x08 bytes
bInterval:                         0x10

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x05  -> Direction: OUT - EndpointID: 5
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0040 = 0x40 bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x84  -> Direction: IN - EndpointID: 4
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0040 = 0x40 bytes
bInterval:                         0x00
P. K. O.
  • 11
  • 3
  • You say your device is a smart card reader but the descriptor listing in the question is a Samsung Android device. Are you sure you're connecting to the right device? – Reilly Grant Jan 19 '18 at 00:00
  • Edited to reflect that I'm getting that message for a smart card reader. – P. K. O. Jan 25 '18 at 22:22
  • This is a duplicate of this question: https://stackoverflow.com/questions/46179569/smartcard-reader-access-denied-while-claiming-interface-with-webusb-on-chrome/46186495 – Reilly Grant Jan 26 '18 at 23:25
  • Additionally,when trying to open/claim the device, I get a `device endpoint` error sometimes and an `Access Denied` error the other times. – P. K. O. Jan 29 '18 at 23:04

0 Answers0