General Driver Instructions

ISO 7816 (Contact) & ISO 14443 (Contactless / NFC) Smartcard Readers

Overview

Most modern ISO 7816 (contact) and ISO 14443 (contactless/NFC) smartcard readers are plug-and-play and rely on the PC/SC standard This means they work out of the box on mainstream operating systems for general smartcard use (authentication, PKI, card management, etc.)

Windows

No driver installation required. Windows includes native PC/SC support and automatically loads its built-in CCID class driver when the reader is connected.

macOS

In most cases no driver installation is required — macOS ships with PC/SC support and recognizes class-compliant CCID readers automatically. If the reader is not detected on your macOS version, it must be added to the system CCID driver list (Info.plist) the same way as on Linux below.

Linux

The reader uses the standard PC/SC stack (pcscd + the libccid CCID driver).

1. Install the PC/SC stack

# Debian / Ubuntu
sudo apt update && sudo apt install pcscd libccid pcsc-tools
# Fedora / RHEL
sudo dnf install pcsc-lite ccid pcsc-tools

2. Make sure the daemon is running

sudo systemctl enable --now pcscd.socket

3. Check whether the reader is already recognized

pcsc_scan

4. These following steps are only required on distributions that still ship libccid older than 1.7.1 (e.g. Ubuntu 24.04 LTS ships 1.5.5) for the Cryptnox contact reader only (name CryptnoxCR). If it appears in the reader list, you are done — no further steps needed. (libccid 1.7.1 and newer include this reader by default.)

sudo cp /etc/libccid_Info.plist /etc/libccid_Info.plist.bak
sudo sed -i '/<key>ifdVendorID<\/key>/{n;s|$|\n <string>0x05F8</string>|;}' /etc/libccid_Info.plist
sudo sed -i '/<key>ifdProductID<\/key>/{n;s|$|\n <string>0x0018</string>|;}' /etc/libccid_Info.plist
sudo sed -i '/<key>ifdFriendlyName<\/key>/{n;s|$|\n <string>CryptnoxCR</string>|;}' /etc/libccid_Info.plist

If /etc/libccid_Info.plist does not exist on your distribution, edit the copy inside the driver bundle instead: /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist (path may be /usr/lib64/… on some 64-bit systems).

5. Restart the daemon and confirm

sudo systemctl restart pcscd.socket 2>/dev/null || sudo systemctl restart pcscd
pcsc_scan

CryptnoxCR should now be listed. Insert a card and an ATR line will appear, confirming the reader can communicate with the card.

Note: This edit lives in a system package file, so a later upgrade of libccid may reset it. If the reader stops being detected after a system update, simply re-run step 4.