CCID descriptor statistics: bInterfaceSubClass

Article from the serie "CCID descriptor statistics"

The bInterfaceSubClass field is a number value from the CCID USB descriptor: Subclass code.

bInterfaceSubClass # %
0 248 97.64 %
92 5 1.97 %
1 1 0.39 %


The only value documented in the CCID specification is 0. I have no idea why some readers use a different value.

According to USB specification version 2.0:
Subclass code (assigned by the USB-IF). These codes are qualified by the value of the bInterfaceClass field.
If the bInterfaceClass field is reset to zero, this field must also be reset to zero.
If the bInterfaceClass field is not set to FFH, all values are reserved for assignment by the USB-IF.

Device with bInterfaceSubClass = 1 is:
  • ActivCard ActivCard USB Reader V2

Devices with bInterfaceSubClass = 92 are:
  • Dell keyboard SK-3106
  • Gemalto Gem e-Seal Pro USB Token
  • MYSMART MySMART PAD V2.0
  • Verisign Secure Storage Token
  • Verisign Secure Token