RFR [7195480]: javax.smartcardio does not detect cards on Mac OS X

Ivan Gerasimov ivan.gerasimov at oracle.com
Tue May 20 05:46:26 UTC 2014


Thank you Valerie!

On 20.05.2014 3:16, Valerie (Yu-Ching) Peng wrote:
> Changes look fine to me.
> Thanks,
> Valerie
>
>
> On 05/16/14 08:54, Ivan Gerasimov wrote:
>> Hello!
>>
>> It was reported that CardTerminal.isCardPresent(), 
>> CardTerminal.waitForCardAbsent(...) and 
>> CardTerminal.waitForCardPresent(...) do not work correctly on Mac OS X.
>> It is due to the difference in the types of the fields of 
>> SCARD_READERSTATE structure used across different platforms.
>>
>> In addition to the field type correction, it is also needed to make 
>> sure the fields are aligned correctly.
>> I made sure that the total size of the structure (61 bytes) is 
>> correct by requesting information about the same reader twice:
>> (had to mess with 
>> sun.security.smartcardio.PCSC.SCardGetStatusChange() a bit to check, 
>> but didn't include it the test).
>>
>> No new tests go with the fix.
>> The already existing manual test 
>> jdk/test/sun/security/smartcardio/TestPresent.java can be used to 
>> demonstrate the bug with the current jdk.
>> With the fix this test isn't failing.
>>
>> I assume that the correct behavior in the case of several card 
>> readers can be checked with 
>> jdk/test/sun/security/smartcardio/TestMultiplePresent.java, but 
>> cannot check it myself as I don't currently have access to a mac comp 
>> with more than one readers.
>>
>> Would you please help review the fix?
>>
>> BUGURL: https://bugs.openjdk.java.net/browse/JDK-7195480
>> WEBREV: http://cr.openjdk.java.net/~igerasim/7195480/0/webrev/
>>
>> Sincerely yours,
>> Ivan
>
>
>




More information about the security-dev mailing list