LibreSCRS
COLLECTIVE
Fiscal Host: Open Source Europe
Open-source smart card toolkit for Linux & macOS. Read and authenticate with smart cards — no proprietary software needed.
Contribute
Become a financial contributor.
Financial Contributions
LibreSCRS is all of us
Our contributors 2
Thank you for supporting LibreSCRS.
Connect
Let’s get the ball rolling!
News from LibreSCRS
Updates on our activities and progress.
LibreSCRS releases
New release: 1. LibreCelik: https://github.com/LibreSCRS/LibreCelik/releases 2. LibreMiddleware: https://github.com/LibreSCRS/LibreMiddleware/releases
Published on March 5, 2026 by hirashix0
About
LibreSCRS is an open-source toolkit for reading, authenticating, and signing with smart cards on Linux and macOS. It provides a desktop application (LibreCelik) and standalone C++20 middleware libraries (LibreMiddleware).
Supported Cards
eMRTD / ePassports — ICAO 9303-compliant travel documents with PACE and BAC authentication, Secure Messaging, and document authenticity verification.
Serbian eID — Gemalto 2014+ and IF2020 Foreigner cards, including digital signature certificates and PIN management via CardEdge.
Serbian Vehicle Registration — EU Directive 2003/127/EC compliant, all EU mandatory and optional fields. Serbian Health Insurance — RFZO insured person, employer, and coverage data.
PIV — US federal identity standard (NIST SP 800-73): certificates, photo, fingerprints, PIN management. PKCS#15 — Generic PKI standard for certificate discovery, PIN management, and digital signing on any compliant card.
How It Works
Insert a card and LibreCelik identifies it and selects the correct protocol handler automatically. Data appears progressively as it is read. The plugin architecture allows adding new card types by dropping in a shared library — no recompilation needed. A standalone PKCS#11 module enables browser authentication and digital signing without the GUI.
Background
Existing open-source projects — JFreesteel (Java) and Bas Celik (Go) — showed that reading citizen data from Serbian eID cards was possible without proprietary software, but they focused on demographic data. LibreSCRS covers both data reading and the cryptographic side — the CardEdge PKI applet that handles certificates, digital signatures, and PIN management — across all Serbian card types. The Serbian eID driver for OpenSC was accepted upstream (PR #3595).
Over time, the system grew beyond Serbian cards. eMRTD e-passport support, PKCS#15 generic card handling, and PIV made it a general-purpose smart card toolkit.
Technical Foundation
LibreMiddleware is pure C++20 with no Qt dependency. It handles PC/SC communication, TLV/BER-TLV parsing, PACE and BAC key agreement, Secure Messaging, PKCS#15 discovery, and NIST SP 800-73 PIV data modeling.
How Funds Are Used
Testing hardware (card readers, smart cards from different countries), development time for new card plugins, CI/CD infrastructure, upstream contributions and maintenance.
https://librescrs.github.io/
Supported Cards
eMRTD / ePassports — ICAO 9303-compliant travel documents with PACE and BAC authentication, Secure Messaging, and document authenticity verification.
Serbian eID — Gemalto 2014+ and IF2020 Foreigner cards, including digital signature certificates and PIN management via CardEdge.
Serbian Vehicle Registration — EU Directive 2003/127/EC compliant, all EU mandatory and optional fields. Serbian Health Insurance — RFZO insured person, employer, and coverage data.
PIV — US federal identity standard (NIST SP 800-73): certificates, photo, fingerprints, PIN management. PKCS#15 — Generic PKI standard for certificate discovery, PIN management, and digital signing on any compliant card.
How It Works
Insert a card and LibreCelik identifies it and selects the correct protocol handler automatically. Data appears progressively as it is read. The plugin architecture allows adding new card types by dropping in a shared library — no recompilation needed. A standalone PKCS#11 module enables browser authentication and digital signing without the GUI.
Background
Existing open-source projects — JFreesteel (Java) and Bas Celik (Go) — showed that reading citizen data from Serbian eID cards was possible without proprietary software, but they focused on demographic data. LibreSCRS covers both data reading and the cryptographic side — the CardEdge PKI applet that handles certificates, digital signatures, and PIN management — across all Serbian card types. The Serbian eID driver for OpenSC was accepted upstream (PR #3595).
Over time, the system grew beyond Serbian cards. eMRTD e-passport support, PKCS#15 generic card handling, and PIV made it a general-purpose smart card toolkit.
Technical Foundation
LibreMiddleware is pure C++20 with no Qt dependency. It handles PC/SC communication, TLV/BER-TLV parsing, PACE and BAC key agreement, Secure Messaging, PKCS#15 discovery, and NIST SP 800-73 PIV data modeling.
How Funds Are Used
Testing hardware (card readers, smart cards from different countries), development time for new card plugins, CI/CD infrastructure, upstream contributions and maintenance.
https://librescrs.github.io/