Releases: eclipse-keyple/keyple-plugin-pcsc-java-lib
Releases · eclipse-keyple/keyple-plugin-pcsc-java-lib
2.6.0
Added
- Added support for NXP MIFARE Classic (1K, 4K variants) in
PcscCardCommunicationProtocolwith ATR pattern3B8F8001804F0CA00000030603000(1|2).*according to PC/SC Part 3 Supplemental Document.
Changed
- Changed default sharing mode from
EXCLUSIVEtoSHAREDinPcscReader.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_VIOLATIONerrors and thread blocking when using card presence detection concurrently with APDU transmission (especially withwaitForCardRemoval()in a separate thread).
2.5.3
Fixed
- Fixed card disconnection not correctly handled when opening the physical channel.
2.5.2
Fixed
- Corrected regex for ISO card identification.
Changed
- Migrated the CI pipeline from Jenkins to GitHub Actions.
2.5.1
Fixed
- Fixed card disconnection when checking card presence.
2.5.0
Added
- Introduced new enum
PcscCardCommunicationProtocolthat 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 protocolMIFARE_ULTRALIGHT: For NXP MIFARE Ultralight and UltralightC technologiesST25_SRT512: For STMicroelectronics ST25 memory tagsISO_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.DisconnectionModeenum with additional modes:UNPOWER: Powers off the card completely (corresponds to PC/SCSCARD_UNPOWER_CARD)EJECT: Ejects the card if supported by the reader (corresponds to PC/SCSCARD_EJECT_CARD)
Deprecated
- Marked
PcscSupportedContactlessProtocolas deprecated, to be replaced byPcscCardCommunicationProtocol - Marked
PcscSupportedContactProtocolas deprecated, to be replaced byPcscCardCommunicationProtocol
Changed
- Updated security provider from
jnasmartcardiotojnasmartcardio/cnaversion0.3.0-CNA
2.4.2
Fixed
- Correct card disconnection logic when a card was present and
checkCardPresence()is called.
2.4.1
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
Added
- Added a new method
setProvider(Provider provider)inPcscPluginFactoryBuilderto allow the use of a custom PC/SC provider.
2.3.1
Fixed
- Avoid creating multiple contexts when monitoring readers.
2.3.0
Fixed
- Use
jnasmartcardiolib 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 inPcscPluginFactoryBuilder, enabling customization of the default 500ms value. Especially useful under Linux environments.