CCIDADM(1M) Maintenance Commands CCIDADM(1M)

ccidadm
CCID administration utility

ccidadm list

ccidadm atr [-pvx] [device]

ccidadm reader [device]

The ccidadm utility can be used to list the CCID controllers and their slots known to the ccid(7D) driver, query the features and capabilities of a CCID controller, and print the ATR of an ICC (integrated circuit card) that is inserted in a slot on an CCID controller.

The information returned by the hardware is printed by ccidadm in a human-readable form where applicable.

ccidadm expects the following kinds of arguments:
command
Any command ccidadm understands. See section COMMANDS for more information.
device
Specifies a CCID reader or a slot, either as absolute path to the device node or in a short-hand form. The short-hand form consists of the reader instance, specified by the driver name “ccid” followed by the instance number of the reader, and optionally a slot instance separated by a “/”, consisting of the word “slot” followed by the slot number. Here's an example for slot 1 on ccid reader 5: “ccid5/slot1”

ccidadm list
Lists the CCID controllers and their slots known to the system and prints their product name, device node, card state, and the transport protocol in use.
ccidadm atr [-pvx] [device]
Prints the ATR of an ICC that is inserted in the specified slot. If a device is specified it must refer to a certain slot. If no device is specified the command will print the ATR of all inserted slots in the system. A human-readable summary of the ATR data is printed when no flags are given. The following options can be used to alter the output of the atr command:
Verbose output, the individual bytes of the ATR are printed and decoded in a human-readable form. Additionally the historic data in the ATR is printed as a hexadecimal dump.
The complete ATR is printed as a hexadecimal dump.
ccidadm reader [device]
Print the capabilities of the specified CCID reader. Specifying slot number is not required but can optionally be specified. If no device is given, the command will print the capabilities of all attached CCID readers.

The ccidadm utility exits 0 on success, 1 on any error opening or accessing the device, and 2 if no command or an unknown command are given.

Example 1: List all CCID devices
# ccidadm list
PRODUCT                 DEVICE          CARD STATE  TRANSPORT   SUPPORTED
Yubikey 4 OTP+U2F+CCID  ccid0/slot0     activated   APDU (T=1)  supported
Yubikey 4 OTP+U2F+CCID  ccid1/slot0     unactivated APDU        supported
Smart Card Reader USB   ccid2/slot0     missing     TPDU        unsupported
Smart Card Reader USB   ccid3/slot0     unactivated TPDU        unsupported
    
Example 2: Get the ATR of a Yubikey
# ccidadm atr ccid0/slot0
ATR for ccid0/slot0 (18 bytes):
ICC supports protocol(s): T=1
Card protocol is negotiable; starts with default T=1 parameters
Reader will run ICC at ICC's Di/Fi values
T=1 properties that would be negotiated:
  + Fi/Fmax Index: 1 (Fi 372/Fmax 5 MHz)
  + Di Index: 3 (Di 4)
  + Checksum: LRC
  + Extra Guardtime: 0
  + BWI: 1
  + CWI: 5
  + Clock Stop: 0 (disallowed)
  + IFSC: 254
  + CCID Supports NAD: no
    
Example 2: Get capabilities of a Smart Card Reader
# ccidadm reader ccid3
Reader ccid3, CCID class v1.0 device:
  Product: Smart Card Reader USB
  Serial: <unknown>
  Slots Present: 1
  Maximum Busy Slots: 1
  Supported Voltages:
    + 5.0 V
    + 3.0 V
    + 1.8 V
  Supported Protocols:
    + T=0
    + T=1
  Default Clock: 3.69 MHz
  Maximum Clock: 3.69 MHz
  Supported Clock Rates: 1
  Default Data Rate: 9.92 Kbps
  Maximum Data Rate: 318 Kbps
  Supported Data Rates: 19
  Maximum IFSD (T=1 only): 254
  Synchronous Protocols Supported:
    + 2-Wire Support
    + 3-Wire Support
    + I2C Support
  Device Features:
    + Automatic ICC clock frequency change
    + Automatic baud rate change
    + Automatic PPS made by CCID
    + CCID can set ICC in clock stop mode
    + NAD value other than zero accepted
    + TPDU support
  Maximum Message Length: 271 bytes
    

The command line interface of ccidadm is Evolving. The output of ccidadm is Not-an-Interface and may change any time.

cfgadm(1M), ccid(7D)
September 12, 2020 OmniOS