912196 wrote:This is because sun.security.smartcardio.CardImpl in smartcardio attempts to handle response chaining for you. I have seen this issue before and the only two workarounds I know of are as follows:
I investigate further on with an USB spy, the problem comes from the Get Response command (effectively in the case of the chaining mode). When I send the get processing option (80A80000028300) the card respond 6114 meaning there is 14 bytes available. But, instead of sending the following APDU (00 C0 00 00 14) it sends (80 C0 00 00 14) which is a Class error, the card than respond 6E00. I suppose SmartCardIO put in the class field of the Get Response the class of the original command (the Get Processing Option) which is an error.
Does anyone has an idea how to fix this problem? Is this problem known from Oracle and is there a fix available? I have, so far, no clue to fix this point.