Eclipse Keyple® is an open source framework to facilitate the implementation of terminal processing operating smart card readers, and to defined advanced secure ticketing transaction.
The Keyple Core API provides a universal interface to manage smart card readers:
- The solution is able to handle any smart card reader solutions: standard (contacts/contactless PC/SC, NFC, OMAPI) or proprietary in a generic way.
- It’s also compatible with any terminal architecture: local or remote, for any kind of terminals: mobile, embedded or server. Remote smart card readers could be managed as local readers in a transparent way.
The Core API can be extended with command sets of specific smart card solutions in order to define advanced secure transactions. The project hosts a first extension to support the Calypso ticketing solution.
The Keyple Calypso API provides a high-level interface to implement fast and secure contactless ticketing transactions based on the Calypso standard.
- The settings of the Calypso cards & SAM APDU commands are automatically generated according to the functional operations defined by the developers.
- Cards & SAM commands are transmitted in an optimized grouping to limit network exchanges in case of distributed architecture.
Two implementations are currentely proposed for Java (dependency Java SE 6 and later, Android 4.4 or later) and for C++ (dependency C++ 11). Both implementations are based on the same oriented-object API.
- The components of Keyple Java are:
- 'Keyple Core': the generic interface to manage smart card reader solutions and select secure element.
- 'Calypso Extension': the library to define transaction with Calypso card.
- 'stub plugin': a tool to emulate readers and cards to operate Keyple without hardware elemnts.
- 'PC/SC plugin': the library to interface PC/SC readers to the Keyple Core.
- 'Android NFC plugin': the library to interface the native NFC contactless readers on Android device.
- 'OMAPI plugin': the library to interface the OMAPI contacts readers on Android device.
- 'Distributed module': a specific plugin solution to operate remote readers as localy.
- The components of Keyple C++ are:
- The Keyple Cpp is currently limited to support of the 'Calypso Core', the 'Calypso Extension', the 'stub plugin', and the ‘PC/SC plugin' (based on the same API as for Java components). The 'Distributed module' client will be added in the version 2.0.0.
More information on https://keyple.org/