Skip to content

Releases: eclipse-keyple/keyple-plugin-pcsc-java-lib

2.6.0

12 Dec 09:17

Choose a tag to compare

Added

  • Added support for NXP MIFARE Classic (1K, 4K variants) in PcscCardCommunicationProtocol with ATR pattern 3B8F8001804F0CA00000030603000(1|2).* according to PC/SC Part 3 Supplemental Document.

Changed

  • Changed default sharing mode from EXCLUSIVE to SHARED in PcscReader.setSharingMode() to improve compatibility with multi-threaded applications.

Fixed

  • Fixed PC/SC context contention on Linux by implementing separate contexts for monitoring and communication operations, preventing SCARD_E_SHARING_VIOLATION errors and thread blocking when using card presence detection concurrently with APDU transmission (especially with waitForCardRemoval() in a separate thread).

2.5.3

23 Oct 09:11

Choose a tag to compare

Fixed

  • Fixed card disconnection not correctly handled when opening the physical channel.

2.5.2

27 Jun 13:06

Choose a tag to compare

Fixed

  • Corrected regex for ISO card identification.

Changed

  • Migrated the CI pipeline from Jenkins to GitHub Actions.

2.5.1

07 May 13:15

Choose a tag to compare

Fixed

  • Fixed card disconnection when checking card presence.

2.5.0

22 Apr 09:40

Choose a tag to compare

Added

  • Introduced new enum PcscCardCommunicationProtocol that unifies contact and contactless protocol handling:
    • ISO_14443_4: For all ISO 14443-4 compliant cards (Type A and Type B)
    • INNOVATRON_B_PRIME: For Calypso devices using B Prime protocol
    • MIFARE_ULTRALIGHT: For NXP MIFARE Ultralight and UltralightC technologies
    • ST25_SRT512: For STMicroelectronics ST25 memory tags
    • ISO_7816_3: For contact cards using ISO 7816-3 protocol
  • Implemented precise ATR pattern rules aligned with PC/SC Part 3 standards
  • Added comprehensive documentation with references to PC/SC specifications
  • Enhanced PcscReader.DisconnectionMode enum with additional modes:
    • UNPOWER: Powers off the card completely (corresponds to PC/SC SCARD_UNPOWER_CARD)
    • EJECT: Ejects the card if supported by the reader (corresponds to PC/SC SCARD_EJECT_CARD)

Deprecated

  • Marked PcscSupportedContactlessProtocol as deprecated, to be replaced by PcscCardCommunicationProtocol
  • Marked PcscSupportedContactProtocol as deprecated, to be replaced by PcscCardCommunicationProtocol

Changed

  • Updated security provider from jnasmartcardio to jnasmartcardio/cna version 0.3.0-CNA

2.4.2

27 Jan 11:13

Choose a tag to compare

Fixed

  • Correct card disconnection logic when a card was present and checkCardPresence() is called.

2.4.1

22 Jan 13:01

Choose a tag to compare

Fixed

  • Ensures the physical channel is re-established when checkCardPresence() (required by the plugin API) is called, in
    case a card was previously connected.

2.4.0

08 Oct 13:06

Choose a tag to compare

Added

  • Added a new method setProvider(Provider provider) in PcscPluginFactoryBuilder to allow the use of a custom PC/SC provider.

2.3.1

01 Oct 07:47

Choose a tag to compare

Fixed

  • Avoid creating multiple contexts when monitoring readers.

2.3.0

24 Sep 10:08

Choose a tag to compare

Fixed

  • Use jnasmartcardio lib built with Java 8.

Added

  • Add configurable card monitoring cycle duration through a new method setCardMonitoringCycleDuration(int cycleDuration) to set the card monitoring cycle duration in PcscPluginFactoryBuilder, enabling customization of the default 500ms value. Especially useful under Linux environments.