https://github.com/springcard/ifd-sscp
A PC/SC-Lite IFD Handler (reader driver) for NFC Readers using the SPAC SSCPv2 protocol in transparent (coupler) mode
https://github.com/springcard/ifd-sscp
Last synced: 17 days ago
JSON representation
A PC/SC-Lite IFD Handler (reader driver) for NFC Readers using the SPAC SSCPv2 protocol in transparent (coupler) mode
- Host: GitHub
- URL: https://github.com/springcard/ifd-sscp
- Owner: springcard
- License: mit
- Created: 2025-06-05T13:55:52.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2026-05-22T14:48:10.000Z (24 days ago)
- Last Synced: 2026-05-22T16:50:10.843Z (24 days ago)
- Language: C
- Size: 185 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# ifd-sscp
**ifd-sscp** is an open-source PC/SC-Lite IFD Handler (reader driver) for Linux systems, enabling support for NFC Readers that implement the **SPAC SSCPv2** protocol in **transparent (coupler) mode**.
It provides a bridge between the PC/SC daemon (`pcscd`) and SSCPv2-compatible NFC readers, making smart cards accessible via standard PC/SC APIs on Linux platforms.
## Features
- Implements a PC/SC IFD Handler compatible with `pcsc-lite`
- Supports transparent mode communication over **SSCPv2**
- Clean and modular codebase, easy to integrate and extend
- Works on Linux systems using standard pcsc-lite infrastructure
- Tested on Linux X64, Linux ARM64 (Raspberry)
- MIT License — free to use, modify, and distribute
## Architecture
This handler sits between `pcscd` and an NFC reader using the SSCPv2 protocol in transparent mode. It communicates over serial or USB interfaces to perform smart card operations.
```
+-------------+ +--------------------------+ +---------------------------+
| Application | <--> | PC/SC Lite (libpcsclite) | <--> | pcscd + ifd-sscp (driver) |
+-------------+ +--------------------------+ +---------------------------+
|
+---------------------+
| NFC Reader (SSCPv2) |
+---------------------+
```
## About PC/SC-Lite
[PC/SC-Lite](https://pcsclite.apdu.fr/) is an open-source implementation of the PC/SC (Personal Computer/Smart Card) standard, enabling communication with smart cards using standardized APIs on Unix-like systems.
It provides a daemon (`pcscd`), client libraries, and a plugin interface for reader drivers (IFD Handlers), such as `ifd-sscp`.
More information and source code can be found on the official project website:
[https://pcsclite.apdu.fr/](https://pcsclite.apdu.fr/)
## Installation
### Prerequisites
- Linux with `pcsc-lite` and development headers
- Reader device supporting **SPAC SSCPv2** in transparent mode
- C compiler, cmake and make
On Debian & Ubuntu, use this command line to install `pcsc-lite` and development headers
```bash
sudo apt update
sudo apt install pcscd pcsc-tools libpcsclite-dev
```
### Build and install
```bash
git clone https://github.com/springcard/ifd-sscp.git
cd ifd-sscp
mkdir build
cd build
cmake ..
make
sudo make install
```
This will compile and install the handler into the appropriate `pcsc-lite` directory (typically `/usr/lib/pcsc/drivers/`).
### Configure
As root or a *sudoer*, create a file named `/etc/reader.conf.d/ifd-sscp`
Edit this file and enter the following content
```
FRIENDLYNAME "IFD SSCP"
DEVICENAME /dev/ttyUSB0
LIBPATH /usr/lib/pcsc/drivers/ifd-sscp.bundle/Contents/Linux/libifd-sscp.so
```
- On line `DEVICENAME`, replace `/dev/ttyUSB0` by the Serial communication device your Reader is connected to.
- On line `LIBPATH`, verify that the path matches the location where `make install` has deployed the binary.
**NB:** Ensure the user has permissions to access the serial or USB device.
### Test
Stop the PC/SC daemon
```bash
sudo service pcscd stop
```
Launch the PC/SC daemon manually
```bash
sudo pcscd -f -d
```
If everything is OK, you must ear your Reader beep, and see positive messages in the console.
Otherwise, observe the log and debug!
## License
This project is licensed under the [MIT License](LICENSE).
This open-source project is provided as-is, without support or maintenance.
Developers and implementers are encouraged to use it responsibly and at their own risk.
---
**SPAC** is a trademark of the Secure Protocol Alliance for Couplers.
**SpringCard** is a member of SPAC, but this project is not endorsed not promoted by SPAC.