diff --git a/index.json b/index.json
index 02041b2..8bde8b4 100644
--- a/index.json
+++ b/index.json
@@ -1 +1 @@
-[{"authors":null,"categories":null,"content":"Objectives for ticketing terminals Ensure interoperability between ticketing terminals and contactless cards\nCNA has specified a set of requirements for the different software layers of a ticketing terminal. Enable ticketing applications to be portable independently of terminal solutions\nCNA (the Calypso Networks Association) has standardized interfaces for the different software layers of a terminal: the ticketing terminal APIs. the open-source Eclipse Keypop project offers Java and C++ code translations of these interfaces for ticketing terminals . Facilitate the implementation of ticketing terminals\nThe open-source Eclipse Keyple project initiated by CNA is a first reference implementation of the ticketing terminal interfaces. Ticketing terminal requirements To ensure interoperability between ticketing terminal solutions and contactless card solutions, CNA has specified requirements addressing specifically the 3 different software layers of ticketing terminals:\nreader layer requirements solution layer requirements ticketing layer requirements (These 3 documents can be downloaded by registering on the CNA website.) Generally, interoperability problems between cards and terminals are often due to non-compliance with one of these requirements.\nMost of these terminal requirements are universal:\nThe reader layer requirements are generic and have no connection with the Calypso solution; they apply to any terminal solution operating smart card readers. For a ticketing system using a contactless solution other than Calypso, solution-specific requirements can be defined for the software layer specific to this solution (as for Calypso). The requirements for the ticketing layer target terminal applications according to specific ticketing use cases: they are not necessarily linked to the Calypso solution. Ticketing terminal APIs The ‘reader’ and ‘Calypso’ interfaces of the Ticketing Terminal APIs have been designed with a structure compatible with the terminal architecture on which the terminal requirements are based. So a solution implementing these APIs can meet the requirements of the reader and Calypso layers (responsibility for fulfilling the requirements of the ticketing layer lies with the applications).\nPortability of ticketing terminal applications Another advantage of standardizing terminal APIs is that it also brings portability of terminal applications independently of reader or Calypso middleware solutions.\nCertification of ticketing terminal solutions In the near future, for example, CNA plans to offer a certification service to check whether ticketing terminal solutions actually comply with terminal requirements for the reader and Calypso layers. The middleware to be certified will then have to be based on standardized ticketing terminal APIs in order to be verified by the certification tool.\nKeypop API Eclipse Keypop offers Java and C++ code conversions of the API definitions for ticketing terminals: these faithfully follow the interface definitions issued by CNA. These Java and C++ APIs are hosted by the Eclipse Foundation under the MIT open source license: a very permissive license that offers great flexibility to the middleware solutions implementing them (proprietary or open source). These interfaces guarantee the independence of the terminal applications using them, from the middleware solutions implementing them.\nEclipse Keyple is an initial reference implementation. Other projects have expressed interest in proposing alternative implementations of Keypop APIs. Keyple middleware Eclipse Keyple is an open source middleware solution implementing the Keypop APIs.\nOpenness Two implementations of Keyple are available in Java and C++, hosted by the Eclipse Foundation under the Eclipse Public License version 2.0. This license offers great flexibility to terminal solutions (proprietary or open source) using Keyple libraries. Keyple is a truly open project: it does not belong to one particular company, which can decide at any time to close the project for further development. The advantage of joining the Eclipse Foundation is that it guarantees that the solution respects intellectual property rights, and that the project’s governance is open. Anyone in the open source community can contribute, the project is driven by its contributors.\nScalability In addition to implementing the terminal APIs in compliance with the terminal’s requirements, the Keyple solution also provides extension capabilities:\nPlugin APIs can be used to interface any smart card reader hardware solution. Distributed APIs can be used to design distributed architectures for remote control of smartcard readers, regardless of communication mode. Completeness \u0026amp; maintenability The 2 main strengths of the Keyple solution:\nThe Keyple Calypso module is probably the most complete Calypso middleware on the market: it supports all card transaction features. Keyple’s modular design enables the solution to be easily maintained and flexibly upgraded …","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732112853,"objectID":"c7bc731a6e7b0f007ff3cd93f1f73039","permalink":"https://keyple-support.calypsonet.org/keyple-support/introduction/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/introduction/","section":"keyple-support","summary":"Objectives for ticketing terminals Ensure interoperability between ticketing terminals and contactless cards\nCNA has specified a set of requirements for the different software layers of a ticketing terminal. Enable ticketing applications to be portable independently of terminal solutions","tags":null,"title":"Introduction to Keyple","type":"book"},{"authors":null,"categories":null,"content":"\nName OS Language License Access Info Calypso Card Analyzer Windows, Linux, macOS Java/Kotlin EPL-2.0 Open Source Calypso Card Analyzer × The Calypso Networks Association provides a first tool to showcase the potential of Keyple Java-based ticketing terminals, to help check the configuration and file structure of Calypso cards. Close Calypso Basic Legacy SAM Personalizer Windows, Linux, macOS Java/Kotlin CNA Member Reserved Calypso Basic Legacy SAM Personalization Tool × The Calypso Basic Legacy SAM Personalization Tool is dedicated to personalization of the Legacy SAM in the objective of Calypso Basic card keys injection. Close Calypso Basic Card Personalizer Windows, Linux, macOS Java/Kotlin CNA Member Reserved Calypso Basic Card Personalization Tool × The Calypso Basic Card Personalization Tool is dedicated to personalization of Calypso Basic card, i.e. AID personalization and keys injection. Close ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1731517278,"objectID":"de86f7f71ec8e6eed6b68701040de708","permalink":"https://keyple-support.calypsonet.org/assistance-tools/overview/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/overview/","section":"assistance-tools","summary":"Name OS Language License Access Info Calypso Card Analyzer Windows, Linux, macOS Java/Kotlin EPL-2.0 Open Source Calypso Card Analyzer × The Calypso Networks Association provides a first tool to showcase the potential of Keyple Java-based ticketing terminals, to help check the configuration and file structure of Calypso cards.","tags":null,"title":"Assistance Tools","type":"book"},{"authors":null,"categories":null,"content":"Mock of readers and smartcards To test Keyple middleware without hardware (no smart card reader, and no smart card), the project provides:\nthe ‘Stub’ plugin, which simulates a virtual smart card reader, with various specific characteristics. in addition, the simple examples demonstrating the implementation of Keyple include generators for simulating in Java and C++ the “static” behavior of a Calypso card or SAM to APDU commands. Availability of a test kit with Calypso cards and SAMs For “operational” testing, smart card reader solutions need to be integrated into the terminal with reader plugins (based on the Plugin API). CNA sells test kits including various Calypso cards from all ranges (Prime, Light, Basic) and samples of test legacy SAMs.\n","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732112853,"objectID":"d175104199db4e78967567d6e73bb7ae","permalink":"https://keyple-support.calypsonet.org/keyple-support/test-kit/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/test-kit/","section":"keyple-support","summary":"Mock of readers and smartcards To test Keyple middleware without hardware (no smart card reader, and no smart card), the project provides:\nthe ‘Stub’ plugin, which simulates a virtual smart card reader, with various specific characteristics.","tags":null,"title":"Calypso cards \u0026 SAMs for running Keyple","type":"book"},{"authors":null,"categories":null,"content":"\nWhat is the CNA Tool Card Analyzer App Suite? The CNA Tool Card Analyzer App Suite consists of two command-line tools:\nTool_AnalyzeCardFileStructure: analyzes the file structure of a Calypso smart card and generates a JSON report containing the card’s structure and application data. Tool_CheckCardFileStructure: checks the file structure of a Calypso card against a given JSON file containing the expected file structure. Why use the CNA Tool Card Analyzer App Suite? This suite helps developers and testers:\nUnderstand the data stored on a Calypso card. Verify compliance with Calypso specifications. Troubleshoot potential issues. Compare card structure against a predefined template. The following sections provide detailed instructions on using the CNA Tool Card Analyzer App Suite to retrieve and analyze the contents of a Calypso card and to verify its compliance against a reference file.\nPrerequisites Java: ensure you have a Java Runtime Environment (JRE) installed on your system. You can download it from www.java.com. PC/SC card reader: a contactless PC/SC compliant card reader is required to interact with the Calypso card. Download the Apps Go to the releases page to download the latest version of the application suite. Download the executable JAR files: Tool_AnalyzeCardFileStructure-x.y.z.jar Tool_CheckCardFileStructure-x.y.z.jar Analyze a Card Open a terminal or command prompt. Navigate to the directory containing Tool_AnalyzeCardFileStructure-x.y.z.jar. Place your Calypso card on the reader. Execute the following command: java -jar Tool_AnalyzeCardFileStructure-x.y.z.jar [readerNameRegex] readerNameRegex (optional): a regular expression to filter the card readers. If not provided, a default regex ( .*(ASK.*|Identiv.*2|ACS ACR122U|SCR3310).*) is used. The analysis results will be displayed in the terminal and JSON file containing the card structure will be saved. Supported AID Prefixes The Tool_AnalyzeCardFileStructure is configured to recognize and analyze Calypso cards with specific AID prefixes. The supported prefixes are:\nA000000291 A000000404 D276000085 334D54522E 315449432E 304554502E If the card’s DF Name does not match one of the supported AID prefixes, you will need to update the configuration in the source code to include the new AID prefix and recompile the application for proper analysis.\nJSON Output The JSON output generated by Tool_AnalyzeCardFileStructure provides a structured view of the Calypso smart card data analyzed. Below is an explanation of the key fields found in the JSON output:\n{ \u0026#34;id\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;infos\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;date\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;software\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;traceability\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;applicationList\u0026#34;: [ { \u0026#34;fci\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;calypsoRevision\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;aid\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;applicationType\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;applicationSubtype\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;issuer\u0026#34;: { \u0026#34;value\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;name\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;csn\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;csnDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;sessionModif\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;sessionModifDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;bufferSize\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;platform\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;revision\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;transactionCounter\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;transactionCounterDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;accessConditions\u0026#34;: { \u0026#34;group0\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group1\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group2\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group3\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; } }, \u0026#34;status\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kif1\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kif2\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kif3\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kvc1\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kvc2\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kvc3\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;lid\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;fileList\u0026#34;: [ { \u0026#34;sfi\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;lid\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;efType\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;recSize\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;recSizeDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;numRec\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;numRecDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;accessConditions\u0026#34;: { \u0026#34;group0\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group1\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group2\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group3\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; } }, \u0026#34;ref\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;recordDataList\u0026#34;: [ { \u0026#34;index\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;string\u0026#34; } ] } ] } ] } Field Descriptions id: string, unique identifier for the profile. infos: string, type of analysis performed (e.g., \u0026#34;AnalyzeCardFileStructure\u0026#34;). date: string, date and time when the analysis was conducted. version: integer, JSON model version. software: string, name of the software used for analysis (e.g., \u0026#34;Calypso Card Analyzer\u0026#34;). traceability: string, hexadecimal string encoding traceability information for auditing. Application List applicationList: array, list of applications on the card, each application containing the following fields: fci: string, File Control Information for the application. calypsoRevision: string, Calypso specification version, e.g., \u0026#34;PRIME_REVISION_3\u0026#34;. aid: string, Application …","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1731517278,"objectID":"4c889909b42adbbeeef5988221ae4b9d","permalink":"https://keyple-support.calypsonet.org/assistance-tools/card-configuration-audit/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/card-configuration-audit/","section":"assistance-tools","summary":"What is the CNA Tool Card Analyzer App Suite? The CNA Tool Card Analyzer App Suite consists of two command-line tools:\nTool_AnalyzeCardFileStructure: analyzes the file structure of a Calypso smart card and generates a JSON report containing the card’s structure and application data.","tags":null,"title":"Calypso card configuration audit tool","type":"book"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732112853,"objectID":"8c836f531dd092d35b996193b1932530","permalink":"https://keyple-support.calypsonet.org/keyple-support/compliance/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/compliance/","section":"keyple-support","summary":"","tags":null,"title":"Interoperability \u0026 compliance of Keyple-based ticketing terminal solutions","type":"book"},{"authors":null,"categories":null,"content":"\nWhat is the Calypso Basic Legacy SAM Personalization Tool? The Calypso Basic Legacy SAM Personalization Tool is a desktop application designed to create a SAM CPP specifically dedicated to the personalization of Calypso Basic cards by injecting the necessary keys.\nKey Features:\nSAM Dump: Displays the SAM parameters and keys settings. SAM Personalization: Enables the transfer of keys and configurations from an origin SAM SP to a blank SAM CPP. Dual Reader Setup: Requires a Target SAM Reader for the blank SAM and an Origin SAM Reader containing the SAM SP with desired settings and keys. Why use the Calypso Basic Legacy SAM Personalization Tool? This tool helps for operators who need to prepare SAM CPP for field deployment of Calypso Basic card personalized with the basic-card-personalizer tool.\nThis user guide explains how to personalize a SAM CPP needed for Calypso Basic card keys injection.\nHardware Requirements This tool requires two PC/SC contact readers:\nTarget SAM Reader: this reader holds the blank SAM CPP you want to personalize. Origin SAM Reader: this reader contains the SAM SP with the desired keys and settings. Installation The software is available in a GitHub repository. Go to the releases page to download it. (Note: the GitHub repository is private. Please request access from CNA). Choose the installation file that matches your operating system: Windows: .msi package macOS: .dmg package Linux: .deb package Windows: double-click the .msi package to start the installation. macOS: open the .dmg file and drag the application to the Applications folder. Linux: use your distribution’s package manager to install the .deb package. Important note: the installer does not automatically create a shortcut in the Start Menu (Windows) or Applications menu (macOS). You need to create one manually. Launch the Tool After installation, find the executable in the installation directory: Windows: C:\\Program Files\\cna-tool-basic-legacysam-perso-app\\ macOS: /Applications/cna-tool-basic-legacysam-perso-app/ Linux: /opt/cna-tool-basic-legacysam-perso-app/ (or your user’s home directory) Double-click the executable to launch the Calypso Basic Legacy SAM Personalization Tool. Application UI The application window has a top menu and three tabs:\nSettings Menu Click the Settings menu. Select the Target SAM Reader name. This is where you will insert your blank SAM. Select the Origin SAM Reader name. This SAM contains the data you want to transfer to the target SAM. Enter the Origin SAM Unlock Value if required. Tabs SAM Dump: shows the detailed information and parameters of the SAM inserted in the target SAM reader. SAM Personalization: configure and execute the personalization process. Application Info: view logs and events related to the application and SAM readers. Useful for troubleshooting. Personalize a SAM CPP Select the SAM Personalization tab. Insert a blank SAM in the target SAM reader. Insert the SAM SP in the origin SAM reader. Set the parameters: Parameter version and owner data (informative) System keys KVC Work keys KIF and KVC Lock parameters Click Execute to personalize your SAM. Refresh Reader Detection If you connect or disconnect SAM readers while the application is running, you might need to switch between the tabs (SAM Dump, SAM Personalization, Application Info) for the application to recognize the changes.\nScreenshots Installation Settings SAM dump SAM personalization Application info Disclaimer This tool is provided by CNA for its members. Only active CNA members are authorized to use this tool. A member is not authorized to distribute this tool to other parties.\nUser Requirements and Responsibilities Target Audience: users familiar with SAM personalization and the Calypso system. Prerequisites: necessary hardware (SAM readers) and software (drivers) installed and configured correctly. Responsibilities: ensure the correct selection of target and origin SAMs, and the proper handling of unlock values and other sensitive information. Usage: authorized personnel only. Misuse or unauthorized distribution is strictly prohibited. ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1731517278,"objectID":"677e6b7253077b07b78026324ba7cdcc","permalink":"https://keyple-support.calypsonet.org/assistance-tools/basic-legacysam-personalizer/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/basic-legacysam-personalizer/","section":"assistance-tools","summary":"What is the Calypso Basic Legacy SAM Personalization Tool? The Calypso Basic Legacy SAM Personalization Tool is a desktop application designed to create a SAM CPP specifically dedicated to the personalization of Calypso Basic cards by injecting the necessary keys.","tags":null,"title":"Basic keyset legacy SAM personalization tool","type":"book"},{"authors":null,"categories":null,"content":"Properties of a smartcard reader solution through the Reader API In order to operate smartcard reader solutions, a ticketing application on a Keyple-based terminal uses the « generic » terminal reader API. The use of this interface is independent of the Keyple solution. The Reader API categorizes the smartcard readers into 2 types:\n“simple” card readers, which only manage “synchronously” the card application selection, “observable” card readers, which also support “asynchronous” card application selection. In general, all “contactless” reader solutions are observable, because for these readers the smartcard is always removable: it is necessarily necessary to notify applications of card insertion or removal events from the reader’s RF field. On the other hand, for some “contact” reader solutions, card presence is statically defined: these readers don’t need to be observed.\nProperties of a smartcard reader solution through the Keyple Service API For a Keyple-based terminal, smartcard reader solutions are interfaced using reader plug-ins. Keyple’s Service API enables ticketing terminal applications to access “locally” 3 categories of reader solutions:\na “simple” plugin enables only static configuration of smartcard readers → the most common case in embedded systems. an “observable” plugin enables the management of reader solutions that can be hot-plugged or hot-disconnected. → mainly 2 uses: readers connected over serial links (e.g. USB), or mobile solutions with an energy-saving mode (reader power supply cut off at standby). a “pool” plugin for interfacing with solutions offering dynamic allocation of reader resources according to the need. → this is how an HSM-type solution works. Integrating a smartcard reader solution into Keyple through the Plugin API For a Keyple-based terminal, a dedicated plug-in for any smart card reader solution must implement Keyple’s Plugin API:\nSPIs are differentiated in particular for the 2 reader types and the 3 plug-in categories. other features are linked to the native API capabilities of reader solutions: autonomy to manage the Select Application command autonomous synchronous, autonomous asynchronous or non-autonomous card insertion detection, detection of card withdrawal at the end of a transaction, managed autonomously (synchronous or asynchronous) or non-autonomous, ability to detect card removal during a card transaction The Keyple project offers a guide for developing plugins to integrate smartcard reader solutions.\nAdditional ‘Reader Plugins’ provided by CNA The Keyple project already hosts several plugins for interfacing with “standard” smartcard reader solutions (PC/SC, Android NFC / OMAPI), or for emulating readers.\nTo illustrate some other ways of designing plugins, CNA has also released additional plugins under the Eclipse Public License version 2:\nFor some of these plugins, the native libraries of the reader solutions are public, in this case, the plugin can be compiled autonomously. In the opposite case, a mock is used to compensate the unavailability of the native reader library, meaning that it is necessary to contact the manufacturer in order to compile the plugin. 4 plugins are designed for integration into Android based embedded ticketing terminals equipped with a contactless card reader, as well as one or more contact readers for SAMs.\nThe Famoco plugin interfaces only with SAM readers, as the contactless reader on the Famoco supported terminals is based on the standard Android NFC API (natively supported by Keyple). In addition to SAM readers, the Coppernic, Flowbird and Bluebird plug-ins manage an observable contactless reader (capable of detecting the card presence). The 5th plugin enables a Calypso legacy HSM to be interfaced on a Linux server equipped with a Spirtech HSM.\nName Supported Device Native reader library accessibility Interface OS Language Coppernic C-One v2 public Internal Android Kotlin Famoco FX100, FX105, FX200, FX205, FX300, FX915, FX920 public Flowbird Axio Touch Validator/MTBorne validator, Magnetic Axio Touch Validator, Axio 4 Validator, Infigo Driver Console, Voyager Embedded Ticketing Vending Machine, Coppernic C-One, Coppernic C-One V2, Zebra TC77, ACTIA PSDT private Bluebird EF501, EF551 private Legacy HSM Spirtech HSM private IP Linux Java Some special features:\nThe embedded Android terminals addressed by these plugins only support static configurations for their contactless card and contact SAM readers. However, the Coppernic and Famoco plugins are designed as “observable” plugins, because when these portable terminals are in standby mode, their readers are no longer powered (as if they were unplugged). Most of these readers for embedded terminals are “configurable” to enable the support of specific communications protocols. In addition, the Bluebird plugin can be configured to support the Enhanced Contactless Polling (ECP) protocol specific to Apple NFC devices. Plugin API implemented interfaces for each plugin Coppernic …","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732132918,"objectID":"e7c7d90fde06482358abcb6eac666d42","permalink":"https://keyple-support.calypsonet.org/keyple-support/reader-plugins/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/reader-plugins/","section":"keyple-support","summary":"Properties of a smartcard reader solution through the Reader API In order to operate smartcard reader solutions, a ticketing application on a Keyple-based terminal uses the « generic » terminal reader API.","tags":null,"title":"Integrating a smartcard reader solution","type":"book"},{"authors":null,"categories":null,"content":"To illustrate an advanced implementation of the Keyple Java middleware for Calypso-based ticketing systems, CNA has released a full ticketing demonstrator under the Eclipse Public License version 2.0.\nTicketing Service \u0026amp; repository Keyple integration Smartcard readers involved Optimization targets Calypso card Calypso SAM Remote sales \u0026amp; reloading distributed Calypso applications server with ticketing intelligence, based on Keyple light client, Keyple-based or not Integrated on the distributed client side Integrated on the distributed server side Limit the number of network messages between client and server Enable client to be hosted on any light terminal without Keyple dependency Validation standalone Calypso terminal application based on Keyple Locally embedded Locally embedded Limit the number of card and SAM commands during the card transaction Control Stand-alone validation and control terminals The architecture of validation and control tools is very similar, with only the ticketing transaction differing:\nFor validation, the terminal checks that a valid ticket is present, records an event and authorizes access. For control, the terminal checks that a recent validation event is valid. The ticketing data format is just an example defined for demonstration purposes. Terminal application Language OS Supported devices Validation Kotlin Android Any Android device having a contactless reader \u0026amp; a SAM reader Control These demos can be installed on various Android terminals such as Coppernic, Famoco, Flowbird, or Bluebird using the plugins provided by CNA.\nValidation scenario:\nAn autonomous validator on Android-based ticketing terminal that seamlessly starts a secure session when a contactless card is detected. The machine checks the last transport event and the available ticketing contracts. If access is granted, a new event is written. Control scenario:\nA hand-held inspection terminal on Android portable terminal that allows an operator to check the content of a card. The application verifies the validity of the last transport event regarding the current time and location. Finally, it displays the result. Remote sales and reloading distributed service This demo requires a client/server environment:\nOn the server side, the back-office includes a Java server application to process the ticketing sale and manage the Calypso secure session to reload contracts in remote cards. The server manages a pool of Calypso SAM using the PC/SC plugin and the Calypso SAM resource manager. On the client side, any terminal with a contactless reader provides the means to a customer to make the ticket purchase. The Calypso card commands are fully managed by the back-office ticketing server using the Keyple Distributed solution. Terminal application Language / folder OS Supported devices Sales / Reloading server\n(Keyple based) Java Windows, Linux, macOS Java Server with PC/SC SAM readers Sales / Reloading client Keyple-based Kotlin Android Android NFC phone Keyple-less Kotlin .NET C# Windows Windows PC with a PC/SC reader Kotlin Multiplatform \u0026amp; Compose Multiplatform Windows, Linux, macOS, Android, iOS any NFC mobile any PC with a PC/SC reader ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732112853,"objectID":"0fcde62cc4634ef6b6790963dd92a81b","permalink":"https://keyple-support.calypsonet.org/keyple-support/ticketing-demo/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/ticketing-demo/","section":"keyple-support","summary":"To illustrate an advanced implementation of the Keyple Java middleware for Calypso-based ticketing systems, CNA has released a full ticketing demonstrator under the Eclipse Public License version 2.0.\nTicketing Service \u0026 repository Keyple integration Smartcard readers involved Optimization targets Calypso card Calypso SAM Remote sales \u0026 reloading distributed Calypso applications server with ticketing intelligence, based on Keyple light client, Keyple-based or not Integrated on the distributed client side Integrated on the distributed server side Limit the number of network messages between client and server Enable client to be hosted on any light terminal without Keyple dependency Validation standalone Calypso terminal application based on Keyple Locally embedded Locally embedded Limit the number of card and SAM commands during the card transaction Control Stand-alone validation and control terminals The architecture of validation and control tools is very similar, with only the ticketing transaction differing:","tags":null,"title":"Keyple-based advanced ticketing demonstrator","type":"book"},{"authors":null,"categories":null,"content":"\nWhat is the Calypso Basic Card Personalization Tool? The Calypso Basic Card Personalization Tool is a desktop application designed for personalizing Calypso Basic cards by injecting Application Identifiers (AID) and security keys.\nKey Features:\nAID and Key Injection: Enables the injection of AID and encryption keys into a blank Calypso Basic card. Dual Reader Setup: Requires a Target Card Reader for the blank card and a SAM Reader containing the SAM CPP for secure key injection. Why use the Calypso Basic Card Personalization Tool? This tool is essential for operators seeking to personalize Calypso Basic cards for use on their network by injecting keys stored in the SAM CV/CV available in the field. It utilizes a SAM CPP that has been personalized using the basic-legacysam-personalizer tool.\nThis user guide explains how to personalize a Calypso Basic card (AID and keys injection).\nHardware Requirements This tool requires two PC/SC readers:\nTarget Card Reader: this contactless reader holds the blank card you want to personalize. SAM Reader: this contact reader contains the SAM CPP used for keys injection. Installation The software is available in a GitHub repository. Go to the releases page to download it. (Note: the GitHub repository is private. Please request access from CNA). Choose the installation file that matches your operating system: Windows: .msi package macOS: .dmg package Linux: .deb package Windows: double-click the .msi package to start the installation process. macOS: open the .dmg file and drag the application to the Applications folder. Linux: use your distribution’s package manager to install the .deb package. Important note: currently, the installer does not automatically create a shortcut in the Start Menu (Windows) or Applications menu (macOS). If you want quick access, you will need to create a shortcut manually. Launch the Tool Once the installation is complete, you can find the executable in the installation directory. The default location varies depending on your operating system: Windows: C:\\Program Files\\cna-tool-basic-card-perso-app\\ macOS: /Applications/cna-tool-basic-card-perso-app/ Linux: /opt/cna-tool-basic-card-perso-app/ (or in your user’s home directory if you installed it locally) Double-click the executable to launch the Calypso Basic Card Personalization Tool. Application UI The application window has a top menu and two tabs:\nSettings Menu Click the Settings menu. Select the Target Card Reader name. This is where you will present your blank Calypso Basic card. Select the SAM Reader name. Enter the SAM Unlock Value if required. Select the directory for the log file. Tabs Basic Card Personalization: configure and personalize the card. Set parameters like AID, KVC, and KIFs, and start/stop the personalization process. Application Info: view logs and events related to the application and card reader. Useful for troubleshooting. Personalize a Card Select the Basic Card Personalization tab. Insert the SAM CPP into the SAM reader. Enter the personalization parameters: AID System keys KVC Work keys KIF and KVC Click Start to begin scanning for the card. Present a blank card to the card reader’s antenna. Refresh Reader Detection If you connect or disconnect card readers while the application is running, switch between the tabs (Basic Card Personalization, Application Info) to make the application recognize the changes.\nScreenshots Installation Settings Card personalization Application info Disclaimer This tool is provided by CNA for its members. Only active CNA members are authorized to use this tool. A member is not authorized to distribute this tool to other parties.\nUser Requirements and Responsibilities Target Audience: users familiar with Calypso Basic card personalization. Basic knowledge of smart card technology and security concepts is assumed. Prerequisites: necessary hardware (card reader, SAM reader) and software (drivers) installed and configured correctly. Responsibilities: ensure correct selection of the target card and SAM, proper handling of unlock values and sensitive information, and entering the correct personalization parameters (AID, KVC, KIFs). Usage: authorized personnel only. Misuse or unauthorized distribution is strictly prohibited. ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1731517278,"objectID":"c6d153156a8ce53323f826d3e0fd75ee","permalink":"https://keyple-support.calypsonet.org/assistance-tools/basic-card-personalizer/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/basic-card-personalizer/","section":"assistance-tools","summary":"What is the Calypso Basic Card Personalization Tool? The Calypso Basic Card Personalization Tool is a desktop application designed for personalizing Calypso Basic cards by injecting Application Identifiers (AID) and security keys.","tags":null,"title":"Calypso keyset basic card personalization tool","type":"book"},{"authors":null,"categories":null,"content":" ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1730975409,"objectID":"cb897c832fefac1600580877abcdb25c","permalink":"https://keyple-support.calypsonet.org/assistance-tools/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/","section":"assistance-tools","summary":" ","tags":null,"title":"Calypso Tools","type":"book"},{"authors":null,"categories":null,"content":" ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1730975409,"objectID":"baddc669848d6fd7b4b0a0b61676ee97","permalink":"https://keyple-support.calypsonet.org/keyple-support/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/","section":"keyple-support","summary":" ","tags":null,"title":"Calypso Tools","type":"book"}]
\ No newline at end of file
+[{"authors":null,"categories":null,"content":"Objectives for ticketing terminals Ensure interoperability between ticketing terminals and contactless cards\nCNA has specified a set of requirements for the different software layers of a ticketing terminal. Enable ticketing applications to be portable independently of terminal solutions\nCNA (the Calypso Networks Association) has standardized interfaces for the different software layers of a terminal: the ticketing terminal APIs. the open-source Eclipse Keypop project offers Java and C++ code translations of these interfaces for ticketing terminals . Facilitate the implementation of ticketing terminals\nThe open-source Eclipse Keyple project initiated by CNA is a first reference implementation of the ticketing terminal interfaces. Ticketing terminal requirements To ensure interoperability between ticketing terminal solutions and contactless card solutions, CNA has specified requirements addressing specifically the 3 different software layers of ticketing terminals:\nreader layer requirements solution layer requirements ticketing layer requirements (These 3 documents can be downloaded by registering on the CNA website.) Generally, interoperability problems between cards and terminals are often due to non-compliance with one of these requirements.\nMost of these terminal requirements are universal:\nThe reader layer requirements are generic and have no connection with the Calypso solution; they apply to any terminal solution operating smart card readers. For a ticketing system using a contactless solution other than Calypso, solution-specific requirements can be defined for the software layer specific to this solution (as for Calypso). The requirements for the ticketing layer target terminal applications according to specific ticketing use cases: they are not necessarily linked to the Calypso solution. Ticketing terminal APIs The ‘reader’ and ‘Calypso’ interfaces of the Ticketing Terminal APIs have been designed with a structure compatible with the terminal architecture on which the terminal requirements are based. So a solution implementing these APIs can meet the requirements of the reader and Calypso layers (responsibility for fulfilling the requirements of the ticketing layer lies with the applications).\nPortability of ticketing terminal applications Another advantage of standardizing terminal APIs is that it also brings portability of terminal applications independently of reader or Calypso middleware solutions.\nCertification of ticketing terminal solutions In the near future, for example, CNA plans to offer a certification service to check whether ticketing terminal solutions actually comply with terminal requirements for the reader and Calypso layers. The middleware to be certified will then have to be based on standardized ticketing terminal APIs in order to be verified by the certification tool.\nKeypop API Eclipse Keypop offers Java and C++ code conversions of the API definitions for ticketing terminals: these faithfully follow the interface definitions issued by CNA. These Java and C++ APIs are hosted by the Eclipse Foundation under the MIT open source license: a very permissive license that offers great flexibility to the middleware solutions implementing them (proprietary or open source). These interfaces guarantee the independence of the terminal applications using them, from the middleware solutions implementing them.\nEclipse Keyple is an initial reference implementation. Other projects have expressed interest in proposing alternative implementations of Keypop APIs. Keyple middleware Eclipse Keyple is an open source middleware solution implementing the Keypop APIs.\nOpenness Two implementations of Keyple are available in Java and C++, hosted by the Eclipse Foundation under the Eclipse Public License version 2.0. This license offers great flexibility to terminal solutions (proprietary or open source) using Keyple libraries. Keyple is a truly open project: it does not belong to one particular company, which can decide at any time to close the project for further development. The advantage of joining the Eclipse Foundation is that it guarantees that the solution respects intellectual property rights, and that the project’s governance is open. Anyone in the open source community can contribute, the project is driven by its contributors.\nScalability In addition to implementing the terminal APIs in compliance with the terminal’s requirements, the Keyple solution also provides extension capabilities:\nPlugin APIs can be used to interface any smart card reader hardware solution. Distributed APIs can be used to design distributed architectures for remote control of smartcard readers, regardless of communication mode. Completeness \u0026amp; maintenability The 2 main strengths of the Keyple solution:\nThe Keyple Calypso module is probably the most complete Calypso middleware on the market: it supports all card transaction features. Keyple’s modular design enables the solution to be easily maintained and flexibly upgraded …","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732112853,"objectID":"c7bc731a6e7b0f007ff3cd93f1f73039","permalink":"https://keyple-support.calypsonet.org/keyple-support/introduction/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/introduction/","section":"keyple-support","summary":"Objectives for ticketing terminals Ensure interoperability between ticketing terminals and contactless cards\nCNA has specified a set of requirements for the different software layers of a ticketing terminal. Enable ticketing applications to be portable independently of terminal solutions","tags":null,"title":"Introduction to Keyple","type":"book"},{"authors":null,"categories":null,"content":"\nName OS Language License Access Info Calypso Card Analyzer Windows, Linux, macOS Java/Kotlin EPL-2.0 Open Source Calypso Card Analyzer × The Calypso Networks Association provides a first tool to showcase the potential of Keyple Java-based ticketing terminals, to help check the configuration and file structure of Calypso cards. Close Calypso Basic Legacy SAM Personalizer Windows, Linux, macOS Java/Kotlin CNA Member Reserved Calypso Basic Legacy SAM Personalization Tool × The Calypso Basic Legacy SAM Personalization Tool is dedicated to personalization of the Legacy SAM in the objective of Calypso Basic card keys injection. Close Calypso Basic Card Personalizer Windows, Linux, macOS Java/Kotlin CNA Member Reserved Calypso Basic Card Personalization Tool × The Calypso Basic Card Personalization Tool is dedicated to personalization of Calypso Basic card, i.e. AID personalization and keys injection. Close ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1731517278,"objectID":"de86f7f71ec8e6eed6b68701040de708","permalink":"https://keyple-support.calypsonet.org/assistance-tools/overview/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/overview/","section":"assistance-tools","summary":"Name OS Language License Access Info Calypso Card Analyzer Windows, Linux, macOS Java/Kotlin EPL-2.0 Open Source Calypso Card Analyzer × The Calypso Networks Association provides a first tool to showcase the potential of Keyple Java-based ticketing terminals, to help check the configuration and file structure of Calypso cards.","tags":null,"title":"Assistance Tools","type":"book"},{"authors":null,"categories":null,"content":"Mock of readers and smartcards To test Keyple middleware without hardware (no smart card reader, and no smart card), the project provides:\nthe ‘Stub’ plugin, which simulates a virtual smart card reader, with various specific characteristics. in addition, the simple examples demonstrating the implementation of Keyple include generators for simulating in Java and C++ the “static” behavior of a Calypso card or SAM to APDU commands. Availability of a test kit with Calypso cards and SAMs For “operational” testing, smart card reader solutions need to be integrated into the terminal with reader plugins (based on the Plugin API). CNA sells test kits including various Calypso cards from all ranges (Prime, Light, Basic) and samples of test legacy SAMs.\n","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732112853,"objectID":"d175104199db4e78967567d6e73bb7ae","permalink":"https://keyple-support.calypsonet.org/keyple-support/test-kit/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/test-kit/","section":"keyple-support","summary":"Mock of readers and smartcards To test Keyple middleware without hardware (no smart card reader, and no smart card), the project provides:\nthe ‘Stub’ plugin, which simulates a virtual smart card reader, with various specific characteristics.","tags":null,"title":"Calypso cards \u0026 SAMs for running Keyple","type":"book"},{"authors":null,"categories":null,"content":"\nWhat is the CNA Tool Card Analyzer App Suite? The CNA Tool Card Analyzer App Suite consists of two command-line tools:\nTool_AnalyzeCardFileStructure: analyzes the file structure of a Calypso smart card and generates a JSON report containing the card’s structure and application data. Tool_CheckCardFileStructure: checks the file structure of a Calypso card against a given JSON file containing the expected file structure. Why use the CNA Tool Card Analyzer App Suite? This suite helps developers and testers:\nUnderstand the data stored on a Calypso card. Verify compliance with Calypso specifications. Troubleshoot potential issues. Compare card structure against a predefined template. The following sections provide detailed instructions on using the CNA Tool Card Analyzer App Suite to retrieve and analyze the contents of a Calypso card and to verify its compliance against a reference file.\nPrerequisites Java: ensure you have a Java Runtime Environment (JRE) installed on your system. You can download it from www.java.com. PC/SC card reader: a contactless PC/SC compliant card reader is required to interact with the Calypso card. Download the Apps Go to the releases page to download the latest version of the application suite. Download the executable JAR files: Tool_AnalyzeCardFileStructure-x.y.z.jar Tool_CheckCardFileStructure-x.y.z.jar Analyze a Card Open a terminal or command prompt. Navigate to the directory containing Tool_AnalyzeCardFileStructure-x.y.z.jar. Place your Calypso card on the reader. Execute the following command: java -jar Tool_AnalyzeCardFileStructure-x.y.z.jar [readerNameRegex] readerNameRegex (optional): a regular expression to filter the card readers. If not provided, a default regex ( .*(ASK.*|Identiv.*2|ACS ACR122U|SCR3310).*) is used. The analysis results will be displayed in the terminal and JSON file containing the card structure will be saved. Supported AID Prefixes The Tool_AnalyzeCardFileStructure is configured to recognize and analyze Calypso cards with specific AID prefixes. The supported prefixes are:\nA000000291 A000000404 D276000085 334D54522E 315449432E 304554502E If the card’s DF Name does not match one of the supported AID prefixes, you will need to update the configuration in the source code to include the new AID prefix and recompile the application for proper analysis.\nJSON Output The JSON output generated by Tool_AnalyzeCardFileStructure provides a structured view of the Calypso smart card data analyzed. Below is an explanation of the key fields found in the JSON output:\n{ \u0026#34;id\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;infos\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;date\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;software\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;traceability\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;applicationList\u0026#34;: [ { \u0026#34;fci\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;calypsoRevision\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;aid\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;applicationType\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;applicationSubtype\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;issuer\u0026#34;: { \u0026#34;value\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;name\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;csn\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;csnDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;sessionModif\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;sessionModifDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;bufferSize\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;platform\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;revision\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;transactionCounter\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;transactionCounterDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;accessConditions\u0026#34;: { \u0026#34;group0\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group1\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group2\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group3\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; } }, \u0026#34;status\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kif1\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kif2\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kif3\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kvc1\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kvc2\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;kvc3\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;lid\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;fileList\u0026#34;: [ { \u0026#34;sfi\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;lid\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;efType\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;recSize\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;recSizeDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;numRec\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;numRecDec\u0026#34;: \u0026#34;integer\u0026#34;, \u0026#34;accessConditions\u0026#34;: { \u0026#34;group0\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group1\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group2\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; }, \u0026#34;group3\u0026#34;: { \u0026#34;accessCondition\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;keyLevel\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;string\u0026#34; } }, \u0026#34;ref\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;recordDataList\u0026#34;: [ { \u0026#34;index\u0026#34;: \u0026#34;string\u0026#34;, \u0026#34;value\u0026#34;: \u0026#34;string\u0026#34; } ] } ] } ] } Field Descriptions id: string, unique identifier for the profile. infos: string, type of analysis performed (e.g., \u0026#34;AnalyzeCardFileStructure\u0026#34;). date: string, date and time when the analysis was conducted. version: integer, JSON model version. software: string, name of the software used for analysis (e.g., \u0026#34;Calypso Card Analyzer\u0026#34;). traceability: string, hexadecimal string encoding traceability information for auditing. Application List applicationList: array, list of applications on the card, each application containing the following fields: fci: string, File Control Information for the application. calypsoRevision: string, Calypso specification version, e.g., \u0026#34;PRIME_REVISION_3\u0026#34;. aid: string, Application …","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1731517278,"objectID":"4c889909b42adbbeeef5988221ae4b9d","permalink":"https://keyple-support.calypsonet.org/assistance-tools/card-configuration-audit/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/card-configuration-audit/","section":"assistance-tools","summary":"What is the CNA Tool Card Analyzer App Suite? The CNA Tool Card Analyzer App Suite consists of two command-line tools:\nTool_AnalyzeCardFileStructure: analyzes the file structure of a Calypso smart card and generates a JSON report containing the card’s structure and application data.","tags":null,"title":"Calypso card configuration audit tool","type":"book"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732112853,"objectID":"8c836f531dd092d35b996193b1932530","permalink":"https://keyple-support.calypsonet.org/keyple-support/compliance/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/compliance/","section":"keyple-support","summary":"","tags":null,"title":"Interoperability \u0026 compliance of Keyple-based ticketing terminal solutions","type":"book"},{"authors":null,"categories":null,"content":"\nWhat is the Calypso Basic Legacy SAM Personalization Tool? The Calypso Basic Legacy SAM Personalization Tool is a desktop application designed to create a SAM CPP specifically dedicated to the personalization of Calypso Basic cards by injecting the necessary keys.\nKey Features:\nSAM Dump: Displays the SAM parameters and keys settings. SAM Personalization: Enables the transfer of keys and configurations from an origin SAM SP to a blank SAM CPP. Dual Reader Setup: Requires a Target SAM Reader for the blank SAM and an Origin SAM Reader containing the SAM SP with desired settings and keys. Why use the Calypso Basic Legacy SAM Personalization Tool? This tool helps for operators who need to prepare SAM CPP for field deployment of Calypso Basic card personalized with the basic-card-personalizer tool.\nThis user guide explains how to personalize a SAM CPP needed for Calypso Basic card keys injection.\nHardware Requirements This tool requires two PC/SC contact readers:\nTarget SAM Reader: this reader holds the blank SAM CPP you want to personalize. Origin SAM Reader: this reader contains the SAM SP with the desired keys and settings. Installation The software is available in a GitHub repository. Go to the releases page to download it. (Note: the GitHub repository is private. Please request access from CNA). Choose the installation file that matches your operating system: Windows: .msi package macOS: .dmg package Linux: .deb package Windows: double-click the .msi package to start the installation. macOS: open the .dmg file and drag the application to the Applications folder. Linux: use your distribution’s package manager to install the .deb package. Important note: the installer does not automatically create a shortcut in the Start Menu (Windows) or Applications menu (macOS). You need to create one manually. Launch the Tool After installation, find the executable in the installation directory: Windows: C:\\Program Files\\cna-tool-basic-legacysam-perso-app\\ macOS: /Applications/cna-tool-basic-legacysam-perso-app/ Linux: /opt/cna-tool-basic-legacysam-perso-app/ (or your user’s home directory) Double-click the executable to launch the Calypso Basic Legacy SAM Personalization Tool. Application UI The application window has a top menu and three tabs:\nSettings Menu Click the Settings menu. Select the Target SAM Reader name. This is where you will insert your blank SAM. Select the Origin SAM Reader name. This SAM contains the data you want to transfer to the target SAM. Enter the Origin SAM Unlock Value if required. Tabs SAM Dump: shows the detailed information and parameters of the SAM inserted in the target SAM reader. SAM Personalization: configure and execute the personalization process. Application Info: view logs and events related to the application and SAM readers. Useful for troubleshooting. Personalize a SAM CPP Select the SAM Personalization tab. Insert a blank SAM in the target SAM reader. Insert the SAM SP in the origin SAM reader. Set the parameters: Parameter version and owner data (informative) System keys KVC Work keys KIF and KVC Lock parameters Click Execute to personalize your SAM. Refresh Reader Detection If you connect or disconnect SAM readers while the application is running, you might need to switch between the tabs (SAM Dump, SAM Personalization, Application Info) for the application to recognize the changes.\nScreenshots Installation Settings SAM dump SAM personalization Application info Disclaimer This tool is provided by CNA for its members. Only active CNA members are authorized to use this tool. A member is not authorized to distribute this tool to other parties.\nUser Requirements and Responsibilities Target Audience: users familiar with SAM personalization and the Calypso system. Prerequisites: necessary hardware (SAM readers) and software (drivers) installed and configured correctly. Responsibilities: ensure the correct selection of target and origin SAMs, and the proper handling of unlock values and other sensitive information. Usage: authorized personnel only. Misuse or unauthorized distribution is strictly prohibited. ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1731517278,"objectID":"677e6b7253077b07b78026324ba7cdcc","permalink":"https://keyple-support.calypsonet.org/assistance-tools/basic-legacysam-personalizer/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/basic-legacysam-personalizer/","section":"assistance-tools","summary":"What is the Calypso Basic Legacy SAM Personalization Tool? The Calypso Basic Legacy SAM Personalization Tool is a desktop application designed to create a SAM CPP specifically dedicated to the personalization of Calypso Basic cards by injecting the necessary keys.","tags":null,"title":"Basic keyset legacy SAM personalization tool","type":"book"},{"authors":null,"categories":null,"content":"Properties of a smartcard reader solution through the Reader API In order to operate smartcard reader solutions, a ticketing application on a Keyple-based terminal uses the « generic » terminal reader API. The use of this interface is independent of the Keyple solution. The Reader API categorizes the smartcard readers into 2 types:\n“simple” card readers, which only manage “synchronously” the card application selection, “observable” card readers, which also support “asynchronous” card application selection. In general, all “contactless” reader solutions are observable, because for these readers the smartcard is always removable: it is necessarily necessary to notify applications of card insertion or removal events from the reader’s RF field. On the other hand, for some “contact” reader solutions, card presence is statically defined: these readers don’t need to be observed.\nProperties of a smartcard reader solution through the Keyple Service API For a Keyple-based terminal, smartcard reader solutions are interfaced using reader plug-ins. Keyple’s Service API enables ticketing terminal applications to access “locally” 3 categories of reader solutions:\na “simple” plugin enables only static configuration of smartcard readers → the most common case in embedded systems. an “observable” plugin enables the management of reader solutions that can be hot-plugged or hot-disconnected. → mainly 2 uses: readers connected over serial links (e.g. USB), or mobile solutions with an energy-saving mode (reader power supply cut off at standby). a “pool” plugin for interfacing with solutions offering dynamic allocation of reader resources according to the need. → this is how an HSM-type solution works. Integrating a smartcard reader solution into Keyple through the Plugin API For a Keyple-based terminal, a dedicated plug-in for any smart card reader solution must implement Keyple’s Plugin API:\nSPIs are differentiated in particular for the 2 reader types and the 3 plug-in categories. other features are linked to the native API capabilities of reader solutions: autonomy to manage the Select Application command autonomous synchronous, autonomous asynchronous or non-autonomous card insertion detection, detection of card withdrawal at the end of a transaction, managed autonomously (synchronous or asynchronous) or non-autonomous, ability to detect card removal during a card transaction The Keyple project offers a guide for developing plugins to integrate smartcard reader solutions.\nAdditional ‘Reader Plugins’ provided by CNA The Keyple project already hosts several plugins for interfacing with “standard” smartcard reader solutions (PC/SC, Android NFC / OMAPI), or for emulating readers.\nTo illustrate some other ways of designing plugins, CNA has also released additional plugins under the Eclipse Public License version 2:\nFor some of these plugins, the native libraries of the reader solutions are public, in this case, the plugin can be compiled autonomously. In the opposite case, a mock is used to compensate the unavailability of the native reader library, meaning that it is necessary to contact the manufacturer in order to compile the plugin. 4 plugins are designed for integration into Android based embedded ticketing terminals equipped with a contactless card reader, as well as one or more contact readers for SAMs.\nThe Famoco plugin interfaces only with SAM readers, as the contactless reader on the Famoco supported terminals is based on the standard Android NFC API (natively supported by Keyple). In addition to SAM readers, the Coppernic, Flowbird and Bluebird plug-ins manage an observable contactless reader (capable of detecting the card presence). The 5th plugin enables a Calypso legacy HSM to be interfaced on a Linux server equipped with a Spirtech HSM.\nName Supported Device Native reader library accessibility Interface OS Language Coppernic C-One v2 public Internal Android Kotlin Famoco FX100, FX105, FX200, FX205, FX300, FX915, FX920 public Flowbird Axio Touch Validator/MTBorne validator, Magnetic Axio Touch Validator, Axio 4 Validator, Infigo Driver Console, Voyager Embedded Ticketing Vending Machine, Coppernic C-One, Coppernic C-One V2, Zebra TC77, ACTIA PSDT private Bluebird EF501, EF551 private Legacy HSM Spirtech HSM private IP Linux Java Some special features:\nThe embedded Android terminals addressed by these plugins only support static configurations for their contactless card and contact SAM readers. However, the Coppernic and Famoco plugins are designed as “observable” plugins, because when these portable terminals are in standby mode, their readers are no longer powered (as if they were unplugged). Most of these readers for embedded terminals are “configurable” to enable the support of specific communications protocols. In addition, the Bluebird plugin can be configured to support the Enhanced Contactless Polling (ECP) protocol specific to Apple NFC devices. Plugin API implemented interfaces for each plugin Coppernic …","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732155436,"objectID":"e7c7d90fde06482358abcb6eac666d42","permalink":"https://keyple-support.calypsonet.org/keyple-support/reader-plugins/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/reader-plugins/","section":"keyple-support","summary":"Properties of a smartcard reader solution through the Reader API In order to operate smartcard reader solutions, a ticketing application on a Keyple-based terminal uses the « generic » terminal reader API.","tags":null,"title":"Integrating a smartcard reader solution","type":"book"},{"authors":null,"categories":null,"content":"To illustrate an advanced implementation of the Keyple Java middleware for Calypso-based ticketing systems, CNA has released a full ticketing demonstrator under the Eclipse Public License version 2.0.\nTicketing Service \u0026amp; repository Keyple integration Smartcard readers involved Optimization targets Calypso card Calypso SAM Remote sales \u0026amp; reloading distributed Calypso applications server with ticketing intelligence, based on Keyple light client, Keyple-based or not Integrated on the distributed client side Integrated on the distributed server side Limit the number of network messages between client and server Enable client to be hosted on any light terminal without Keyple dependency Validation standalone Calypso terminal application based on Keyple Locally embedded Locally embedded Limit the number of card and SAM commands during the card transaction Control Stand-alone validation and control terminals The architecture of validation and control tools is very similar, with only the ticketing transaction differing:\nFor validation, the terminal checks that a valid ticket is present, records an event and authorizes access. For control, the terminal checks that a recent validation event is valid. The ticketing data format is just an example defined for demonstration purposes. Terminal application Language OS Supported devices Validation Kotlin Android Any Android device having a contactless reader \u0026amp; a SAM reader Control These demos can be installed on various Android terminals such as Coppernic, Famoco, Flowbird, or Bluebird using the plugins provided by CNA.\nValidation scenario:\nAn autonomous validator on Android-based ticketing terminal that seamlessly starts a secure session when a contactless card is detected. The machine checks the last transport event and the available ticketing contracts. If access is granted, a new event is written. Control scenario:\nA hand-held inspection terminal on Android portable terminal that allows an operator to check the content of a card. The application verifies the validity of the last transport event regarding the current time and location. Finally, it displays the result. Remote sales and reloading distributed service This demo requires a client/server environment:\nOn the server side, the back-office includes a Java server application to process the ticketing sale and manage the Calypso secure session to reload contracts in remote cards. The server manages a pool of Calypso SAM using the PC/SC plugin and the Calypso SAM resource manager. On the client side, any terminal with a contactless reader provides the means to a customer to make the ticket purchase. The Calypso card commands are fully managed by the back-office ticketing server using the Keyple Distributed solution. Terminal application Language / folder OS Supported devices Sales / Reloading server\n(Keyple based) Java Windows, Linux, macOS Java Server with PC/SC SAM readers Sales / Reloading client Keyple-based Kotlin Android Android NFC phone Keyple-less Kotlin .NET C# Windows Windows PC with a PC/SC reader Kotlin Multiplatform \u0026amp; Compose Multiplatform Windows, Linux, macOS, Android, iOS any NFC mobile any PC with a PC/SC reader ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1732112853,"objectID":"0fcde62cc4634ef6b6790963dd92a81b","permalink":"https://keyple-support.calypsonet.org/keyple-support/ticketing-demo/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/ticketing-demo/","section":"keyple-support","summary":"To illustrate an advanced implementation of the Keyple Java middleware for Calypso-based ticketing systems, CNA has released a full ticketing demonstrator under the Eclipse Public License version 2.0.\nTicketing Service \u0026 repository Keyple integration Smartcard readers involved Optimization targets Calypso card Calypso SAM Remote sales \u0026 reloading distributed Calypso applications server with ticketing intelligence, based on Keyple light client, Keyple-based or not Integrated on the distributed client side Integrated on the distributed server side Limit the number of network messages between client and server Enable client to be hosted on any light terminal without Keyple dependency Validation standalone Calypso terminal application based on Keyple Locally embedded Locally embedded Limit the number of card and SAM commands during the card transaction Control Stand-alone validation and control terminals The architecture of validation and control tools is very similar, with only the ticketing transaction differing:","tags":null,"title":"Keyple-based advanced ticketing demonstrator","type":"book"},{"authors":null,"categories":null,"content":"\nWhat is the Calypso Basic Card Personalization Tool? The Calypso Basic Card Personalization Tool is a desktop application designed for personalizing Calypso Basic cards by injecting Application Identifiers (AID) and security keys.\nKey Features:\nAID and Key Injection: Enables the injection of AID and encryption keys into a blank Calypso Basic card. Dual Reader Setup: Requires a Target Card Reader for the blank card and a SAM Reader containing the SAM CPP for secure key injection. Why use the Calypso Basic Card Personalization Tool? This tool is essential for operators seeking to personalize Calypso Basic cards for use on their network by injecting keys stored in the SAM CV/CV available in the field. It utilizes a SAM CPP that has been personalized using the basic-legacysam-personalizer tool.\nThis user guide explains how to personalize a Calypso Basic card (AID and keys injection).\nHardware Requirements This tool requires two PC/SC readers:\nTarget Card Reader: this contactless reader holds the blank card you want to personalize. SAM Reader: this contact reader contains the SAM CPP used for keys injection. Installation The software is available in a GitHub repository. Go to the releases page to download it. (Note: the GitHub repository is private. Please request access from CNA). Choose the installation file that matches your operating system: Windows: .msi package macOS: .dmg package Linux: .deb package Windows: double-click the .msi package to start the installation process. macOS: open the .dmg file and drag the application to the Applications folder. Linux: use your distribution’s package manager to install the .deb package. Important note: currently, the installer does not automatically create a shortcut in the Start Menu (Windows) or Applications menu (macOS). If you want quick access, you will need to create a shortcut manually. Launch the Tool Once the installation is complete, you can find the executable in the installation directory. The default location varies depending on your operating system: Windows: C:\\Program Files\\cna-tool-basic-card-perso-app\\ macOS: /Applications/cna-tool-basic-card-perso-app/ Linux: /opt/cna-tool-basic-card-perso-app/ (or in your user’s home directory if you installed it locally) Double-click the executable to launch the Calypso Basic Card Personalization Tool. Application UI The application window has a top menu and two tabs:\nSettings Menu Click the Settings menu. Select the Target Card Reader name. This is where you will present your blank Calypso Basic card. Select the SAM Reader name. Enter the SAM Unlock Value if required. Select the directory for the log file. Tabs Basic Card Personalization: configure and personalize the card. Set parameters like AID, KVC, and KIFs, and start/stop the personalization process. Application Info: view logs and events related to the application and card reader. Useful for troubleshooting. Personalize a Card Select the Basic Card Personalization tab. Insert the SAM CPP into the SAM reader. Enter the personalization parameters: AID System keys KVC Work keys KIF and KVC Click Start to begin scanning for the card. Present a blank card to the card reader’s antenna. Refresh Reader Detection If you connect or disconnect card readers while the application is running, switch between the tabs (Basic Card Personalization, Application Info) to make the application recognize the changes.\nScreenshots Installation Settings Card personalization Application info Disclaimer This tool is provided by CNA for its members. Only active CNA members are authorized to use this tool. A member is not authorized to distribute this tool to other parties.\nUser Requirements and Responsibilities Target Audience: users familiar with Calypso Basic card personalization. Basic knowledge of smart card technology and security concepts is assumed. Prerequisites: necessary hardware (card reader, SAM reader) and software (drivers) installed and configured correctly. Responsibilities: ensure correct selection of the target card and SAM, proper handling of unlock values and sensitive information, and entering the correct personalization parameters (AID, KVC, KIFs). Usage: authorized personnel only. Misuse or unauthorized distribution is strictly prohibited. ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1731517278,"objectID":"c6d153156a8ce53323f826d3e0fd75ee","permalink":"https://keyple-support.calypsonet.org/assistance-tools/basic-card-personalizer/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/basic-card-personalizer/","section":"assistance-tools","summary":"What is the Calypso Basic Card Personalization Tool? The Calypso Basic Card Personalization Tool is a desktop application designed for personalizing Calypso Basic cards by injecting Application Identifiers (AID) and security keys.","tags":null,"title":"Calypso keyset basic card personalization tool","type":"book"},{"authors":null,"categories":null,"content":" ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1730975409,"objectID":"cb897c832fefac1600580877abcdb25c","permalink":"https://keyple-support.calypsonet.org/assistance-tools/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/assistance-tools/","section":"assistance-tools","summary":" ","tags":null,"title":"Calypso Tools","type":"book"},{"authors":null,"categories":null,"content":" ","date":-62135596800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1730975409,"objectID":"baddc669848d6fd7b4b0a0b61676ee97","permalink":"https://keyple-support.calypsonet.org/keyple-support/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/keyple-support/","section":"keyple-support","summary":" ","tags":null,"title":"Calypso Tools","type":"book"}]
\ No newline at end of file
diff --git a/keyple-support/reader-plugins/index.html b/keyple-support/reader-plugins/index.html
index f48fa87..1493fd2 100644
--- a/keyple-support/reader-plugins/index.html
+++ b/keyple-support/reader-plugins/index.html
@@ -5,7 +5,7 @@
Search.../
Properties of a smartcard reader solution through the Reader API
In order to operate smartcard reader solutions, a ticketing application on a Keyple-based terminal uses the « generic » terminal reader API.
The use of this interface is independent of the Keyple solution. The Reader API categorizes the smartcard readers into 2 types:
“simple” card readers, which only manage “synchronously” the card application selection,
“observable” card readers, which also support “asynchronous” card application selection.
In general, all “contactless” reader solutions are observable, because for these readers the smartcard is always removable: it is necessarily necessary to notify applications of card insertion or removal events from the reader’s RF field.
-On the other hand, for some “contact” reader solutions, card presence is statically defined: these readers don’t need to be observed.
Properties of a smartcard reader solution through the Keyple Service API
For a Keyple-based terminal, smartcard reader solutions are interfaced using reader plug-ins. Keyple’s Service API enables ticketing terminal applications to access “locally” 3 categories of reader solutions:
a “simple” plugin enables only static configuration of smartcard readers → the most common case in embedded systems.
an “observable” plugin enables the management of reader solutions that can be hot-plugged or hot-disconnected. → mainly 2 uses: readers connected over serial links (e.g. USB), or mobile solutions with an energy-saving mode (reader power supply cut off at standby).
a “pool” plugin for interfacing with solutions offering dynamic allocation of reader resources according to the need. → this is how an HSM-type solution works.
Integrating a smartcard reader solution into Keyple through the Plugin API
For a Keyple-based terminal, a dedicated plug-in for any smart card reader solution must implement Keyple’s Plugin API:
SPIs are differentiated in particular for the 2 reader types and the 3 plug-in categories.
other features are linked to the native API capabilities of reader solutions:
autonomy to manage the Select Application command
autonomous synchronous, autonomous asynchronous or non-autonomous card insertion detection,
detection of card withdrawal at the end of a transaction, managed autonomously (synchronous or asynchronous) or non-autonomous,
ability to detect card removal during a card transaction
To illustrate some other ways of designing plugins, CNA has also released additional plugins under the Eclipse Public License version 2:
For some of these plugins, the native libraries of the reader solutions are public, in this case, the plugin can be compiled autonomously.
In the opposite case, a mock is used to compensate the unavailability of the native reader library, meaning that it is necessary to contact the manufacturer in order to compile the plugin.
4 plugins are designed for integration into Android based embedded ticketing terminals equipped with a contactless card reader, as well as one or more contact readers for SAMs.
The Famoco plugin interfaces only with SAM readers, as the contactless reader on the Famoco supported terminals is based on the standard Android NFC API (natively supported by Keyple).
In addition to SAM readers, the Coppernic, Flowbird and Bluebird plug-ins manage an observable contactless reader (capable of detecting the card presence).
The 5th plugin enables a Calypso legacy HSM to be interfaced on a Linux server equipped with a Spirtech HSM.
The embedded Android terminals addressed by these plugins only support static configurations for their contactless card and contact SAM readers. However, the Coppernic and Famoco plugins are designed as “observable” plugins, because when these portable terminals are in standby mode, their readers are no longer powered (as if they were unplugged).
Most of these readers for embedded terminals are “configurable” to enable the support of specific communications protocols. In addition, the Bluebird plugin can be configured to support the Enhanced Contactless Polling (ECP) protocol specific to Apple NFC devices.
DontWaitForCardRemovalDuring
+On the other hand, for some “contact” reader solutions, card presence is statically defined: these readers don’t need to be observed.
Properties of a smartcard reader solution through the Keyple Service API
For a Keyple-based terminal, smartcard reader solutions are interfaced using reader plug-ins. Keyple’s Service API enables ticketing terminal applications to access “locally” 3 categories of reader solutions:
a “simple” plugin enables only static configuration of smartcard readers → the most common case in embedded systems.
an “observable” plugin enables the management of reader solutions that can be hot-plugged or hot-disconnected. → mainly 2 uses: readers connected over serial links (e.g. USB), or mobile solutions with an energy-saving mode (reader power supply cut off at standby).
a “pool” plugin for interfacing with solutions offering dynamic allocation of reader resources according to the need. → this is how an HSM-type solution works.
Integrating a smartcard reader solution into Keyple through the Plugin API
For a Keyple-based terminal, a dedicated plug-in for any smart card reader solution must implement Keyple’s Plugin API:
SPIs are differentiated in particular for the 2 reader types and the 3 plug-in categories.
other features are linked to the native API capabilities of reader solutions:
autonomy to manage the Select Application command
autonomous synchronous, autonomous asynchronous or non-autonomous card insertion detection,
detection of card withdrawal at the end of a transaction, managed autonomously (synchronous or asynchronous) or non-autonomous,
ability to detect card removal during a card transaction
To illustrate some other ways of designing plugins, CNA has also released additional plugins under the Eclipse Public License version 2:
For some of these plugins, the native libraries of the reader solutions are public, in this case, the plugin can be compiled autonomously.
In the opposite case, a mock is used to compensate the unavailability of the native reader library, meaning that it is necessary to contact the manufacturer in order to compile the plugin.
4 plugins are designed for integration into Android based embedded ticketing terminals equipped with a contactless card reader, as well as one or more contact readers for SAMs.
The Famoco plugin interfaces only with SAM readers, as the contactless reader on the Famoco supported terminals is based on the standard Android NFC API (natively supported by Keyple).
In addition to SAM readers, the Coppernic, Flowbird and Bluebird plug-ins manage an observable contactless reader (capable of detecting the card presence).
The 5th plugin enables a Calypso legacy HSM to be interfaced on a Linux server equipped with a Spirtech HSM.
The embedded Android terminals addressed by these plugins only support static configurations for their contactless card and contact SAM readers. However, the Coppernic and Famoco plugins are designed as “observable” plugins, because when these portable terminals are in standby mode, their readers are no longer powered (as if they were unplugged).
Most of these readers for embedded terminals are “configurable” to enable the support of specific communications protocols. In addition, the Bluebird plugin can be configured to support the Enhanced Contactless Polling (ECP) protocol specific to Apple NFC devices.