This is the README file for the PCSC/Ada library. In this file, you’ll find information on how to compile, test, install the PCSC/Ada library and use the example applications. For the latest information to PCSC/Ada, visit the website at


Release version

The current release version of PCSC/Ada is available at

Verify a Release

To verify the integrity and authenticity of the distribution tarball, import the key and type the following command:

$ gpg --verify libpcscada-{version}.tar.bz2.sig

The key fingerprint of the public key (0xBB793815) is:

Key fingerprint = A2FB FF56 83FB 67D8 017B  C50C F8C5 F8B5 BB79 3815

Development version

The current development version of PCSC/Ada is available through its git repository:

$ git clone

A browsable version of the repository is available here:


To compile PCSC/Ada on your system, you need the following libraries/frameworks installed:

The build process of PCSC/Ada is quite easy and straightforward. Just type in the following commands:

$ tar xjf libpcscada-{revision}.tar.bz2
$ cd libpcscada-{revision}
$ make

If no errors occur during the build process, you have now successfully built the PCSC/Ada library from sources.


Before you install PCSC/Ada on your system, you might want to test the library and verify that everything works as expected. PCSC/Ada contains both a unit test suite and an integration test application. To run the unit tests of PCSC/Ada, just type:

$ make utests

This will run all Ahven based unit tests. All tests should be marked with PASS behind the test name. To run the integration tests of PCSC/Ada, you need to have at least one smart card reader and one smart card ready. Type the following command to run the integration tests:

$ make itests

This will run an Ada implementation of the pcsc-lite testpcsc binary used to test the pcsc-lite framework. If no exception arises, you should be good to go. If you really want make sure everything is alright, compare the output of make itests with the output when running testpcsc for a given card / reader combination.


To install PCSC/Ada on your system, type the following:

$ make PREFIX=/usr/local install

You must be root to install the library system wide. If no PREFIX is specified, $(HOME)/libraries is used as install destination.


PCSC/Ada provides some example code to demonstrate the usage of the PCSC/Ada API. To build all example apps, type the following:

$ make examples

You can start an example application like so: obj/examples/pinpad


This example application is a simple implementation of a reader monitor using the Reader_Monitor task provided by PCSC/Ada. After startup, cardd will observe all smart card readers of a system for status changes (e.g. card inserted, card removed). It will print out information if states of readers change.


This small application will perform a SPE (secure pin entry) operation with a given card / reader. It will first check if the reader supports this operation and will exit if not. If it does support SPE, the user is asked to enter the PIN of a given smart card by using the pinpad of the smart card reader. The result of the operation is displayed after completion.


The thin_example binary (obj/examples/thin_example) can be used to test the thin binding of PCSC/Ada. You need to adopt the reader name Reader_Name in examples/thin/thin_example.adb to make this test app work.