Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Welcome to the LibLogicalAccess project web page, an open source RFID library developed in C++ for Linux / Windows, also available on C#, Delphi… for who is using the Microsoft operating system.
LibLogicalAccess library provides low level commands access and high level generic abstraction for several chip and reader (PC/SC readers like OMNIKEY, STid readers …) of the market on 125Khz (EM4102, HID Prox …), 13.56Mhz ISO14443 / ISO15693 (Mifare Classic, Mifare DESFire Legacy/EV1/EV2, HID iClass …) and 433Mhz frequencies.
You can find the supported hardware list details on this page.
Follow this installation instructions
Follow this build instructions
The generated doxygen API documentation is available here.
Use this SDK in other languages on Windows:
Is it free?
- C++: yes, totally. You have to respect the license terms.
- Other language: a license use has to be purchased from ISLOG for your company.
What is the license of this library?
- C++: LGPL
- Other language: ISLOG LibLogicalAccess License
Is it Open Source?
Yes, this C++ library is open source.
Because of a few legal issues, we had to do some architectural review to match licenses and NDA from several hardware companies. LibLogicalAccess C++ code is completely open, but some dynamic plug-ins not provided with official releases, like HID iClass chips, are closed source. No choices.
Who we are?
The project has grown as an internal RFID library on ISLOG company for products targeting the access control industry. As it became mature, it was split into an independent public project available to the community. Today, it is still mainly maintained by ISLOG as it is an important product component.
To be less company oriented and more individual, we are three main contributors working at ISLOG: Maxime C., Adrien J., Arnaud K. ...
Why another RFID library?
Well, this question didn't exists when this library was created as it was before most current available libraries dealing with RFID. But we make a difference ; a good or a bad one, it depends what you are looking for ;)
- the library is totally developed in C++. It is not a C library that you can build on your C++ project. It is a C++ library!
- some projects require native library because they have to run close to the system or for performance reason, it's why C++ is a respectable choice over python, java or other languages.
- can also be use on C#, Delphi, VB…
- Windows, Linux & Mac OS compliant, 32-bit and 64-bit.
- not dependent to a hardware company
- created in 2005, it was completely review in 2008 to add generic abstraction, it is still highly maintained in 2015
- support several worldwide used access control RFID technologies
- it doesn't have any goal to manage modulation, collision … That's the purpose of drivers or other libraries like libnfc. This library is one level above this stuff.
LibLogicalAccess and LibNFC
LibLogicalAccess is not limited to NFC neither ISO 14443. On LibNFC world, LibLogicalAccess can be compared to LibFreefare which is a layer above LibNFC. Since 2015, we also provide a plug-in which use LibNFC as a reader technology for LibLogicalAccess. See liblogicalacccess-libnfc project.
LibLogicalAccess and OpenSC
LibLogicalAccess doesn't have any attempt to support PKCS#11 neither PKCS#15 standards for smart cards (even contactless smart card). OpenSC does that well today and you should take a look on this project if this is your attempt.
Why that name?
That's an easy one. The project came from ISLOG company which at the beginning was only specialized in logical access solution. It textually means “Library for Logical Access”. But it's restrictive as logical access is only one use case of the library. Again historical reason. librfid name is already overused on the web and we found LibLogicalAccess name cool enough to keep it. Maybe it's just not good enough for marketing…