Skip to content

eclipse-keyple/keyple-plugin-pcsc-java-lib

Security Rating Reliability Rating Maintainability Rating Lines of Code Duplicated Lines (%) Coverage

Keyple Plugin PC/SC Java Library

Overview

The Keyple Plugin PC/SC Java Library is an add-on to allow an application using Keyple to interact with PC/SC readers.

Documentation & Contribution Guide

The full documentation, including the user guide, download information and contribution guide, is available on the Keyple website keyple.org.

API documentation

API documentation & class diagram is available online: docs.keyple.org/keyple-plugin-pcsc-java-lib

Examples

Examples of implementation are available in the following repository: github.com/eclipse-keyple/keyple-java-example

Limitations

This plugin accesses the machine's PC/SC driver using the calypsonet/jnasmartcardio library, which is a fork of jnasmartcardio. This fork resolves some of the limitations of the standard javax.smartcardio library and adds support for missing disconnect modes (UNPOWER and EJECT) that are absent in standard implementations.

However, several limitations remain under the Linux operating system, whose PC/SC layer is based on the pcsclite library.

Indeed, access to a single PC/SC context via pcsclite under Linux is limited to one thread at a time, which may considerably lengthens card insertion/removal observation and APDU execution times if several readers are observed simultaneously and/or if different threads are used for business processing.

To overcome these limitations, under Linux it may be necessary to specify the duration of the observation cycle using the setCardMonitoringCycleDuration(...) method of the factory builder. Note that reducing this duration increases the CPU usage generated by the application. We recommend choosing a value that offers the best compromise between performance and CPU usage. The specified duration may potentially be added one or more times to the processing time of each APDUs.

Note that it is also possible to replace the default jnasmartcardio PC/SC SecurityProvider with another one using the setProvider(...) method of the factory builder (e.g. intarsys smartcard-io v1.17.0).

About the source code

The code is built with Gradle and is compliant with Java 1.8 in order to address a wide range of applications.

Continuous Integration

This project uses GitHub Actions for continuous integration. Every push and pull request triggers automated builds and checks to ensure code quality and maintain compatibility with the defined specifications.

About

Eclipse Keyple™ Project: PC/SC plugin lib for end users

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages