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

Recurring contribution
Backer

Support ongoing development

Starts at
€5 EUR / month
Recurring contribution
Supporter

Help fund testing hardware and CI/CD

€15 EUR / month
Recurring contribution
Sponsor

Your name in project README

€50 EUR / month
Recurring contribution
Gold Sponsor

Logo in README + website

Starts at
€100 EUR / month
One-time contribution
Card Reader

Fund a smart card reader for testing

€30 EUR
One-time contribution
Card Type

Contribute toward new card type support

€100 EUR
One-time contribution
Major Feature

Fund development of a major feature

€500 EUR
Custom contribution
Donation
Make a custom one-time or recurring contribution.

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
Read more
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/

Our team