Skip to main content

Userland USB Gadget implementation of CCID/ICCD class.

Implements an N-slots USB virtual IC card reader.

Requirements

  • Linux >= 4.9 for CCID class support

  • python3 (tested with 3.8 and 3.9)

  • python dependencies listed in setup.py

Usage

In a nutshell:

import f_ccid
with f_ccid.ICCDFunction(path, slot_count=1) as ccid:
    ccid.slot_list[0].insert(card)
    ccid.processEventsForever()

(but check out functionfs.gadget to setup configfs for you, and provide the path argument above)

This module does not provide any card implementation.

The expected card API is:

card.clearVolatiles() -> None

Called when virtual power is cut to the card, which means it must flush its volatile state.

card.getATR() -> bytearray

Called when the host tells the reader to power the card. This must return the Answer To Reset bytestring for this card. Note that the answer must be mutable: although it will not be altered by the reader, it will be passed on to C code which technically could mutate it.

card.runAPDU(: bytearray) -> bytearray

Called when the host requests an Application Protocol Data Unit to be executed by the card. The returned value must contain any response, followed by any status bytes. Only entire APDUs are sent to the card (assembly is done by the reader).

Metadata

Release files for usb-f-ccid 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for usb-f-ccid 0.2
File Size Uploaded
usb-f-ccid-0.2.tar.gz 28.9 kB Details

Release files / usb-f-ccid-0.2.tar.gz

Download URL usb-f-ccid-0.2.tar.gz
Size 28.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cdaa1acaecc3bbf6ee707a72b3e9c3ea948e8734c5a41f3d26a517df238c3880
BLAKE2b-256 checksum
How to use checksums
e11105de39ce2c4badd75ad4bedc4db63fee47c0db0dbe4ce91d06bc3b89e3ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.4.2 requests/2.25.0 setuptools/51.1.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.1

Release history Release notifications | RSS feed

This release

0.2 This release

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page