- The porting of Keyple 2.0.0 in C++ is finished since end of May 2022. A full review by the Eclipse foundation will be requested. The official release 2.0 of Keyple C++ is planned for July.
- New enhancements are planned for the Calypso library
- confidential secure session (REV3.2 Prime Extended based on AES)
- asymmetric authentication (REV3.3 Prime PKI based on ECC)
- REV1/REV2 product specific supports
- Looking to migrate the Java implementation in Kotlin Multiplatform in order to handle iOS & some native target for ticketing application based on a generic code compliant with Java environment.
A Hoplink extension will be proposed (based on a high-level API on top of the Calypso API).
Evolutions of the Keyple components after the version 2.0.0 of the SDK
- Support of the full card command set of Calypso Prime Regular
- For the Get Data command, addition of the mode 'EF list' & 'traceability',
- Binary files' access for read, write, & update,
- Read Record Multiple, Search Record Multiple, Increase Multiple & Decrease Multiple
- Pre-personalization : possibility to personalized keyset with Change Key
- SAM operation improvements
- Defintion of an API to operate standalone SAM transaction
- Support of the PSO data signature feature: signature generation & verification. Possibility to operate a signature operation through the Card Transaction or a SAM Transaction.
|planned for 2022/09
- Support of Calypso Prime PKI
- Asymetric authentication of a Calypso card without involving a SAM
|planned for 2022/10
- Support of Calypso Prime Extended
- Capability to operate a Calypso secure session in confidential mode
Global evolutions to the Keyple SDK until version 2.0.0 (obsolete)
Until the version 2.0.0 of Keyple, the components of Keyple Java or Keyple C++ were released at the same time with the same version number.
The porting in C++ of Keyple Java is based on the same Object-Oriented Model. The Keyple C++ implemntation provides the same core & Calypso feature, but the support of the distributed module isn’t part of the scope, and for reader integration, only the PC/SC reader is provided.
||planned for 2022/03
The API for plugin implementation and for distributed architecture configuration have been simplified
- Calypso terminal compliance
- Removal of dependencies between Keyple components (Core, Calypso extension, and specific plugins): all components are released with their own version number and could evolve separately.
- Until the version 1.0.0, the source code of all the Keyple Java components was hosted in a single repository: https://github.com/eclipse/keyple-java. It was the same for Keyple C++ components hosted in https://github.com/eclipse/keyple-cpp. For the version 1.0.0 and below, there were strong dependencies between the Keyple components which had all to be released in the same version number.
- To facilitate the evolution and the maintenance, the version 2.0.0 proposes a full reorganization of the code. All the components are split in different repositories in order to allow them to evolve independently. The public interfaces are also separated to the specific implementations: the repositories are dedicated to host API or library implementation.
- The Keyple Java components are managed through 16 repositories.
Main unsolved issue: the versioning of the different components (Core, Calypso extension, and specific plugins) is still linked: to manage transitive importation the artifact are built with the same version reference.
- Core - simplifications of the low-level Plugin API dedicated for plugin developers.
- Remote Plugin - new stable & simpler version
- Android plugins - NFC & OMAPI plugins optimized for all Android versions
- simplified high-level API to parse the Portable Object APDU responses, & recover the data through a card image.
- addition of the support of the PO PIN feature, PO Stored Value transaction, & the SAM lock
- Core - Observable Reader interface evolution to improve the support of smart card reader solutions.
- Calypso - simplified high-level API to build the Portable Object APDU commands (PO data still recovered through a lower API managing APDI response parser)
||initial public java implementation
- Calypso - low-level API to manage the common Calypso features (secure session for authentication, read and write commands of EF records)