Keyple plugins for proprietary smart card readers

Additional ‘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.

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.

NameSupported DeviceNative reader library accessibilityInterfaceOSLanguage
CoppernicC-One v2publicInternalAndroidKotlin
FamocoFX100, FX105, FX200, FX205, FX300, FX915, FX920public
FlowbirdAxio 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 PSDTprivate
BluebirdEF501, EF551private
Legacy HSMSpirtech HSMprivateIPLinuxJava

Some special features:

  • 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.
Plugin API implemented interfaces for each pluginCoppernicFamocoFlowbirdBluebirdLegacy
HSM
pluginPluginSpiβœ“βœ“βœ“βœ“βœ“
ObservablePluginSpiβœ“βœ“
AutonomousObservablePluginSpi
PoolPluginSpiβœ“
contactReaderSpiβœ“βœ“βœ“βœ“βœ“
ConfigurableReaderSpiβœ“
AutonomousSelectionReaderSpi
PoolReaderSpiβœ“
contact
-less
ReaderSpiβœ“βœ“βœ“
ConfigurableReaderSpiβœ“βœ“βœ“
ObservableReaderSpiβœ“βœ“βœ“
CardInsertionWaiterAsynchronousSpi
WaitForCardInsertionAutonomousSpi
βœ“βœ“
CardInsertionWaiterBlockingSpi
WaitForCardInsertionBlockingSpi
βœ“
CardInsertionWaiterNonBlockingSpi
WaitForCardInsertionNonBlockingSpi
CardRemovalWaiterAsynchronousSpi
WaitForCardRemovalAutonomousSpi
βœ“
CardRemovalWaiterBlockingSpi
WaitForCardRemovalBlockingSpi
CardRemovalWaiterNonBlockingSpi
WaitForCardRemovalNonBlockingSpi
βœ“βœ“
CardPresenceMonitorBlockingSpi
DontWaitForCardRemovalDuring -ProcessingSpiβœ“βœ“βœ“
WaitForCardRemovalDuring -ProcessingBlockingSpi