packages: use an Android phone's NFC as a smart card reader

Register vsmartcard's vpcd with pcscd as "Virtual PCD", so the
Remote Smart Card Reader app on a phone can serve the ID card over
NFC as a PC/SC reader. Over USB the link is an adb port reverse
(adb reverse tcp:35963 tcp:35963), hence android-tools.

Assisted-by: Claude:opus-5
This commit is contained in:
Sergei Poljanski 2026-10-16 05:41:27 +04:00
commit 9cb57e0daa
Signed by: asxpi
GPG key ID: 4F8851660FA4121B

View file

@ -122,6 +122,7 @@
web-eid-app
opensc # PKCS#11 driver + opensc-tool / pkcs11-tool
pcsc-tools # pcsc_scan for debugging the reader
android-tools # adb reverse for the phone-as-NFC-reader (vpcd) link
# CLI utilities
tmux
@ -144,6 +145,15 @@
# PC/SC daemon — middleware for the smart card reader (Estonian ID)
services.pcscd.enable = true;
# vsmartcard vpcd: Android phone NFC as a PC/SC reader ("Virtual PCD") via the
# Remote Smart Card Reader app; over USB: adb reverse tcp:35963 tcp:35963
services.pcscd.readerConfigs = [ ''
FRIENDLYNAME "Virtual PCD"
DEVICENAME /dev/null:0x8C7B
LIBPATH ${pkgs.vsmartcard-vpcd}/var/lib/pcsc/drivers/serial/libifdvpcd.so
CHANNELID 0x8C7B
'' ];
# The built-in reader (2ce3:9563 "Generic EMV Smartcard Reader") is not in
# the shipped CCID udev rules, so pcscd hit LIBUSB_ERROR_ACCESS. Grant access.
services.udev.extraRules = ''