JDK-8046343 : (smartcardio) CardTerminal.connect('direct') does not work on MacOSX
  • Type: Bug
  • Component: security-libs
  • Sub-Component: javax.smartcardio
  • Affected Version: 7u51
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-06-09
  • Updated: 2017-08-22
  • Resolved: 2014-08-07
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
7u72Fixed 8u40Fixed 9 b28Fixed
Related Reports
Relates :  
The method cardTerminal.connect("direct") does not work on Mac. 
On Windows it works as expected. 

This functionality is needed if an applications wants to communicate 
with the terminal but not with the card, e. g. the application wants 
to determine the card terminal features (possibility for secure pin 
entry etc.).

SQE OK to take customer's escalation easy fix to CPU14_04

- Fix for Release : 7u72 - Risk Analysis : Low - the fix only affects the platforms where the behavior is currently broken - Testing (done/to-be-done) : A manual test is added to the list of regression tests

Review: http://mail.openjdk.java.net/pipermail/security-dev/2014-July/010779.html

If SCARD_PROTOCOL_RAW is passed as dwPreferredProtocols argument to SCardConnect, we seem to achieve the correct results, even though it contradicts the documentation.

It had been reported previously that CardTerminal.connect("DIRECT") doesn't work under other *nix platforms too: https://community.oracle.com/thread/1752074?start=0&tstart=0 So this seems to be not a Mac specific issue, but rather an issue of working with pcsc-lite API in general.