CCID descriptor statistics: bInterfaceProtocol

Article from the serie "CCID descriptor statistics"

The bInterfaceProtocol field is a number value from the CCID USB descriptor: Protocol code

For Integrated Circuit(s) Cards Interface Devices (CCID) 00h
Note: For competitiveness, values 01h and 02h are reserved for Integrated Circuit(s) Cards Devices (USB-ICC) and other values are reserved for future use. USB-ICCs are out of the scope of this specification.

bInterfaceProtocol # %
0 243 95.67 %
2 8 3.15 %
1 3 1.18 %

USB-ICC devices are USB devices with the same chip for reader and smart card. They are aften called token.
They follow a different USB specificiation: "Device Class: Smart Card ICCD", Revision 1.0, April 2005.
According to this specification:
The given value indicates the transfer mode used for the communication between the host and the USB-ICC.
00h bulk transfers optional interrupt-IN
01h version A, Control transfers, (no interrupt-IN)
02h version B, Control transfers (optional interrupt-IN).
Version A ICCD tokens are:
  • ActivCard ActivCard USB Reader V2
  • BIFIT iBank2Key
  • SchlumbergerSema SchlumbergerSema Cyberflex Access

Version B ICCD tokens are:
  • Gemalto PDT
  • Giesecke & Devrient GmbH Star Sign Card Token 350 (ICCD)
  • Giesecke & Devrient GmbH Star Sign Card Token 550 (ICCD)
  • KEBTechnology KONA USB SmartCard
  • OCS ID-One Cosmo Card USB Smart Chip Device
  • Philips Semiconductors JCOP41V221
  • Philips Semiconductors SmartMX Sample