Wednesday, September 2, 2015

Reader Selection: find the smart card reader you search

I now provide a web interface to access and filter the amazing list of 353 readers supported by my CCID driver.

Filter

You can filter the list using any field from the USB CCID descriptor. I presented each field from the descriptor in the articles "CCID descriptor statistics" in 2013 and 2014.

It is also possible to filter using the "features" field. This field is not available from the descriptor. It documents the features of the reader, like "contactless".

Combination of filters

It is possible to filter the results according to more than one field. The result is a AND combination. The readers must match according to field1 AND according to field2.

Demo

The web site is available at https://ccid.apdu.fr/select_readers/

By default no filer is used and you get the complete list of 353 readers.


Add a filter

To add a filer click on the "Add a match on..." drop down menu and select a field. For example "iManufacturer".
Then enter a manufacturer name like "NXP" in the value field.

Change the relation operator

You can use different relation operators:
  • = strict equality (for number or string)
  • ~ match the head of a string
  • ≤ lesser or equal
  • ≥ greater or equal
For example you can use the relation "~" with the value "a" and you get all the readers with the iManufacturer field starting with "a" or "A".

Share your results

You can share your selection by clicking on the "Get URL" button. A link will be displayed. Just use this URL and you will get the same selection again.

Examples:

Source code

The Javascript + HTML source code is available at https://anonscm.debian.org/cgit/pcsclite/website.git/tree/select_readers.

The code is Free Software and licensed under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The project uses Bootstrap and jQuery.

Conclusion

Please propose new ideas, user experience improvements, design modifications, bug fixes, etc.
You can use the MUSCLE list for discussion.