Interoperability & compliance of Keyple-based ticketing terminal solutions

In order to guarantee interoperability between smart cards and terminals, the ‘Calypso Networks Association’ (CNA) encourages ticketing operators to follow various specifications and certification processes.

Contactless reader communication protocol

For compliance with the contactless reader communication protocol, CNA supports the certification programme standardised by the ‘Smart Ticketing Alliance’ (STA) for ‘Public Transport Readers’ (PT Readers). Several test laboratories are approved for ‘Proximity Coupling Device’ (PCD) certification under the supervision of the ‘Certification Body’ Paycert.

Separation and functional logic of the various software layers

To guarantee the functional capability of the ticketing terminals, CNA has proposed a software architecture with a distribution of responsibilities per layer, and has defined dedicated functional requirements for each software layer.

Reader software layer

For terminals integrating contactless and/or contact readers, the Keyple’s ‘Core’ libraries have been designed to meet the terminal requirements for the reader layer. 2 conditions must be met to guarantee « complete » compliance with the requirements of the reader layer:

Pending the future certification programme for reader layer libraries, CNA plans to publish the self-declarations of conformity of the Keyple Core libraries for reader solutions interfaced with PC/SC and Android NFC plugins.

Calypso software layer

The Keyple’s ‘Calypso’ libraries have also been implemented to meet the terminal requirements for the Calypso layer, regardless of the reader solutions used. 2 conditions must be met to guarantee « complete » compliance with the requirements of the Calypso layer:

Pending the future certification programme for Calypso layer libraries, CNA has published the self-declarations of conformity of the Keyple Calypso libraries (independently of interfaced reader solutions, but on the basis of a compliant reader software layer).

Terminal requirements support declarations

For the various Keyple Calypso library sets, all applicabilities and terminal requirements are supported, with the exception of those listed in the table below.

Calypso layer librariesUnsupported applicabilityUnsupported Requirement
Calypso cardFeature
Keyple Java Calypso Prime PKI set
  • HCE
-
  • CL-SEL-SNHEADER.2
Keyple Java Calypso Prime Extended set
  • Prime PKI
  • HCE
-
  • CL-SEL-SNHEADER.2
  • CL-RAT-PKIMODE.2
  • CL-SV-PKIMODE.1
  • CL-PKI-ALGO.1
  • CL-PKI-VERIF.2
  • CL-PKI-PUBKEY.1
  • CL-PKI-RQMODE.1
Keyple Legacy Java Calypso Prime Extended set
  • Prime PKI
  • HCE
-
  • CL-SEL-SNHEADER.2
  • CL-RAT-PKIMODE.2
  • CL-SV-PKIMODE.1
  • CL-PKI-ALGO.1
  • CL-PKI-VERIF.2
  • CL-PKI-PUBKEY.1
  • CL-PKI-RQMODE.1
Keyple Legacy Java Calypso Prime Regular set
  • Prime PKI
  • Prime Extended
  • HCE
-
  • CL-SEL-SNHEADER.2
  • CL-RAT-PKIMODE.2
  • CL-SV-PKIMODE.1
  • CL-PKI-ALGO.1
  • CL-PKI-VERIF.2
  • CL-PKI-PUBKEY.1
  • CL-PKI-RQMODE.1
Keyple Legacy C++ Calypso Prime Regular set
  • Prime PKI
  • Prime Extended
  • HCE
-
  • CL-SEL-SNHEADER.2
  • CL-RAT-PKIMODE.2
  • CL-SV-PKIMODE.1
  • CL-PKI-ALGO.1
  • CL-PKI-VERIF.2
  • CL-PKI-PUBKEY.1
  • CL-PKI-RQMODE.1

‘Keyple Java Calypso Prime PKI set’ definition

Product Identification
Set NameKeyple Java Calypso Prime PKI set
Set Version2024/04/17 or after
Library Versions
  • keypop-calypso-card-java-api (external API): 2.1+
  • keypop-calypso-crypto-legacysam-java-api (external API) : 0.5 to 0.6+
  • keypop-calypso-crypto-symmetric-java-api (internal API): 0.1+
  • keypop-calypso-crypto-asymmetric-java-api (internal API): 0.2+
  • keyple-card-calypso-java-lib: 3.1.1 to 3.1.2+
  • keyple-card-calypso-crypto-legacysam-java-lib: 0.6.0 to 0.7.1+
  • keyple-card-calypso-crypto-pki-java-lib: 0.2.0+
Product Compatibility
Reader LayerKeyple Core Java set:
  • keypop-reader-java-api (external API): 2.0+
  • keypop-card-java-api (internal API): 2.0+
  • keyple-plugin-java-api (internal API): 2.2 to 2.3+
  • keyple-common-java-api (internal API): 2.0+
  • keyple-service-java-lib: 3.0.0 to 3.2.3+
  • keyple-util-java-lib: 2.3.0 to 2.4.0+
Integrated with reader plugin implementing the Keyple Plugin API.
Ticketing LayerAny ticketing application based on:
  • keypop-reader-java-api (external API): 2.0+
  • keypop-calypso-card-java-api (external API): 2.1+
  • keypop-calypso-crypto-legacysam-java-api (external API) : 0.5 to 0.6+

‘Keyple Java Calypso Prime Extended set’ definition

Product Identification
Set NameKeyple Java Calypso Prime Extended set
Set Version2023/11/28 or after
Library Versions
  • keypop-calypso-card-java-api (external API): 2.0 to 2.1+
  • keypop-calypso-crypto-legacysam-java-api (external API) : 0.3 to 0.6+
  • keypop-calypso-crypto-symmetric-java-api (internal API): 0.1+
  • keyple-card-calypso-java-lib: 3.0.0 to 3.1.2+
  • keyple-card-calypso-crypto-legacysam-java-lib: 0.4.0 to 0.7.1+
Product Compatibility
Reader LayerKeyple Core Java set:
  • keypop-reader-java-api (external API): 2.0+
  • keypop-card-java-api (internal API): 2.0+
  • keyple-plugin-java-api (internal API): 2.2 to 2.3+
  • keyple-common-java-api (internal API): 2.0+
  • keyple-service-java-lib: 3.0.0 to 3.2.3+
  • keyple-util-java-lib: 2.3.0 to 2.4.0+
Integrated with reader plugin implementing the Keyple Plugin API.
Ticketing LayerAny ticketing application based on:
  • keypop-reader-java-api (external API): 2.0+
  • keypop-calypso-card-java-api (external API): 2.0 to 2.1+
  • keypop-calypso-crypto-legacysam-java-api (external API) : 0.3 to 0.6+

‘Keyple Legacy Java Calypso Prime Extended set’ definition

Product Identification
Set NameKeyple Lecacy Java Calypso Prime Extended set
Set Version2022/12/22 to 2023/11/27
Library Versions
  • calypsonet-terminal-calypso-java-api (external API): 1.5 to 1.8
  • calypsonet-terminal-calypso-crypto-legacysam-java-api (external API): 0.1 to 0.2
  • keyple-card-calypso-java-lib: 2.3.1 to 2.3.12+ (<3.0.0)
  • keyple-card-calypso-crypto-legacysam-java-lib: 0.1.0 to 0.3.0
Product Compatibility
Reader LayerKeyple Core Java set:
  • calypsonet-terminal-reader-java-api (external API): 1.0 to 1.3
  • calypsonet-terminal-card-java-api (internal API): 1.0
  • keyple-plugin-java-api (internal API): 2.0 to 2.3
  • keyple-common-java-api (internal API): 2.0
  • keyple-service-java-lib: 2.1.1 to 2.3.5+ (<3.0.0)
  • keyple-util-java-lib: 2.3.0 to 2.3.1
Integrated with reader plugin implementing the Keyple Plugin API.
Ticketing LayerAny ticketing application based on:
  • calypsonet-terminal-reader-java-api (external API): 1.0 to 1.3
  • calypsonet-terminal-calypso-java-api (external API): 1.5 to 1.8
  • calypsonet-terminal-calypso-crypto-legacysam-java-api (external API) : 0.1 to 0.2

‘Keyple Legacy Java Calypso Prime Regular set’ definition

Product Identification
Set NameKeyple Lecacy Java Calypso Prime Regular set
Set Version2022/02/01 to 2022/12/22
Library Versions
  • calypsonet-terminal-calypso-java-api (external API): 1.1 to 1.4
  • calypsonet-terminal-calypso-crypto-legacysam-java-api (external API): 0.1
  • keyple-card-calypso-java-lib: 2.1.0 to 2.3.0
  • keyple-card-calypso-crypto-legacysam-java-lib: 0.0.0 to 0.2.0
Product Compatibility
Reader LayerKeyple Core Java set:
  • calypsonet-terminal-reader-java-api (external API): 1.0 to 1.3
  • calypsonet-terminal-card-java-api (internal API): 1.0
  • keyple-plugin-java-api (internal API): 2.0 to 2.3
  • keyple-common-java-api (internal API): 2.0
  • keyple-service-java-lib: 2.1.1 to 2.3.5+ (<3.0.0)
  • keyple-util-java-lib: 2.3.0 to 2.3.1
Integrated with reader plugin implementing the Keyple Plugin API.
Ticketing LayerAny ticketing application based on:
  • calypsonet-terminal-reader-java-api (external API): 1.0 to 1.1
  • calypsonet-terminal-calypso-java-api (external API): 1.1 to 1.4
  • calypsonet-terminal-calypso-crypto-legacysam-java-api (external API) : 0.1

‘Keyple Legacy C++ Calypso Prime PKI set’ definition

Product Identification
Set NameKeyple Lecacy C++ Calypso Prime Regular set
Set Version2022/02/01 to 2023/06/20
Library Versions
  • calypsonet-terminal-calypso-cpp-api (external API): 1.0 to 1.4
  • keyple-card-calypso-cpp-lib: 2.1.0 to 2.2.5.3
Product Compatibility
Reader LayerKeyple Core Java set:
  • calypsonet-terminal-reader-cpp-api (external API): 1.0 to 1.1
  • calypsonet-terminal-card-cpp-api (internal API): 1.0
  • keyple-plugin-cpp-api (internal API): 2.0
  • keyple-common-cpp-api (internal API): 2.0
  • keyple-service-cpp-lib: 2.0.1 to 2.1.1.1
  • keyple-util-cpp-lib: 2.0.0 to 2.3.0.4
Integrated with reader plugin implementing the Keyple Plugin API.
Ticketing LayerAny ticketing application based on:
  • calypsonet-terminal-reader-cpp-api (external API): 1.0 to 1.1
  • calypsonet-terminal-calypso-cpp-api (external API): 1.0 to 1.4

Ticketing software layer

For a ticketing terminal solution built on the Keyple framework, the responsibility for complying with the requirements for the ticketing software layer lies exclusively with the developers of the terminal application using the ‘public’ Reader & Calypso terminal APIs.